Portable context for Claude. Own your memory, voice, and identity across all Claude interfaces.
Continuum gives you a single source of truth for your context that works with Claude Code, Claude.ai, Claude Desktop, and the API. Your identity, voice, working context, and memories live in simple markdown files that you control.
- Streamable HTTP transport for MCP (recommended over SSE for remote access)
- Expanded test suite covering export, config, MCP, and voice modules
- Bug fixes: removed debug mode from production server, fixed bare except clauses, eliminated
os.chdir()side effects - py.typed marker for PEP 561 type checking support
Every Claude session starts fresh. You re-explain your role, re-establish your communication style, re-provide context. Claude.ai has memory, but it's siloed and opaque. Claude Code has CLAUDE.md, but it's project-local. None of them talk to each other.
Continuum solves this by giving you:
- Identity: Who you are (stable over years)
- Voice: How you communicate (stable over months)
- Context: What you're working on (changes weekly)
- Memory: What you've learned (accumulates over time)
- Project overlays: Per-project context that merges with your global context
- MCP server: Live integration with Claude.ai and Claude Desktop via Tailscale
pip install continuum-contextNote: The package name on PyPI is
continuum-context, notcontinuum.
Other installation methods:
# With uv
uv pip install continuum-context
# From source
git clone https://github.com/BioInfo/continuum.git
cd continuum
pip install -e ".[dev]"# Initialize your context directory
continuum init
# Edit your identity and voice
continuum edit identity
continuum edit voice
# Check status
continuum status
# Export for Claude Code
continuum exportcontinuum init # Create ~/.continuum with templates
continuum edit identity # Edit who you are
continuum edit voice # Edit communication style
continuum edit context # Edit current working context
continuum edit memory # Edit accumulated memories
continuum status # Show context status
continuum validate # Check for issues
continuum export # Generate merged context file# Add memories (category auto-detected)
continuum remember "Decided to use FastAPI for the microservice"
# -> [YYYY-MM-DD] DECISION - Decided to use FastAPI for the microservice
continuum remember "Team standup moved to 10am" --category fact
# -> [YYYY-MM-DD] FACT - Team standup moved to 10am# Initialize project context in current directory
continuum init --project
# Edit project-specific files
continuum edit context --project
continuum edit memory --project
# Add project memories
continuum remember "Architecture: event-driven with Kafka" --project
# Status shows both global and project context
continuum statusProject context merges with global context on export. Context and memories append; identity and voice can override.
Analyze your writing samples to generate a voice profile:
# Add samples to ~/.continuum/samples/
mkdir -p ~/.continuum/samples/emails
# Copy your writing examples there
# Analyze and generate voice.md
continuum voice analyze
# Preview without updating
continuum voice analyze --dry-runRequires an OPENROUTER_API_KEY environment variable (add to ~/.continuum/.env).
Continuum includes an MCP server that exposes your context to Claude.ai, Claude Desktop, and Claude Code.
For Claude Code (local, stdio):
# Get config to add to your MCP settings
continuum serve configFor Claude.ai / Claude Desktop (remote, Streamable HTTP via Tailscale):
# Start the server (runs on port 8765)
continuum serve http
# Enable Tailscale Funnel for HTTPS
tailscale funnel --bg 8765
# Get config
continuum serve config --httpLegacy SSE transport is still available for older clients:
continuum serve sse
continuum serve config --sseAdd to Claude.ai: Settings > Connectors > Add custom connector
MCP Tools:
| Tool | Description |
|---|---|
get_context |
Full merged context (identity + voice + context + memory) |
get_identity |
Identity information |
get_voice |
Voice/style guide |
get_current_context |
Current working context |
get_memories |
Search memories by category or text |
remember |
Save new memory from conversation |
get_status |
Continuum status check |
~/.continuum/ # Global context
├── identity.md # Who you are
├── voice.md # How you communicate
├── context.md # Current working context
├── memory.md # Accumulated memories
├── config.yaml # Configuration
├── samples/ # Writing samples for voice analysis
└── exports/ # Generated exports
~/project/.continuum/ # Project context (optional)
├── context.md # Project-specific context
└── memory.md # Project-specific memories
Edit ~/.continuum/config.yaml:
# Days before a file is marked stale
stale_days: 14
# Memory filtering for exports
memory_recent_days: 30
memory_max_entries: 20
# Identity condensing for exports
identity_max_words: 500- You own your context. Not platforms, not providers. You.
- Files are the interface. Human-readable, git-friendly, editable with any tool.
- Voice matters. It's not just what you know, it's how you communicate.
- Active curation beats passive extraction. You decide what's important.
- Core CLI (init, edit, status, remember, export, validate)
- Voice analysis from writing samples
- Project-specific context overlays
- MCP server (stdio + SSE + Streamable HTTP)
- Semantic memory search
- Voice drift detection
- Claude Code native integration
Contributions are welcome. To get started:
git clone https://github.com/BioInfo/continuum.git
cd continuum
pip install -e ".[dev]"
pytest tests/ -vPlease open an issue first for significant changes.
MIT License. See LICENSE for details.
Justin Johnson - Run Data Run
Built for people who want to own their AI context, not rent it.