Install
Pulse runs as a single Python process on your machine. No cloud account. No data leaves your system. Two commands and you have a board.
Prerequisites
- Python 3.11 or higher
- pip
If you are on macOS with Homebrew: brew install python@3.12
Install Pulse
pip (recommended)
Docker
From source
Pull and run the signed image from GitHub Container Registry:docker run \
-p 8100:8100 \
-p 8101:8101 \
-v ~/.okto-pulse:/root/.okto-pulse \
ghcr.io/oktolabsai/okto-pulse:latest
The image is signed with Sigstore keyless signatures. SLSA provenance and a CycloneDX SBOM ship as image attestations. The embedding model is pre-baked — no first-run download needed.Open http://localhost:8100 once the container is up. Clone both active repos as siblings:git clone https://github.com/OktoLabsAI/okto-pulse-core
git clone https://github.com/OktoLabsAI/okto-pulse
Install in development mode:pip install -e ./okto-pulse-core -e ./okto-pulse
Initialize
Run this in the directory where your agent will work. Pulse creates your board and writes the MCP configuration file your agent will use to connect.
What it does:
- Creates
~/.okto-pulse/ with your database and board data
- Writes
.mcp.json in the current directory with a scoped API key
.mcp.json contains an agent API key. Do not commit it to a public repository. Add it to .gitignore.
Start
okto-pulse serve --accept-terms
Pulse starts two listeners on a single process:
| Endpoint | Default URL |
|---|
| Web board and API | http://localhost:8100 |
| MCP server (agent access) | http://localhost:8101/mcp |
Open http://localhost:8100. Your board is ready.
First run note: If you installed via pip, Pulse downloads the semantic search model (all-MiniLM-L6-v2, ~90 MB) on first start. This takes 30–60 seconds depending on your connection. The model is cached; subsequent starts are fast.
Verify
Both ports should report as live. If you used custom ports:
okto-pulse serve --api-port 9000 --mcp-port 9001 --accept-terms
okto-pulse status --api-port 9000 --mcp-port 9001
If MCP port changes after initialization, regenerate .mcp.json:
Where your data lives
All Pulse data is stored locally at ~/.okto-pulse/:
~/.okto-pulse/
data/pulse.db SQLite database (boards, specs, cards, decisions)
boards/{id}/graph.lbug per-board knowledge graph
uploads/{id}/ file attachments
global/discovery.lbug cross-board discovery index
Nothing is sent to a remote server.
Next steps
Connect your agent
Wire up Claude Code, Cursor, Cline, or any MCP-compatible agent.
First workflow
Idea → spec → cards in your first session.