For developers
Boswell is a tenant-scoped, versioned memory service that your agents reach through the Model Context Protocol. Branches, commits, bookmarks, tasks, search, and recall that outlive any one session or model. Invitation-only private beta, running on Atlas, used inside Claude Code and Codex today.
// Status
Read live from the v3 service's public health document. The same endpoint your agents will talk to.
Endpoints: https://boswellmcp.com/mcp (MCP, streamable HTTP), https://boswellmcp.com/status (this health document). Boswell 6, the archive pipeline with curation and provenance, is in development and not launched yet.
// Quickstart
Boswell is an invitation-only private beta. Have a conversation at askboswell.com and enter your invite code on the page it builds for you. The invitation page creates your tenant and shows your API key once, with the exact connection commands filled in. No invite code yet? The page Boswell builds for you says how to ask for one.
Any MCP client that speaks streamable HTTP can connect. These two are used every day:
# Claude Code claude mcp add --transport http --scope user boswell https://boswellmcp.com/mcp --header "X-API-Key: $BOSWELL_API_KEY" # Codex codex mcp add boswell --url https://boswellmcp.com/mcp --bearer-token-env-var BOSWELL_API_KEY
Clients that speak MCP OAuth discover the resource at /.well-known/oauth-protected-resource/mcp. API keys are tenant-scoped; keep them out of prompts and repositories.
Open each session with boswell_startup to load your commitments, the recent thread, and open tasks. Stage observations with boswell_bookmark as you work; commit decisions with boswell_commit, capturing the why, not only the what. Bring things back with boswell_search and boswell_recall. Nightly consolidation promotes the bookmarks that proved useful.
# the rhythm of a session boswell_startup { verbosity: "warm" } boswell_bookmark { branch, summary, salience: 0.3 } boswell_commit { branch, message, content: { decision, why, how } } boswell_search { query } # hybrid lexical + semantic boswell_recall { commit } # the full record by hash
// Tools
Grouped by job. The authoritative list is whatever the server returns to tools/list for your tenant; this is the map.
boswell_startup · commitments, recent thread, open tasks, once per sessionboswell_brief · what changed since you last lookedboswell_handshake · full tenant orientation in one callboswell_manifest · the tenant's standing commitmentsboswell_task_briefing · context for one taskboswell_episode_recap, boswell_reflect, boswell_bootloader · recap, reflection, and the minimal boot recordboswell_bookmark · stage an observation; salience decides promotionboswell_commit · preserve a decision or insight, with the whyboswell_search / boswell_semantic_search · hybrid or vector searchboswell_recall · a specific memory by commit or blob hashboswell_log, boswell_head, boswell_branches, boswell_checkout · the git-shaped historyboswell_consolidate, boswell_checkpoint, boswell_replay, boswell_resume · consolidation and continuityboswell_create_task, boswell_claim_task, boswell_update_task, boswell_release_task, boswell_delete_taskboswell_update_plan, boswell_resume_tasks, boswell_halt_tasks, boswell_halt_statusboswell_record_trail, boswell_hot_trails, boswell_trails_from, boswell_trails_toboswell_graph, boswell_link, boswell_links, boswell_landscapeboswell_decay_status, boswell_decay_forecast, boswell_trail_health · what is fading and whenboswell_quarantine_list / boswell_quarantine_resolve · doubtful material stays out of default recallboswell_hygiene_list / boswell_hygiene_resolve, boswell_immune_statusboswell_validate_routing, boswell_silt, boswell_resurrect, boswell_buried_memoriesboswell_vault_put / boswell_vault_get / boswell_vault_list / boswell_vault_deletevault:// handle; listing never shows values. Needs the protected vault:access scope.// Memory model
Every tenant gets its own graph. Inside it, memory is versioned like code and weighted like a mind.
Branches keep different parts of the work distinct and connected. Commits are immutable, timestamped records with their reasoning attached; a change creates a new version and the old one stays intact.
Bookmarks catch observations quickly, with a salience score. Nightly consolidation promotes the ones that earned it into permanent commits and lets the rest settle.
Relationships between memories are weighted trails. Travelled trails strengthen; untravelled ones fade on an FSRS-inspired curve. Recall follows the shape of your work.
Hybrid search fuses lexical and vector results, with supersession applied so newer facts outrank the ones they replaced. Anything can be recalled exactly by hash.
Tasks, plans, and claims live beside the memory they came from, so a second model, or a second session, can pick up work without a rebrief.
Tenant-scoped API keys and row-level database controls keep each graph its own. Encryption at rest is configured, audit is on, provenance rides with every memory, and doubtful material is quarantined rather than recalled by default.
Where these ideas come from, and what they feel like in use: Where it comes from →. Why the layer exists at all: a response to the frontier-ecosystem thesis →.
// FAQ
Only what your agent chooses to store: the summaries, decisions, tasks, and secrets it hands to the tools. Boswell never reads your files or your prompts on its own. Retrieval sends back what you stored, ranked.
Your tenant, through your key. Each invitation creates one tenant with its own graph, isolated by tenant-scoped keys and row-level database controls. Encryption at rest is configured and every access is audited. Deletion requests go through the privacy page.
Claude Code and Codex are used with it every day. Any MCP client that speaks streamable HTTP and can send a bearer token or an X-API-Key header should connect the same way; clients that speak MCP OAuth find the resource metadata at /.well-known/oauth-protected-resource/mcp.
Yes. The graph belongs to the tenant, not to a model. A session in Claude Code and a session in Codex read and write the same branches, commits, and tasks, and inherit the same standing commitments.
Decay changes what surfaces, not what exists. Commits are immutable. Memories that go unused sink out of default recall on an FSRS-inspired curve; a deep search still reaches them, and boswell_resurrect brings one back. Where that idea comes from →
Bookmark by default: observations, patterns, anything that might matter, with a salience score. Commit for decisions, architectural choices, completed work, and rules, and write down the why. Nightly consolidation promotes the bookmarks that earned it.
The invitation page shows it once. Put it in your client's configuration or a secret manager, never in a prompt or a repository. Keys are tenant-scoped, so a key only ever reaches its own graph.
Nothing during the private beta; the invitation is the whole price. The service runs on our own infrastructure and there is no self-hosted edition today.
The next release: an archive pipeline that ingests your existing history with curation and provenance, so the memory does not start empty. It is in development and not launched yet. The status panel above always says what is running now.
Four turns, then a page built from what you said. The invitation is on that page.
Tell Boswell about yourself →