SharedContext
What Is It
SharedContext is a local-first memory layer for LLM agents. It gives Cursor, Claude Code, and Codex persistent memory that you own, synced to Arweave so it follows you across sessions and machines.
Your AI assistant forgets everything the moment a session ends. Project decisions, coding preferences, architectural context — all gone. You re-explain the same things every day.
SharedContext fixes that. It runs as an MCP server that your AI client connects to. Agents store and recall facts through MCP tools. A background watcher syncs your conversation history. Everything is encrypted client-side and uploaded to Arweave. Restore it all on a new machine with a 12-word recovery phrase.
Related MCP server: SAIHM
Why Shared Context
Your AI memory is fragmented:
Cursor stores transcripts in
~/.cursor/projects/Claude Code stores sessions in
~/.claude/projects/Codex has its own isolated context
None of them talk to each other. None of them persist structured knowledge. None of them let you move to a new machine and pick up where you left off.
SharedContext collapses all of that into one encrypted, portable layer that every client reads from and writes to. One memory. One identity. One place to look.
What It Does
Capability | Description |
Fact memory | Agents store and recall structured facts (preferences, decisions, architecture) across sessions |
Conversation recall | Retrieve past conversations from any client — "continue the discussion about auth" |
Encrypted sync | All data is encrypted locally with AES-256-GCM before leaving your machine |
Arweave persistence | Encrypted blobs are uploaded to Arweave for permanent, censorship-resistant storage |
Cross-machine restore | 12-word recovery phrase reconstructs your entire context on any machine |
Conversation sharing | Share a specific conversation via encrypted link — recipient imports with one command |
Auto-setup | Detects installed AI clients and configures MCP automatically on |
What It Is Now
SharedContext is early (v0.1.x). It works, it's tested, but it's not battle-hardened yet.
Supported clients: Cursor, Claude Desktop, Claude CLI, Codex
Current limitations:
Ranking is heuristic/keyword-based, not semantic vector search
Single-user only — no collaborative memory
Not a hosted service — you run everything locally
How It Works
Identity
A 12-word recovery phrase deterministically derives a secp256k1 keypair. The phrase + a random salt derive an AES encryption key via Argon2id. The private key is stored encrypted at ~/.sharedcontext/identity.enc. The phrase is stored in the OS keychain for background MCP access.
Local Storage
SQLite is the runtime store. Three tables:
facts— structured memory (key/value with tags, scope, confidence)pending_deletes— tombstones queued for remote syncmeta— version cursors, offsets, sync state
All reads are local. Fast and offline-capable.
Fact Sync
New or updated facts are written to SQLite with
dirty=1Background loop collects dirty facts + pending deletes
Changes are converted into shard operations (
upsert/delete)Operations are chunked to keep payload size bounded
Each shard is encrypted (AES-256-GCM) and signed (secp256k1)
Encrypted blob is uploaded to Arweave with index tags
On success, dirty flags are cleared and version cursors advance
Conversation Sync
Watcher polls
~/.cursor/projects/and~/.claude/projects/for changesEach file uses a saved offset from SQLite meta
Only new messages since last offset are extracted
Segments are encrypted, chunked, signed, and uploaded
Offset advances after successful upload
Delta-only uploads keep network writes small.
Restore
User provides recovery phrase via
init --existingIdentity is re-derived and Arweave is queried by wallet address
Encrypted identity material is fetched and validated
Shard history is downloaded, signatures verified, then decrypted
Valid shards are replayed by version into a fresh SQLite database
Local identity files are persisted for normal operation
Malformed, unsigned, or bad-signature payloads are skipped.
Quick Start
Install
npm install -g ai-sharedcontextInitialize
sharedcontext initThis generates a 12-word recovery phrase, derives your identity, creates ~/.sharedcontext/, and auto-configures any detected AI clients (Cursor, Claude, Codex).
Write down the recovery phrase. It's the only way to restore your context.
Use It
Once initialized, your AI client connects to SharedContext automatically via MCP. No extra steps.
Storing facts — the agent calls store_fact when you express preferences or make decisions:
You: "We're using Drizzle ORM with PostgreSQL for this project"
→ Agent stores: key=project:database:orm value="Drizzle ORM with PostgreSQL" tags=["database","orm","drizzle"]Recalling context — the agent calls recall_context to retrieve relevant facts:
You: "What database setup are we using?"
→ Agent recalls: project:database:orm → "Drizzle ORM with PostgreSQL"Recalling conversations — the agent calls recall_conversation to find past sessions:
You: "Continue the conversation about the auth refactor"
→ Agent retrieves the most relevant conversation matching "auth refactor"Restore on Another Machine
sharedcontext init --existingEnter your 12-word phrase. SharedContext queries Arweave, downloads your encrypted shards, verifies signatures, decrypts, and rebuilds local state.
Manual Client Setup
If auto-setup didn't configure your client, run one of:
sharedcontext setup --cursor
sharedcontext setup --claude
sharedcontext setup --claude-cli
sharedcontext setup --codexThen restart the client app.
Share Context Flow
Share a conversation with someone (or with yourself on another machine):
# 1. List your conversations
sharedcontext list conversations
# 2. Share one by ID
sharedcontext share <conversationId>
# → outputs: sharedcontext://share/<token>
# 3. Import on the other end
sharedcontext sync sharedcontext://share/<token>The conversation is encrypted with a random key embedded in the token. Only someone with the full URL can decrypt it. The encrypted blob lives on Arweave — the link works forever.
Security Model
Layer | Implementation |
Encryption | AES-256-GCM — all data encrypted client-side before upload |
Key derivation | Argon2id — passphrase + salt → 256-bit key |
Signatures | secp256k1 — every shard is signed, verified on pull |
Key storage | Passphrase in OS keychain, private key encrypted at rest |
Pull integrity | Signature verification before decrypt — bad shards are rejected |
Share isolation | Each share uses a unique random 256-bit key, separate from identity |
What this means: Arweave stores opaque encrypted blobs. Without your recovery phrase (or a share token for shared conversations), the data is unreadable. There is no server, no account, no API key. You are the only keyholder.
Command Reference
Command | Description |
| Generate recovery phrase, derive identity, create local storage, auto-configure clients |
| Restore from a 12-word recovery phrase |
| Start the MCP server over stdio (used by AI clients; also useful for debugging) |
| Write MCP config for a specific client |
| Show wallet address, balance, and sync status |
| List discovered conversations (local + remote) |
| List stored context facts |
| Create an encrypted share URL for a conversation |
| Import a shared conversation |
| List all stored facts |
| Delete a fact |
Shorthand: sc is an alias for sharedcontext.
Architecture
src/
├── cli/ # Command workflows (init, setup, share, sync, etc.)
├── core/ # Crypto, identity, storage, sync engine, parsers, watcher
│ ├── backends/ # Arweave upload backend (Turbo)
│ └── parsers/ # Cursor transcript + Claude Code JSONL parsers
├── mcp/ # MCP server with tool definitions (store_fact, recall_context, etc.)
└── test/ # Unit and integration testsContributing
git clone https://github.com/Eversmile12/sharme.git
cd sharme
npm install
npm run build
npm testPRs welcome. Keep changes focused and tests passing.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Eversmile12/sharedcontext'
If you have feedback or need assistance with the MCP directory API, please join our Discord server