Skip to main content
Pre-release

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

OpenChronicle

License: AGPL-3.0 Docker Python 3.11+

A memory database for LLM agents. Persistent semantic + keyword memory, project namespacing, git-onboard, served over HTTP REST and MCP from a single ASGI process. Runs on your hardware.

What it does

  • Persistent memory across sessions. Save decisions, milestones, and rejected approaches that survive context compression and new conversations. Retrieve them with hybrid full-text and semantic search via Reciprocal Rank Fusion.
  • Project namespacing. Memory is scoped to projects, so context for one workstream doesn't leak into another.
  • Git onboarding. Clone a repo, cluster commits by relatedness, return summaries ready for memory ingestion. Seeds long-term memory with the WHY behind existing code.
  • One process, two transports. FastAPI hosts both the REST surface (/api/v1/*) and the MCP streamable-HTTP transport (/mcp) on the same port. Single container, single port mapping, single healthcheck.
  • Embedding-failure degradation. When the embedding provider goes down, search degrades cleanly to FTS5-only and surfaces the degraded state via /health. Backfill catches up when the provider returns.
  • Schema migration framework. Versioned .sql migrations with savepoint atomicity. Re-runs are idempotent. Future schema changes drop in as NNN_<slug>.sql files.
  • Atomic online backups. Uses SQLite's online backup API. Backup-before-destructive policy: vacuum runs a backup first as part of the same job. Integrity-check failures trigger emergency backups.

What it isn't

  • Not a conversation engine. v3 has no LLM. Use Claude Code, Goose, Open WebUI, etc. via the MCP server.
  • Not multi-tenant. Single user. Bearer-token auth via OC_API_KEY is supported but optional — disabled by default for trusted-LAN deployments. See docs/configuration/security_posture.md for the when-to-enable guidance.
  • Not a cloud sync layer. The DB lives on your hardware. Backups go to a directory next to it. Cross-device sync isn't built in (see V3_PLAN.md open question 12 for the design sketch).

By design.

Install

From source:

pip install -e ".[mcp,openai]"
oc init
oc serve

The default oc serve binds 127.0.0.1:8000. Override with --host/--port or OC_API_HOST/OC_API_PORT.

Docker (single container, NAS-friendly):

docker run --rm \
  -p 8000:8000 \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config \
  ghcr.io/carldog/openchronicle-mcp:latest

For a Portainer stack on a NAS, use the docker-compose.nas.yml at the repo root.

Quickstart

# Bootstrap the runtime tree
oc init
oc init-config

# Create a project
PROJECT_ID=$(oc init-project "my-project")

# Save your first memory
oc memory add "Decision: SQLite for storage; AGPL for license" \
    --project-id $PROJECT_ID --tags decision

# Search it
oc memory search "storage decision" --project-id $PROJECT_ID

Or do the same via MCP — register the server with Claude Code:

claude mcp add --scope user --transport http openchronicle \
    http://127.0.0.1:8000/mcp

Then ask Claude to call memory_save and memory_search.

Architecture

Hexagonal: domain/ (pure types + ports) → application/ (use cases, services) → infrastructure/ (SQLite, embedding adapters, the maintenance loop). Driver-side adapters in interfaces/ host the HTTP, MCP, and CLI surfaces.

See docs/architecture/ARCHITECTURE.md for the full layout.

Documentation

Development

pip install -e ".[dev,mcp,openai,ollama]"
pre-commit install
pytest

The architecture is enforced by tests:

  • tests/test_hexagonal_boundaries.py — domain/application/infrastructure layering
  • tests/test_architectural_posture.py — core agnostic of MCP SDK
  • tests/test_no_secrets_committed.py, tests/test_no_soft_deprecation.py — repo hygiene

License

AGPL-3.0.

mcp-name: io.github.CSOAI-ORG/openchronicle-mcp

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openchronicle_mcp-3.0.0.dev1.tar.gz (139.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openchronicle_mcp-3.0.0.dev1-py3-none-any.whl (122.8 kB view details)

Uploaded Python 3

File details

Details for the file openchronicle_mcp-3.0.0.dev1.tar.gz.

File metadata

  • Download URL: openchronicle_mcp-3.0.0.dev1.tar.gz
  • Upload date:
  • Size: 139.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for openchronicle_mcp-3.0.0.dev1.tar.gz
Algorithm Hash digest
SHA256 cb84b27061eaf73e099b24ed8e8aeee5ac58b9ce43479c6f0c2a7e514706a363
MD5 f5c6829c3a3901710e7c59af558da5cd
BLAKE2b-256 ab8da5ce2c9c0eeb0aad95305de9f4ac22f8d8f4fda8d147a00513c75cfecb35

See more details on using hashes here.

File details

Details for the file openchronicle_mcp-3.0.0.dev1-py3-none-any.whl.

File metadata

  • Download URL: openchronicle_mcp-3.0.0.dev1-py3-none-any.whl
  • Upload date:
  • Size: 122.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for openchronicle_mcp-3.0.0.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 30760b304a6380da3c0f64005c9e6bea9834911898ce34abfb225e001438c1a4
MD5 e7b54db48a46326901814f04d283cef4
BLAKE2b-256 bad07684bb3091d748f69ef13a3821d5a26d81cf0f065ba3440711082f96445e

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

3.0.0.dev1 This release

2 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