Edith Download

A second brain for Claude.

Too many Claude sessions start from zero. Edith is a Mac app where Claude can store its memories.

Download for macOS No account, no API key · v0.1.0 · Apple Silicon · needs Claude Code

Watch Claude remember

Edith serves your notes to Claude over MCP, and hosts that server inside the app. So a tool call and the glow are the same tick. A search dimly lights every note Claude considered. Opening one brightly lights the note it actually used. Then it all fades over thirty seconds: long enough to notice, short enough to stay honest.

  1. you the dev server says the port is already in use again
  2. claude search_brain "port already in use" 5 considered
  3. claude read_note dynamic-port-binding opened
  4. claude We have been here before. Last time the fix was to bind the next free port and rewrite the MCP config to match. First I will check for a server left over from an earlier run.
  5. claude save_note stale-server-cleanup saved
A replay against the demo vault in this page. In the app, it is your own session. Watch the graph while it runs.

It fills itself

Ask Claude to review my recent sessions and save anything worth keeping. It reads your transcripts, works out what was learned, and writes the notes back. Edith runs no inference of its own to fill the brain, so there is no API key and no account. Claude reads and writes your notes through its own session, on the plan you already pay for. Edith is the store and the canvas.

  1. you review my recent sessions and save anything worth keeping
  2. claude list_sessions 12 sessions, 9 captured
  3. claude read_session the 3 not yet captured read
  4. claude save_note transcripts-are-trees saved
  5. claude save_note most-jsonl-are-not-sessions saved
  6. claude save_note atomic-config-writes saved
  7. claude Saved three notes and linked them to what was already here.
Another replay, with demo numbers. Each save puts a new note into the brain.

It sits beside your work

Minimise Edith and it becomes a narrow panel docked to the left edge of your screen, drawing your brain and lighting the notes Claude reaches for. It never takes focus. Fold it to a strip the width of its rail, or shrink it to a small square in the corner.

This page is doing the same thing. The graph beside this note is the live view, drawn by the app’s own renderer. Hover a link and its note lights up, along with the road it is about to travel.

It is only Markdown

Your notes are plain files on your Mac. The files are the source of truth: edit them in any editor, and if you delete the search index it rebuilds. Bring your own files too. A Markdown vault keeps its ids and links. And every note records the sessions it came from.

~/Library/Application Support/Edith/vault/notes/dynamic-port-binding.md
---
id: dynamic-port-binding
title: Dynamic Port Binding
type: concept
created: 2026-08-25
updated: 2026-08-25
origin: distilled
sources:
  - session: 11111111-2222-3333-4444-555555555555
    project: -Users-u-myapp
    at: 2026-08-25T10:00:00Z
links: [mcp-registration]
---
Bind the next free port and rewrite the MCP config to match.

Get Edith

Download for macOS v0.1.0 · Apple Silicon · macOS 13 or later

  1. Open the .dmg and drag Edith into Applications.
  2. Open it. Edith starts its brain server and connects itself to Claude.
  3. Restart any Claude Code sessions that were already running, then ask Claude to review your recent sessions.

You need a Mac with Apple Silicon on macOS 13 or later, and Claude Code, in the terminal or the VS Code extension.

edith
---
id: shows-the-retrieval
type: concept
links: [served-over-mcp, in-process-mcp, highlights-fade]
---

It shows you the retrieval

When Claude reaches into the brain, you see exactly where it reached.

A search dimly glows what Claude considered. Opening a note brightly glows what it actually used. Saving one sends a ripple out from the new note. Highlights fade over thirty seconds.

Edith hosts the MCP server itself rather than spawning it. Every tool call emits an event straight to the renderer, which is why the light is instant.

edith
---
id: served-over-mcp
type: concept
links: [shows-the-retrieval, claude-fills-it, tool-noise-stripped, in-process-mcp]
---

Served over MCP

Claude both reads from and writes to the brain in the middle of a session. These are the tools it gets.

ToolWhat it does
search_brainSearch the notes
read_noteRead one note in full
list_notesSee what the brain holds
save_noteWrite an insight back
list_sessionsSee past Claude sessions, and which are already captured
read_sessionRead one transcript, tool noise stripped

The last two are what let Claude do the distilling itself, on your plan, with no key anywhere.

edith
---
id: claude-fills-it
type: concept
links: [served-over-mcp, no-api-key, transcripts-are-trees, session-goes-quiet, provenance]
---

Claude fills it for you

Ask review my recent sessions and save anything worth keeping. Claude reads your transcripts with list_sessions and read_session, then writes the notes back with save_note.

Underneath, five things happen.

StageWhat happens
WatchEdith watches ~/.claude/projects, waiting for a session to go quiet
ParseThe transcript becomes one canonical session, with abandoned branches skipped
StoreMarkdown with YAML frontmatter, indexed in SQLite FTS5
ServeAn MCP server inside the app, over local HTTP
Light upEvery tool call emits an event straight to the renderer
edith
---
id: no-api-key
type: concept
links: [claude-fills-it, api-key-is-not-history, add-your-own]
---

No API key. No account. No inference.

Claude reads and writes your notes through its own session, on the plan you already pay for. Edith is the store and the canvas. It never calls a model to fill the brain, and there is nothing to sign up for.

There is one optional exception. When you import your own files you can ask Edith to distil them into concepts. That makes one API call, on an Anthropic API key of your own that you add in Edith and that is stored locally. Keeping files as written makes no call, and nothing else in Edith ever asks for a key.

edith
---
id: mini-mode
type: concept
links: [mini-opens-itself, shows-the-retrieval]
---

Mini mode

Minimise Edith and it becomes a narrow panel docked to the left edge of the screen, drawing your brain and lighting up the notes Claude reaches for. The window and the panel are never up at the same time.

It never takes focus. It folds to a strip the width of the rail, or shrinks to a small square in the corner. Both are just the live graph.

With the window closed or minimised, the panel also opens on its own when a Claude session starts, and stays closed for the rest of a session once you close it. You can turn the automatic opening off under Connection.

edith
---
id: note-format
type: concept
links: [provenance, index-rebuilds, broken-frontmatter, dynamic-port-binding]
---

The note format

A note is a Markdown file with YAML frontmatter. Files on disk are the source of truth. They live in ~/Library/Application Support/Edith/vault, and you can edit them in any editor.

The frontmatter carries an id, a title, a type, when the note was created and updated, where it originated, the sessions it came from, and the notes it links to. The body is whatever was worth keeping. This page is laid out the same way.

edith
---
id: provenance
type: concept
links: [note-format, claude-fills-it]
---

Provenance

Every note records the sessions it came from: which session, which project, and when.

That provenance is written from day one, so tracing a concept back to its conversations is a view rather than a migration.

edith
---
id: add-your-own
type: concept
links: [reimport-deepens, imported-ids-survive, broken-frontmatter, no-api-key]
---

Add your own content

Add content imports .md, .markdown, .txt and .mdx files, or anything you paste. Files keep their existing frontmatter, so importing a Markdown vault preserves ids and links instead of duplicating notes.

ModeWhat it doesAPI calls
Keep as writtenStores the file or text verbatim as a notenone
Distil into conceptsRuns the same extraction used on sessionsone

Distilling is the only thing in Edith that calls a model on its own. It is optional, and it runs on an Anthropic API key of your own, stored locally. Re-importing a file deepens the existing note rather than creating a duplicate, so syncing a folder repeatedly is safe.

edith
---
id: install
type: concept
links: [what-it-touches, uninstall, electron-run-as-node, restart-claude-code]
---

Install

Edith runs on Macs with Apple Silicon, on macOS 13 or later. You also need Claude Code, in the terminal or the VS Code extension.

  1. Download Edith, open the .dmg, and drag Edith into Applications.
  2. Open it from there. Edith starts its brain server and connects itself to Claude.
  3. Restart any Claude Code sessions that were already running.
  4. Ask Claude to review my recent sessions and save anything worth keeping, and it fills the brain itself.

To update, quit Edith, then drag the new build into Applications to replace the old one.

edith
---
id: what-it-touches
type: concept
links: [mcp-registration, session-start-hook, slash-edith, starter-skills, uninstall]
---

What Edith touches on your Mac

On first launch, outside its own folder, Edith adds four things. Nothing else.

WhatWhere
Its server entry, so Claude can reach the brain~/.claude.json, plus Claude Desktop’s config if you have it
A session-start hook that tells Claude the brain exists~/.claude/settings.json
The /edith command~/.claude/skills/edith
A handful of starter skills~/.claude/skills/, managed from the Skills panel

Your config is safe. Registration merges a single key into ~/.claude.json, writes atomically, and backs the file up before the first modification. Your notes are plain Markdown in ~/Library/Application Support/Edith/vault.

edith
---
id: uninstall
type: concept
links: [what-it-touches, install]
---

Uninstall

Quit Edith and delete it from Applications. Then remove what it added:

Your notes stay in ~/Library/Application Support/Edith until you delete that folder too.

edith
---
id: not-in-v1
type: concept
links: [search-provider-interface, api-key-is-not-history]
---

Not in v1

Edith is at version 0.1, and it is honest about what that leaves out.

Search sits behind a single interface, so adding hybrid retrieval later touches one file.

edith
---
id: license
type: concept
links: [not-in-v1]
---

Licence

Edith is source-available under the Functional Source License, Version 1.1, MIT Future License (FSL-1.1-MIT).

You can read, use, modify and share it for anything except offering it, or something substantially similar, as a competing commercial product or service. Each release becomes MIT-licensed two years after it is published.

© 2026 Raghav Chari and Kate Bonner.

edith
---
id: the-shape
type: concept
links: [eight-shapes, monochrome-by-intent, mini-mode]
---

Why the brain is that shape

The shape is the Aizawa attractor: a swirling disc threaded onto a vertical column, with particles that occasionally ride up the polar axis and dive back down the outside. It reads three-dimensional from every angle, and it exists only as motion.

= (zb)xdy = dx + (zb)y ż = c + azz3/3 − (x2 + y2)(1 + ez) + fzx3

With a = 0.95, b = 0.7, c = 0.6, d = 3.5, e = 0.25 and f = 0.1. In the app, about 5,200 anonymous motes give the shape its body, and every note is a named particle riding the same flow. Drag one away and the attractor reclaims it.