Old values are withheld, not ranked lower
When a fact changes, the stale one stops coming back, and why it was superseded goes on the record.
logos memory log
short for logothete: your personal scribe
Your memory. Any agent. One vault of markdown on your own disk. Claude Code writes to it, Cursor reads from it, Codex picks up where both stopped — and none of them owns it.
$ brew install coder8124/tap/logos-mcp $ logos setup
macOS and Linux. Setup shows what it would write to each agent and changes nothing until you say yes.
Windows: npx -y @noeton/logos setup
Setup wires the first four and proves each one with a real store-then-recall. The rest take one block of JSON.
claude code > "staging runs on port 8080" ✓ Logos · stored in logos — memory #1 cursor > "we moved staging to port 9090" ✓ Logos · stored in logos — memory #2 ✓ Logos · 1 memory superseded — the old value is now history codex > context("deploy to staging") - fact: Staging runs on port 9090. (demo, 2 Sep 2026, confidence 0.90) logos memory log superseded #1 Staging runs on port 8080. → #2
Run it against a scratch vault, nothing of yours touched: npx -y @noeton/logos demo
Continuity, not just retrieval. Every memory tool can find a fact. Logos makes sure the next agent gets the right one.
When a fact changes, the stale one stops coming back, and why it was superseded goes on the record.
logos memory log
A checkpoint carries what was verified, what failed and what is next.
/handoff · resume
Reads your git history and proposes what it can defend, each with the command behind it.
logos bootstrap --dry-run
The vault is truth; the SQLite index is a cache. Delete it and it rebuilds from the files.
~/logos/**/*.md
Every change to what the agent knows says so in one line, in the host you are already looking at.
LOGOS_ANNOUNCE=quiet
The project comes from the directory the agent works in, so two repositories never cross.
~/code/kestrel → project "kestrel"
What one agent wrote, and what the next one got. Both panes are real files from this project’s own vault.
--- type: checkpoint project: logos agent: claude branch: feat/bench-temporal commit: a5e72a2 uncommitted: 2 checkpointed: 2026-09-01T08:57:24-07:00 --- ## Didn't work - publishing under the unscoped name 'logos' — taken on npm at 1.0.4 - claiming the @logos scope — the org already exists, not ours to take
# Context for: resume work on logos Last checkpoint by claude, 1d ago. Repository was: feat/bench-temporal a5e72a2 · 2 files uncommitted Already tried, didn't work: - publishing under the unscoped name 'logos' — taken on npm at 1.0.4 - claiming the @logos scope — the org already exists, not ours to take _Context budget: ~284 of 4000 tokens._
An agent that has never seen your project does not spend an hour rediscovering what last week’s agent already paid for.
From the people testing it. Beta testers, unnamed at their own request.
Logos helped save me over 22× tokens.
Measured at the resume moment: a 717-line, ~9,000-token STATE.md against a 34-line, ~400-token checkpoint of the same project.
Logos helped me completely migrate from Claude to Copilot following internal switch-ups. Couldn’t be happier.
Don’t take my numbers for it. I wrote the benchmark and the system that wins it. It runs on your machine in one command, so check it yourself first.
$ go run ./cmd/logos bench continuity --logos-only
32 handoff scenarios. One passes only if the next agent gets the current fact, without the stale one beside it, in a token budget it did not choose. Here is what it printed for me:
| System | Pass rate | Pass | Carry | Leak | Signal |
|---|---|---|---|---|---|
| Logos | 84.4% | 89.1% | 16.7% | 88.9% | |
| mempalace | 46.9% | 82.8% | 58.3% | 22.2% | |
| recency-window | 46.9% | 84.4% | 83.3% | 22.2% | |
| full-dump | 46.9% | 84.4% | 83.3% | 22.2% | |
| letta | 43.8% | 82.8% | 83.3% | 22.2% | |
| mem0 | 43.8% | 82.8% | 83.3% | 22.2% | |
| vector-rag | 43.8% | 82.8% | 83.3% | 22.2% | |
| static-file | 6.2% | 22.7% | 0.0% | 0.0% | |
| no memory | 0.0% | 6.2% | 0.0% | 0.0% |
Carry is required facts retrieved; Leak is superseded facts returned anyway, lower is better; Signal is telling the next agent something was already tried. It loses too, and those rows stay in: arithmetic, recency-conflict and multi-hop are all 0%.
Drop --logos-only to run every rival too; that one needs their API keys, this one needs only Ollama.
Scenarios, scoring and every adapter setting.
Pick how you work. Every route installs the same single binary and points every agent at the same vault.
macOS and Linux. The formula is logos-mcp, because Homebrew already has a logos; the command it installs is still logos.
$ brew install coder8124/tap/logos-mcp
$ logos setup
Update with brew upgrade logos-mcp, not logos update — hosts are wired to brew’s opt path, which survives the upgrade.
Windows, or anywhere without Homebrew. Needs only Node. --dry-run prints the plan and exits.
$ npx -y @noeton/logos setup
Deep links that hand the host a finished config. Nothing else to edit.
Zed, Cline, Windsurf, Continue, Gemini CLI or your own agent. npx resolves the binary on demand, so the config is portable between machines.
{
"mcpServers": {
"logos": {
"command": "npx",
"args": ["-y", "@noeton/logos", "mcp", "serve"]
}
}
}
Add "env": { "LOGOS_VAULT": "/path/to/vault" } to keep the vault somewhere other than ~/logos.
One static executable, pure Go with CGO_ENABLED=0, so a single Linux build covers glibc and musl alike.
| Platform | Archive | Size |
|---|---|---|
| macOS · Apple silicon | logos_v0.5.4_darwin_arm64.tar.gz | 5.6 MB |
| macOS · Intel | logos_v0.5.4_darwin_amd64.tar.gz | 5.9 MB |
| Linux · x86-64 | logos_v0.5.4_linux_amd64.tar.gz | 5.9 MB |
| Linux · arm64 | logos_v0.5.4_linux_arm64.tar.gz | 5.4 MB |
| Windows · x86-64 | logos_v0.5.4_windows_amd64.zip | 6.0 MB |
Verify against SHA256SUMS
· with Go: go install github.com/Coder8124/logos/cmd/logos@latest
logos setup already installs this in Claude Code, with the SessionStart hook that puts the last handoff in front of the model before it does anything. Run these yourself only if you would rather setup left Claude Code alone — after installing logos, because the plugin runs the binary rather than carrying one.
/ plugin marketplace add Coder8124/logos
/ plugin install logos@logos
What installing does to your machine.
~/logos unless you say otherwise. Open it, grep it, commit it, delete it.logos review accepts or rejects it..logos/index.db is a cache that rebuilds from the files.postinstall scriptThe binary ships as real package contents, so --ignore-scripts and offline installs work.$ brew install coder8124/tap/logos-mcp $ logos setup