A memory for your AI agents. Remembers you, your machines, your hosting and your SSH keys, so a fresh Claude Code session doesn't ask where the site is hosted.
Long AI sessions get worse the longer they run. Fresh ones don't know the topic. Binder takes that trade-off away: it keeps what your agents keep asking for in plain Markdown, and hands it to every new session.
Looks around first. Binder reads what's already on your Mac:
~/.ssh/configand the names of your keys- the git and
ghidentity - the hosting CLIs you're signed in to (Vercel, Netlify, Fly, Cloudflare, Hetzner, Supabase)
- your projects' deploy files and domains
- your homelab, if you let it knock on the local network
It writes all of that down, so agents stop guessing.
Keeps itself fresh. When a later decision makes an older one untrue, the older one moves to the note's ## Superseded section: still in the file, off the card, one click to restore. The card stays under about a thousand tokens.
Catches what sessions decide. When a Claude Code session ends, Binder notes what the agent actually did. For example, wrangler pages deploy becomes "the site deploys to Cloudflare Pages". It shows each catch in the menu bar for you to keep or drop. Keep sends it into Binder's brain, Drop shreds it. If you say yes, it also reads the session with your own Claude plan to catch decisions that were only said out loud.
Sorts what it knows. A project grows topic notes as the work does: hosting, api, auth, whatever it's about. A fact about a server or a hosting account also goes into that server's or provider's own note, so the graph shows what runs where. Split by topic sorts an older project's lines once. Every catch card says which note it goes to, and in detailed mode why.
Finds things fast. binder search hetzner docker finds every line that mentions them, best first, with no model and no network. The session card tells the agent to run it when something is missing, and the main window's search looks inside notes too.
Reads what you already wrote. Your ~/.claude/CLAUDE.md and each project's CLAUDE.md and AGENTS.md turn into catches to keep or drop, so you don't start from zero. Summarize code reads a repo's file list, README and build files and offers its architecture the same way. Both use your own Claude plan, only if you say yes.
Forgets what stopped mattering. A line no agent used for 90 days fades from the card but stays in the note, and Keep on card brings it back. Wrong moves a line to Superseded and stops Binder from suggesting it again. A fact that's only true until Friday expires on Friday. Before Claude Code compacts a long session, Binder catches what it decided, and lessons from commands that failed come in as catches too.
Keeps the files that matter. Images and PDFs you attach to a session, and the ones the agent makes, show up as catch cards with a preview. Keep files them under files/ in your binder and links them from the note. Nothing gets in without Keep.
Shows what sessions used. Each note says how many session cards it was on and roughly how often an agent acted on it. You can edit any note, or delete a line or a whole note, inside Binder.
Briefs every new session. At session start Claude Code gets a short card: who you are, how you like to work, this project, its servers and keys, and where the last session stopped. The main window shows exactly what the agent sees.
Hands off long sessions. When a session is getting long, Binder says so. One click writes a handoff card and opens a fresh session in the same folder, which starts with the card.
Needs macOS 14+ and Claude Code.
Download Binder.dmg and drag Binder into Applications. It isn't notarized, so the first time you open it, go to System Settings › Privacy & Security and click Open Anyway. Setup takes about two minutes.
To build it yourself: git clone https://github.com/Kungie/binder.git && cd binder && make install
make release builds the DMG and zip and writes Binder.zip.sig with the release key from the login Keychain (swift scripts/update-key.swift makes it once). Upload all three to the GitHub release; the app ignores a release without the signature.
The app ships the binder CLI at Binder.app/Contents/Helpers/binder. Claude Code's hooks call it:
| Command | Called by | What it does |
|---|---|---|
binder card |
SessionStart | gives the agent its context card |
binder capture |
Stop | catches what the session did |
binder capture --now |
PreCompact | the same, right before Claude Code compacts |
You can also run these yourself:
| Command | What it does |
|---|---|
binder observe |
looks around again |
binder handoff |
writes a handoff card |
binder install / binder uninstall |
adds or removes the hooks |
binder doctor |
checks that everything is wired up |
binder tidy [--all] |
moves repeated and outdated lines to each note's Superseded section |
binder search <words> |
finds what the binder says, best first (--project, --all, --limit) |
binder import |
offers what CLAUDE.md and AGENTS.md say, as catches |
binder index [<folder>] |
summarizes a repo's architecture into catches |
- Everything stays on your Mac. There's no account, no cloud and no telemetry.
- Binder updates itself. Once a day it asks GitHub whether there's a newer release, and Update in the menu bar installs it. Every update is signed, and Binder only installs one that carries its release key's signature. An update replaces the app and nothing else: your binder, settings and hooks stay as they are. Settings › Updates turns the daily check off and has a Check for updates button.
- Binder never writes to
~/.sshand never opens a private key. It stores pointers to secrets ("the token is in 1Password"), never the secrets themselves, and anything that looks like a token is filtered out before it's saved. - Your binder is a plain Markdown folder (
~/Binderby default) that you can open in Obsidian or any editor. Binder only rewrites the lines between its observed markers; everything else is yours. - Binder is an independent project, not affiliated with Anthropic. Claude is a trademark of Anthropic, PBC.
AGPL-3.0. Fonts under the SIL Open Font License, see Sources/BinderUI/Resources/Fonts.


