Notes that live
in your repo.

A reading and writing surface on top of GitHub. Every note is a .md file in a repo you own. Delete the app tomorrow — your notes are still there.

See how it works↓

No vendor lock-in · Zero database · Your GitHub token never leaves your server

Why Pinn

Designed for people who think in plaintext.

⎇

Every save is a commit

Notes are real .md files committed to your GitHub repo. Full history, blame, branches — everything git gives you, for free.

a3f8c2dupdate: standup notes friday2m ago
f1e9b4afeat: add wikilink autocomplete notes1h ago
c7d3e1ffix: serializer frontmatter edge case3h ago
9b2a5c8chore: project setup and init2d ago
⊞

Zero lock-in

Delete Pinn tomorrow. Your notes are still in your repo, readable by any editor, searchable by grep, versionable by git.

ObsidianVS CodeVimTerminalGitHub.com

All read your notes natively.

✦

AI in your voice

A floating, draggable assistant with one-tap Summarize, Rewrite, Polish, and Expand — tuned by your own system prompt. Groq-fast. Output lands as a diff: you accept or reject.

◎

Preview-first editing

Typeset markdown by default. Double-click to edit in place; Esc snaps back. Dark, light, and sepia themes — plus focus and typewriter modes.

⌘

Keyboard driven

Every action has a shortcut. ⌘K command palette, T today's note, ⌘⇧F global search.

⇔

Wikilinks & backlinks

Type [[ to link any note — with live autocomplete and [[target|label]] aliases. Preview and edit render the same styled link.

⬡

Works offline

Every keystroke is saved to IndexedDB first. Sync to GitHub happens in the background. You never lose a character.

⟨⟩

Claude Code access

Install @pinnapp/mcp and ask Claude to read, write, or search your notes — from the terminal.

See the MCP server →
◈MODEL CONTEXT PROTOCOL

Your notes,
from the terminal.

Install @pinnapp/mcp and Claude Code can read, write, search, and append to your notes without leaving the terminal. No context switching. Your notes are always in scope.

list_notesbrowse your vault
read_notefetch content + SHA
search_notesfull-text across all notes
write_noteSHA-checked commit
open_daily_notetoday's journal
~/.claude/settings.json
// Add to ~/.claude/settings.json

{
"mcpServers": {
"pinn": {
"command": "npx",
"args": ["@pinnapp/mcp"],
"env": {
"PINN_TOKEN": "pat_xxxxxxxxxxxxxxxx"
}
}
}
}

$# Then ask Claude anything about your notes
> What's in my notes about the pinn project?
✓ Found 3 notes mentioning pinn — projects/pinn.md, journal/...

Get started in 90 seconds

Sign in. Pick a repo.
Start writing.

Your GitHub account is all you need.