Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Continuum

Continuum

Your tools change. Your context stays.

Local conversation history for humans and coding agents. Import what you point at. Search it. Read it to the end. Hand a slice to another agent over MCP. Never rewrite a vendor database.

CI Release Python 3.12+ License: MIT pre-alpha

中文 · Architecture · Publishing · Contributing · Security · Releases


Continuum is a local index of conversations you already have on disk. You choose a file. Continuum copies what it can into a derived SQLite database. CLI, MCP, and the GUI all query that same index.

It does not scan your home directory, does not write Cursor/Claude/Codex stores, and does not upload chats. Pre-alpha: the Cursor path is synthetic-fixture green; a live host is not verified. PyPI is not published yet.

Contents

Try it

Need uv and Python 3.12+.

git clone https://github.com/bosprimigenious/continuum.git
cd continuum
uv sync --locked

uv run continuum --db .continuum/demo.sqlite3 import examples/synthetic.snapshot.json
uv run continuum --db .continuum/demo.sqlite3 search "数据库锁"

You should see one hit whose preview contains SQLite 数据库锁. Copy session_id, then:

uv run continuum --db .continuum/demo.sqlite3 read SESSION_ID --limit 2

Follow next_cursor until it is null. Import the same file again: "changed": false. The example file is never modified.

The demo data is hand-written synthetic JSON. There are no private chats in this repository.

Install

Do not pip install continuum. That name is an unrelated PyTorch library.

Channel Status
GitHub prerelease wheel v0.1.0a1 Available
PyPI project continuum-history Not published. OIDC 422 invalid-publisher: no pending publisher on pypi.org. Maintainer step: publishing.md
Signed desktop installer Not published
Windows .exe CI produced unsigned NSIS (Continuum_0.1.0-alpha.1_x64-setup.exe). Start/query not run on Windows

From the GitHub release:

uv pip install \
  https://github.com/bosprimigenious/continuum/releases/download/v0.1.0a1/continuum_history-0.1.0a1-py3-none-any.whl
continuum --help

From a checkout, use uv run continuum … as in Try it. The console script is continuum; the distribution name will be continuum-history when it reaches PyPI.

CLI

The index is an explicit --db path or CONTINUUM_DB. Continuum does not scan your home directory or invent a default vendor path.

uv run continuum --db .continuum/demo.sqlite3 import examples/synthetic.snapshot.json

export CONTINUUM_DB=.continuum/demo.sqlite3
uv run continuum search "数据库锁"
uv run continuum "数据库锁"
uv run continuum --format text search "数据库锁"
uv run continuum read SESSION_ID --limit 2

--format auto (default): JSON when piped (GUI/MCP/scripts), text in a terminal. --format json always JSON. This is not an agent REPL like Grok/Codex; it searches an index you already imported.

Search is literal Unicode (including short Chinese). Results return a 240-character preview; read returns full event text. Filters on source/project are exact match, not permissions.

Cursor state.vscdb

One observed IDE shape, not every Cursor store. You pass the file. Continuum does not find it for you. Live Cursor installs are unverified.

uv run continuum --db .continuum/demo.sqlite3 import \
  --adapter cursor-state-vscdb --source-id cursor-demo PATH/TO/state.vscdb

--source-id is required. The reader copies the main file plus WAL/SHM, then opens the copy with SQLite mode=ro. A blocked capture (incomplete_source) leaves any existing index unchanged and does not create a new empty --db.

Do not commit real Cursor databases. Agent-transcripts JSONL and workspace sidebar DBs are not this adapter. Reusing a source_id replaces that source's derived snapshot; it is not an archive merge. Keep the original files. Indexes are disposable.

MCP

Same index, four read-only tools. Import is CLI-only.

uv run continuum --db .continuum/demo.sqlite3 serve
{
  "mcpServers": {
    "continuum": {
      "command": "uv",
      "args": [
        "run", "--locked", "--directory", "/absolute/path/to/continuum",
        "continuum", "--db", "/absolute/path/to/continuum/.continuum/demo.sqlite3", "serve"
      ]
    }
  }
}

Replace both paths. Host config file locations differ.

Tool Does
history_sources Imported sources, counts, digests, timestamps
history_list Sessions, optional source/project filter
history_search Literal substring search
history_read Full events, pagination, source_ref

There is no import tool, no filesystem path argument, no delete, no “run this in another agent”. stdio against the Python SDK is tested. Cursor / Claude Code / Codex hosts are not.

A connected client can read the entire selected index. Project filters are not ACLs. Use one index per trust boundary. Text an agent reads may still be sent to that agent's model provider. Continuum has no upload service of its own.

Local coding agents should use the continuum-history skill (~/shared-ai-skills/continuum-history/, symlinked into Grok / Claude / Codex / Cursor skills/). Follow that SKILL.md (CLI or an already-connected MCP). Do not write a home-directory scanner. Synthetic check:

bash ~/shared-ai-skills/continuum-history/scripts/continuum_skill_check.sh

GUI

The UI talks to the same CLI JSON interface. It does not parse vendor files or open SQLite itself. The desktop shell is a four-pane workbench (session list, read, coverage, settings), not an editor and not a second agent.

Vite shell (checkout, not a downloadable app):

cd gui
npm install
npm run dev

Desktop is experimental. This repo can build an unsigned macOS .app with a PyInstaller sidecar of the continuum CLI. That artifact is not notarized, not shipped in git, and not a clean-machine install. Windows NSIS is produced on GitHub windows-latest; this macOS checkout cannot launch that .exe.

uv run --with pyinstaller python scripts/build_sidecar.py
uv run python scripts/smoke_sidecar.py
cd gui && npm ci && npx tauri build

Needs Rust (rustup) and Node. Output lands under gui/src-tauri/target/release/bundle/ (gitignored).

What works / what does not

Pre-alpha. A green foundation gate means the checkout works, not that the product is done.

Works in this repository Not here yet
Snapshot v1 import, literal search, pagination, source refs Claude Code / Codex adapters
Cursor state.vscdb / cursorDiskKV (synthetic fixtures) Live Cursor host, Cursor JSONL, sidebar DBs
CLI + four read-only MCP tools on one core Auto-discovery, background refresh
GUI session via CLI JSON; Vite dev; unsigned local macOS .app; CI NSIS artifact Browser e2e, signed installer, Windows start/query acceptance
GitHub v0.1.0a1 wheel; CI on Linux / macOS / Windows PyPI continuum-history
Rollback, Unicode, WAL sidecar, stdio tests Semantic search, attachments as full text, cloud sync

Native adapter status: NOT READY until a named live Cursor/OS/MCP-host combination is recorded. GUI status: NOT READY until a real browser (or desktop) path is exercised end to end.

How it is put together

One Python core. Several shells. Not an IDE.

┌──────────────────────────────────────────────┐
│ Shell: CLI / MCP / Vite / .app / .exe        │
└──────────────────┬───────────────────────────┘
                   │ CLI JSON or MCP stdio
┌──────────────────▼───────────────────────────┐
│ Core: adapters → Snapshot v1 → HistoryStore  │
└──────────────────────────────────────────────┘

This is the Grok / Codex shipping shape (runtime + shells), not the Cursor shape (VS Code fork). The desktop .app / .exe wrap the same continuum CLI. Do not fork an editor to get a GUI.

See docs/architecture.md for contracts, rejected alternatives, and how a failed import is supposed to behave.

Contributing

Read CONTRIBUTING.md and docs/development.md before changing behavior.

uv sync --locked
uv run python scripts/check.py

That gate is format, lint, strict mypy, tests (coverage floor 85%), a basic publication hygiene scan, wheel/sdist, and an isolated wheel smoke. It may hit the network for build dependencies. It does not read your private agent history.

Please:

  • Start from synthetic fixtures and a failing behavior test.
  • Keep vendor databases read-only.
  • Do not attach real state.vscdb, logs, or tokens to issues or PRs.
  • Do not skip a red test or lower the coverage floor to go green.

CI runs the same gate on Ubuntu, macOS, and Windows.

Privacy

Indexes are plaintext. There is no automatic secret redaction and no secure-erase guarantee. Only import what you are willing to expose to every client connected to that --db. Details: SECURITY.md.

FAQ

Why isn't this pip install continuum? PyPI already has continuum, a PyTorch continual-learning library. This project will publish as continuum-history. Until then, use the GitHub wheel or a checkout.

Why did the PyPI upload fail? GitHub OIDC reached PyPI (run 35454466719) and got 422 invalid-publisher. The token is valid; pypi.org has no pending publisher for continuum-history / bosprimigenious/continuum / publish.yml / environment pypi. That is an account setting, not a version bump. Steps: docs/publishing.md.

Does Continuum phone home? No runtime telemetry, hosted sync, or model API. uv / npm / cargo still talk to package registries when you install or build.

Will connecting MCP leak my whole library? The tools can read everything in that index. Split indexes if you need split trust. Whatever the host does with the text is outside Continuum.

Can I point --db at Cursor's own database? No. --db is Continuum's derived index. Pass the vendor file to import.

Is the macOS .app a release? No. It is a local packaging spike: unsigned, not notarized, not installed from GitHub Releases.

License

MIT. Copyright (c) 2026 Continuum contributors.

Independent project. Not affiliated with Cursor, Anthropic, OpenAI, or any other vendor. The name does not claim exclusive trademark rights.

Metadata

Release files for continuum-history 0.1.0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for continuum-history 0.1.0a1
File Size Uploaded
continuum_history-0.1.0a1.tar.gz 2.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for continuum-history 0.1.0a1
File Interpreter ABI Platform
continuum_history-0.1.0a1-py3-none-any.whl Python 3 none any Details

Total release size: 2.3 MB

Release files / continuum_history-0.1.0a1.tar.gz

Download URL continuum_history-0.1.0a1.tar.gz
Size 2.3 MB
Tags Source
SHA-256 checksum
How to use checksums
0c1bb432a320397a8430af8c871937261de8afcb07fcb3b62462b64b56594117
BLAKE2b-256 checksum
How to use checksums
d7e8830aecd68347ad862599f33f883bfa1d4ac8f9dbbc3f9fafec1f7d49ca3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / continuum_history-0.1.0a1-py3-none-any.whl

Download URL continuum_history-0.1.0a1-py3-none-any.whl
Size 25.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6c4af89cd524b3f8bf021749af64a4241843d23ae7be750edc2e24431b098147
BLAKE2b-256 checksum
How to use checksums
35ba08df9e2b07cc5b5005fdc4e7ebabf596ab88dc8146d83a266e1e7d45ec9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.1.0a1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page