Show HN: Snip – Terminal notes app that Claude can read and write via MCP Developer jerichosiahaya released Snip, an MIT-licensed terminal note-taking app written in Rust with SQLite FTS5 full-text search, published on crates.io as snip-notes and installable via AUR packages snip-notes-bin and snip-notes. Snip ships an MCP server run via `snip mcp` on stdin/stdout that lets Claude read and write notes in the same database as the interactive TUI, with the release executable at roughly 1.6 MB. The early release omits trash/restore, so deletions are permanent after confirmation. Lightweight terminal note-taking app. Rust + SQLite FTS5 full-text search , with an MCP server use-snip-from-claude-mcp so Claude can read and write your notes. - crates.io: snip-notes https://crates.io/crates/snip-notes - mcp-name: io.github.jerichosiahaya/snip - License: MIT yay -S snip-notes-bin prebuilt binary from the GitHub release yay -S snip-notes or build from source Either installs the snip command use paru or makepkg if you prefer . The PKGBUILDs live in packaging/aur/ https://github.com/jerichosiahaya/snip/blob/main/packaging/aur . Each release updates them and pushes them to the AUR automatically see .github/workflows/aur-publish.yml ; it needs the AUR SSH PRIVATE KEY repository secret . Requires Rust/Cargo and a C compiler for the bundled SQLite: cargo install snip-notes installs the snip command into ~/.cargo/bin Download the prebuilt executable— no Rust or Cargo required : curl -fLO https://github.com/jerichosiahaya/snip/releases/latest/download/snip-arch-linux-x86 64.tar.gz curl -fLO https://github.com/jerichosiahaya/snip/releases/latest/download/SHA256SUMS sha256sum -c SHA256SUMS && \ tar -xzf snip-arch-linux-x86 64.tar.gz && \ install -Dm755 snip "$HOME/.local/bin/snip" Run ~/.local/bin/snip , or snip if ~/.local/bin is on your PATH. Requires an up-to-date Arch Linux x86-64 system glibc , gcc-libs and $EDITOR or nano for editing. SQLite is bundled. This build is not for ARM or guaranteed compatible with older Linux distributions. Requires Rust/Cargo and a C compiler for bundled SQLite: cargo build --release --locked install -Dm755 target/release/snip "$HOME/.local/bin/snip" Release executable: ~1.6 MB , below the 5 MB budget excluding system libraries and notes . Early release: trash/restore is not implemented; deletion is permanent after confirmation. Keep backups of important notes. snip open the interactive TUI snip add "note text" --tag work quick capture, first line = title snip search "meeting" print matching notes snip search "" --tag work snip export ~/notes every note as a Markdown file see below Notes are stored in $XDG DATA HOME/snip.db normally ~/.local/share/snip.db by default. Override with snip --db /path/to.db ... . snip / to search 17 notes ──────────────────────────────┬──────────────────────────────────────────── Meeting notes 2h │ Meeting notes Groceries 3d │ work · edited 2h ago Book list 1w │ │ Discuss the new feature with the team… ──────────────────────────────┴──────────────────────────────────────────── ↑↓ move ⏎ edit ^N new / search ^Q quit ^T tag Del delete The list shows the most recently edited notes first. Terminals 72 columns or wider also show a preview of the selected note; narrower ones show its tags in the list instead. ↑↓ PgUp PgDn Home End move through notes Enter edit selected note opens $EDITOR, falls back to nano Ctrl-N new note / search as you type title + body; every word must match, prefixes ok: "meet" finds "meeting" ; Enter keeps it, Esc clears it Ctrl-T cycle tag filter all → each tag → all Esc clear search and tag filter Delete delete selected note asks y/N in the footer Ctrl-Q quit Note format: first line = title, the rest = body. Works in your normal editor; $EDITOR may include arguments, e.g. EDITOR="code -w" . snip mcp runs a Model Context Protocol https://modelcontextprotocol.io server on stdin/stdout, so Claude can save, find and update your notes. It uses the same database as the interactive app, and both can be open at once. Claude Code: claude mcp add --scope user snip -- "$ command -v snip " mcp Claude Desktop: add this to claude desktop config.json Settings → Developer → Edit Config , using the absolute path to snip command -v snip prints it: ~/.cargo/bin/snip after cargo install , ~/.local/bin/snip for the prebuilt download , then restart Claude Desktop: { "mcpServers": { "snip": { "command": "/home/YOU/.local/bin/snip", "args": "mcp" } } } To use a different database, put --db /path/to.db before mcp in either command. Claude gets these tools: | Tool | Does | |---|---| | search notes | find notes by words prefixes ok and/or tag; no query lists recent notes | | get note | read one note in full | | list tags | all tags in use | | create note | save a new note title, body, tags | | append to note | add text to the end of a note | | update note | change a note's title, body or tags | There is deliberately no delete tool: deleting notes stays something you do in the app. update note can still replace a note's body, so keep backups below if Claude edits important notes. - Source of truth: the SQLite DB WAL mode . Use SQLite's .backup command for a consistent backup, including while the app is open: sqlite3 "${XDG DATA HOME:-$HOME/.local/share}/snip.db" ".backup 'snip-backup.db'" - Markdown export: snip export DIR --tag NAME writes one .md file per note DIR defaults to ./snip-export . Each file has YAML front matter that Obsidian and other Markdown tools read, then the title as a heading and the body: Files are named after the title --- title: "Meeting notes" tags: "work", "q4" created: 2026-10-02T16:49:00Z updated: 2026-10-02T17:12:00Z snip id: 12 --- Meeting notes - ship the redesign meeting-notes.md ; the note id is added if two titles clash and their modification time is the note's last edit. Exporting again overwrites those files and leaves anything else in DIR alone, so a note that was renamed or deleted keeps its old file until you remove it. cargo test regression: FTS stays consistent across create/update/delete