Docker install
The official image ships from GitHub Container Registry with a pre-baked embedding model, Sigstore keyless signatures, SLSA provenance, and a CycloneDX SBOM. No first-run download. No account required.Pull and run
http://localhost:8100 once the container starts. The board is ready.
Why MCP_HOST=0.0.0.0 is required
The same applies to HOST=0.0.0.0 for the web board and API on port 8100.
Connect your agent
After the container starts, generate.mcp.json and copy it to your project directory:
.mcp.json to .gitignore — it contains a scoped agent API key.
To generate config for one agent only (Claude Code, for example):
Environment variables
Data persistence
The container writes all state to/data:
Docker Compose
Two compose files ship with theokto-pulse repo.
Pinned release (recommended)
docker-compose.prod.yml installs a pinned version from PyPI. Clone only the okto-pulse repo — no sibling repo needed.
.mcp.json after first boot:
Build from source
docker-compose.yml builds wheels from local source. Use this when modifying okto-pulse-core or okto-pulse.
Both repos must be cloned as siblings:
.mcp.json:
LAN access
Both compose files bind to127.0.0.1 by default — the container is reachable from your machine only. To allow LAN access, change the ports mapping in the compose file:
Updating
Verify
Next steps
Connect your agent
Wire Claude Code, Cursor, Cline, or Windsurf to the running MCP server.
First workflow
Ideation → spec → cards in a single session.