You open Claude Code, and the first five minutes go to explaining. What the gateway decision was on Wednesday. What the client asked for in the Telegram thread. Which of the three approaches you tried yesterday and rejected. The agent is capable and blank.
That is not because Claude Code has no memory. It has two, and both are about the repository. Here is what they hold, from the Claude Code documentation on 18 September 2026, and how to add the third one: what you saw.
What Claude Code remembers on its own
CLAUDE.md. Instructions you write, loaded at the start of every session: ./CLAUDE.md or ./.claude/CLAUDE.md for the project, ~/.claude/CLAUDE.md for you across projects, ./CLAUDE.local.md for private per-project notes, and a managed file for an organisation. The docs ask for under 200 lines per file; anything over 4 MiB is skipped. .claude/rules/ splits instructions into topic files, some scoped to file paths so they load only when Claude touches matching files.
Auto memory. Notes Claude writes itself: your role and preferences, corrections you give it, project decisions it cannot derive from the code, and where things live outside the repo. They go to ~/.claude/projects/<project>/memory/, one directory per git repository, with a MEMORY.md index. Only the first 200 lines or 25 KB of that index load at the start of a session; the topic files behind it are read on demand. /memory opens all of it in your editor, and it is plain markdown you can edit or delete.
Both are useful and both stop at the edge of the repository. Nothing in them knows what the client wrote in Telegram, what the team decided in Slack, or what the error in the other terminal said. Every session starts with a fresh context window, and everything outside the codebase has to be typed in again.
Sharpy fixes that part. It is a to-do list for Mac that writes itself from your Slack, mail, calls and the text on your screen, and it keeps that text in a local file on the machine. Its MCP server hands both to the agent: the list, and the memory behind it.
One command
claude mcp add sharpy -- /Applications/Sharpy.app/Contents/Helpers/sharpy-mcp
Then, on the first connection, Sharpy asks on its island whether this client may read your Mac; say yes once. That is the whole setup for Claude Code. In Sharpy, Integrations does the same for Claude, ChatGPT and Codex, Cursor and others in one click. Any other client takes the same binary as a stdio server with no arguments.
The server runs locally and reads the same data the app writes. There is no second copy, no sync, no account for the MCP itself. Sharpy has to be running. You can revoke a client in Integrations at any time.
What the agent can now do
The server exposes a handful of tools. In practice you never call them; you ask, and the agent picks.
-
list_work, add_work_item, update_work_item. Your to-do list: what is on it, what is next, add a task, mark one done. “What’s next on my list?” and “done, mark it” are one call each.
-
search_memory. Full-text search over everything captured, with a from/to window and an app filter. “Find where we agreed on the retry policy” returns the matching passages, each with its snapshot and session id, app, window title, URL and time.
-
get_recent_activity. The last minutes of screen activity, newest first: app, window, URL, seconds spent, an excerpt. No model involved, so it is the cheapest call. Made for “what was I just doing?”.
-
get_working_memory. The sessions of the last few hours (three by default) with the full text of the latest moment in each. The agent reads this to orient before it searches, or to load your context before writing in your voice.
-
read_session. One continuous stretch of work end to end: a whole email thread, a Slack channel, a coding session.
-
get_snapshots. The full text of specific moments by id, for quoting exact wording, numbers and dates.
-
list_followups. The promises and asks Sharpy found in your chats, mail and calls.
Every row carries a snapshot id. When the agent tells you “you agreed on Thursday 18:00”, it can open that exact moment and quote it, and so can you, in Sharpy.
Three ways people use it
Stop re-explaining. Start a session with “read my working memory, then plan the migration we discussed in Slack this morning”. The agent reads those sessions, searches for the Slack thread, and plans from what was said, not from your retelling of it.
Close the loop. “What’s next on my list?” The agent reads the top task, does the work, and marks it done in Sharpy when the pull request lands. The next task moves up.
Debug from what you saw. You hit an error at 14:07, took a screenshot in your head, and moved on. “What was the error I saw in the terminal around two o’clock?” The text was captured; the agent finds it.
Limits worth knowing
Sharpy captures the front window through macOS Accessibility. Native apps read well. Electron apps, which is most AI desktop clients and many chat apps, expose their text less cleanly, so some passages will be missing or partial. If a search comes back thin, the browser version of the same app usually reads better.
What the agent pulls into its context leaves the Mac with that context. Claude Code sends it to Anthropic; Cursor sends it to whatever model you picked. Sharpy itself masks card numbers, keys, phone numbers and codes before anything is stored, and never saves passwords, banking, logins or private windows. Narrow questions keep the rest narrow.
Sharpy runs on macOS 14 or later, on Macs with Apple silicon, and is free in early access. Join the waitlist: access goes out by email in waves, or at once when three friends join with your link. The setup per client and every tool by name are on the MCP page.






