Okto Pulse
A local-first SDLC workbench that governs AI-assisted delivery with explicit specifications, quality gates, and durable project memory.
- Source repo
- OktoLabsAI/okto-pulse
- Stars
- ★ 95
- Last updated
- 2d ago
- License
- NOASSERTION
- Primary language
- Python
- FA score
- 80/100 · Good
At a glance
- How it runs
- Works with
- Universal · cross-platformCodex · Claude CodeClaude.ai (Partial support)
- Cost
- Free, no paid service needed
- Setup effort
- Low · running in minutes
- You'll need
- Typical use
- A team using Codex, Claude Code, Cursor, or another MCP client wants requirements, acceptance criteria, and test scenarios established before code changes begin.
- Not a fit if
- Teams that need to offer the software to third parties as a hosted service
- Teams unwilling to adopt enforced specification, validation, and governance workflows
- Environments unable to run Python 3.11 or later
- Source review
- 80/100 · Good
What does this agent do, and when should you use it?
Okto Pulse is a local-first software-development workbench that organizes stories, ideation, refinement, specifications, sprints, tasks, tests, and bugs into a traceable workflow. It combines `okto-pulse-core`, which owns the domain model, governance gates, and Knowledge Graph contracts, with a community package that supplies SQLite, Okto Grafx, filesystem, scheduler, REST, React UI, and FastMCP implementations. Humans inspect and steer work in the browser while coding agents create and update the same structured artifacts through a local MCP server. `okto-pulse serve` runs the Web UI/API and MCP listeners in one Python process to preserve the embedded graph database's single-writer model. Its outputs include linked specifications and execution cards, validation evidence, task conclusions, code-investigation receipts, and searchable per-board knowledge graphs. It suits teams that want self-hosted process governance and project memory, but it does not replace the coding agent or execute source-code investigations itself.
The workflow begins with okto-pulse init, which creates local state under ~/.okto-pulse/, seeds a default board and agent, and writes a project-local .mcp.json. After okto-pulse serve starts, people work through the UI/API at http://localhost:8100, while coding agents call the Core tool catalog through http://localhost:8101/mcp. Pulse stores Stories, Ideation, Refinement, Specs, Sprints, Tasks, Tests, and Bugs as structured artifacts with statuses, lineage, and validation rules; transitions check specification coverage, resource readiness, test evidence, bug traceability, task conclusions, and independent review requirements. Its per-board Knowledge Graph consolidates specifications, bugs, decisions, and implementation conclusions so agents can retrieve related decisions, identify contradictions or superseded context, reuse bug lessons, and query Global Discovery across boards. The CLI also exposes okto-pulse code-traceability records, verify-pipeline, KG health diagnostics, schema migration, backfill, JSON-LD export, and local metrics management. The community runtime does not acquire, clone, browse, probe, or inspect source code; an external agent performs those actions in its own environment and submits bounded results.
- A team using Codex, Claude Code, Cursor, or another MCP client wants requirements, acceptance criteria, and test scenarios established before code changes begin.
- A long-running product team needs searchable local memory built from previous specifications, decisions, bugs, and implementation conclusions.
- An engineering lead wants AI-assisted work blocked until coverage, validation evidence, task conclusions, and architecture findings satisfy defined gates.
- A privacy-conscious team wants SQLite data, graph storage, uploads, and metrics to remain on its own machine or Docker volume.
- A feature owner needs to approve a specification before dividing a large change into sprints and reviewable implementation batches.
- An operator needs health endpoints, dead-letter metrics, and KG recovery commands for diagnosing an embedded project knowledge graph.
How do you install or deploy this agent?
Python 3.11 or later is required. Install the package from PyPI:
pip install okto-pulseInitialize it inside the project directory where the coding agent will work:
okto-pulse initOn first run, Pulse attempts to download all-MiniLM-L6-v2 into the Hugging Face cache for Knowledge Graph semantic search. If that download fails, the application still starts in deterministic stub mode, with semantic search disabled. No external LLM API key is documented as a requirement; local MCP access uses a Pulse agent key revealed once after creation or rotation.
How do you use this agent?
Start the Web UI/API and MCP server:
okto-pulse serveOpen http://localhost:8100, select the default board, and create either a Story or an Ideation. The default MCP endpoint is http://localhost:8101/mcp, and many agent tools can discover the generated .mcp.json when launched from the project directory. Its generated shape is:
{
"mcpServers": {
"okto-pulse": {
"url": "http://localhost:8101/mcp?api_key=dash_..."
}
}
}For Codex, create an agent or regenerate its key under Menu → Agents, choose Codex (CLI), and run the copied command:
codex mcp add okto-pulse --url "<Pulse MCP URL with agent key>"After rotating a key, copy the new command and restart the Codex session; the old key stops working, and board access must still be granted in Pulse. Regenerate agent configuration after changing the MCP port:
okto-pulse init --agentsA published container image is also available:
docker run -d --name okto-pulse \
-e HOST=0.0.0.0 \
-e MCP_HOST=0.0.0.0 \
-p 8100:8100 \
-p 8101:8101 \
-v okto-pulse-data:/data \
ghcr.io/oktolabsai/okto-pulse:latestRetrieve the container's bootstrap API key with:
docker exec okto-pulse okto-pulse api-keyWhat are this agent's strengths and limitations?
- People and coding agents operate the same specification, task, test, and bug artifacts through complementary Web UI and MCP interfaces.
- Governance covers scenarios, business rules, API contracts, tasks, test evidence, bug traceability, conclusions, and architecture findings rather than merely tracking cards.
- SQLite, Okto Grafx, uploads, and metrics remain local by default, with a documented persistent Docker-volume deployment.
- The Knowledge Graph preserves lineage, prior decisions, contradictions, superseded context, bug lessons, and cross-board discovery data.
- MCP response projections named
summary,detail, andfulllet users trade response depth against agent context consumption.
- Enforced transitions and coverage checks add specification, evidence, conclusion, and maintenance overhead for teams that prefer unstructured rapid coding.
- Semantic search depends on downloading
all-MiniLM-L6-v2; without it, Pulse runs only with deterministic stub behavior and semantic search disabled. - The community runtime does not inspect source code itself, so an external coding agent must handle repository access, capability checks, and investigations.
- Embedded persistence enforces a single-writer model, and MCP execution has fixed writer, concurrency, and queue admission limits.
- The README identifies Elastic License 2.0 and prohibits offering the software as a hosted or managed service to third parties, while repository license metadata is
NOASSERTION.
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Okto Pulse This agent | 80 · Good | CLIFree | ★ 95 | 2d ago | Python | Codex · Claude Code |
| MCP Memory Service | 68 · Some gaps | MCP serverFree | ★ 2k | 1d ago | Python | ChatGPT · Codex · Claude Code · Claude.ai |
| MemoMind Memory Layer | 40 · Major gaps | MCP serverFree + model costs | ★ 605 | 1mo ago | Python | Claude Code · OpenAI API · Claude API |
| Agents Towards Production | 0 · Major gaps | Library / SDKFree + model costs | ★ 21k | 5d ago | Jupyter Notebook | — |
How does FollowAgents rate this agent?
Why each dimension lost points
The project defaults to loopback listeners, documents read-only diagnostics, single-writer constraints, permission gates, and human controls, and requires --yes, UI confirmation, or a dry-run default for several consequential operations such as metrics deletion, bulk DLQ redrive, and KG backfill. It also discloses local storage, the first-run model download, opt-in telemetry, MCP traces, and listening ports. Deductions apply because CORS_ORIGINS defaults to *, the API key is placed in a URL query parameter and copied commands may persist in shell history or Codex configuration, and the sensitivity and retention of MCP traces are not explained. Dependencies have bounded versions, selected exact pins, and a pinned Grafx source revision, but there is no supplied lockfile, SBOM, vulnerability scan, or artifact-signing evidence. Recovery and quarantine restoration are described, but reset deletes state and kg unmerge explicitly does not repoint edges, so rollback is not comprehensive. Okto Labs attribution and contacts are clear in the files, although publisher identity remains externally unverified.
Static evidence covers dependency installation, isolated wheel checks, the Community test suite, Docker building, and deterministic stub operation when the embedding model is unavailable. Saturated MCP calls also have a retryable result and retry-after instruction. Failure behavior is unusually specific, including status exit codes, health severity, lock and WAL troubleshooting, and contextual error guidance. The principal deduction is internal inconsistency: Platform Surface claims 18 governance gates while the Governance Gates section says 17, and SECURITY.md lists only 0.1.x as supported although the package is at 0.3.3. Those conflicts materially weaken confidence in feature and support claims.
The material clearly addresses developers, teams, container deployments, and several coding-agent clients. It thoroughly separates the Stories-to-Bugs workflow and the responsibilities of Core, Community, REST, MCP, SaaS, and the external agent. Python, source, Docker, port, storage, concurrency, and Grafx policy guidance provide strong environment fit. Trigger precision is deducted because status-transition gates are explained, but the supplied material does not contain per-tool selection rules, parameter contracts, or mis-trigger protections for the 340-tool MCP catalogue, so precise agent routing cannot be fully assessed.
The README provides a strong table of contents, reference-document map, workflow tables, CLI reference, environment-variable reference, storage layout, source and Docker installation, and troubleshooting guidance. Examples cover common agents and deployment styles, while limitations such as single-writer ownership, embedding fallback, shared-filesystem risks, and unsupported direct SQL repair are explicit. The full license and addendum consistently identify Elastic-2.0, and version 0.3.3 plus a multi-version release-note path are documented. Deductions arise from naming and version drift, notably the 17-versus-18 gate count and stale security support table, and from reliance on referenced documents not included here. Maintenance contacts are present, but the currently supported security line is unclear and publisher identity is unknown.
The promised outputs are directly usable: structured SDLC artifacts, inspectable lineage, governance gates, KG health, JSON-LD export, machine-readable CLI status, and MCP interfaces. Combining specs, tests, bugs, decisions, and durable knowledge appears to add substantial value beyond a generic task board. Cost disclosures cover the Python requirement, model download, fixed MCP catalogue context, response projections, concurrency limits, and strict-mode overhead. Full credit is withheld because the referenced measured token report is absent, and the supplied evidence contains no concrete resource benchmarks, migration-cost analysis, or operating data at scale.
Many claims are tied to concrete commands, configuration keys, named tests, CI checks, adapter boundaries, and dedicated documentation. README, pyproject, CI, and frontend tests corroborate the package version, broad architecture, build process, and selected interaction behavior. The text also carefully distinguishes diagnostics from repair, liveness from integrity, current Community behavior from possible SaaS injection, and defaults from exceptions. Deductions apply because most referenced documents and the companion Core repository are not included, leaving major figures such as 340 tools, 156 adapters, release validation, and measured token costs only partly corroborated; the governance-gate and supported-version contradictions further limit traceability.
- The API key appears in an MCP URL and copied CLI command, so browser infrastructure, proxy logs, shell history, or configuration files may retain it; treat it as a credential and rotate it promptly.
- The default CORS_ORIGINS=* is neither authentication nor a firewall. Non-loopback deployments should restrict origins and add separate network access controls.
- MCP tracing writes local files, but the supplied material does not define redaction, file permissions, retention, or cleanup. Review possible source-code and business-data exposure before enabling it.
- SECURITY.md supports only 0.1.x while the current package is 0.3.3; confirm the actual patch commitment for 0.3.x before deployment.
- The Elastic-2.0 addendum restricts multi-tenant hosting, competing services, some large internal platforms, and branding changes; it should not be treated as a permissive open-source license.
- The reset command deletes SQLite data, uploads, and graph directories; create and test a recoverable backup before use.
FAQ
Does Okto Pulse require a paid model or API?
Will it start without network access?
all-MiniLM-L6-v2 download cannot complete, Pulse starts in deterministic stub mode, but Knowledge Graph semantic search is disabled. Initial package and model acquisition still require a network source.