{"slug": "firekeep", "title": "Firekeep", "summary": "Firekeep, a self-hosted shared memory system, connects multiple MCP clients including Claude Code, Codex, Kiro, and OpenCode, allowing agents to preserve and recall context across sessions. On the 2026-08-28 LongMemEval-S run, Firekeep achieved 97.7% Evidence Recall@10, with at least one labeled evidence session in the first ten results for 459 of 470 scored questions.", "body_md": "Connect Claude Code, Codex, Kiro, OpenCode, and other MCP clients through one shared, self-hosted Keep.\n\nEvery solved problem should make the next one easier. Firekeep preserves the experience behind the work — durable knowledge, working state, procedures, coordination, and inspectable evidence — and puts it back to work in the next session, tool, or machine.\n\nUse it for your own continuity on one workstation. Add teammates when you need them without starting the team’s context over.\n\n[Website](https://firekeep.ai/?src=github) · [Install](https://firekeep.ai/docs.html?src=github#server) · [Product tour](https://firekeep.ai/?src=github#outcomes) · [Firekeep Studio](https://firekeep.ai/?src=github#studio) · [Evidence](https://firekeep.ai/?src=github#proof) · [Privacy](https://firekeep.ai/privacy.html) · [Support](https://github.com/kapella-hub/FirekeepHQ/issues)\n\n``` php\nflowchart LR\n    A[\"Claude Code<br/>stores a proven fix\"] --> K[(\"your self-hosted<br/>Keep\")]\n    K --> B[\"Codex<br/>recalls the fix + evidence\"]\n    K --> C[\"Kiro<br/>reuses the procedure\"]\n    K --> D[\"OpenCode / MCP client<br/>continues informed\"]\n```\n\nAgents keep their native interfaces and provider-owned sessions. What carries forward is the Firekeep context they explicitly record and recall through the same local MCP gateway. That means one person can switch tools without losing the thread, and a team can earn context once and carry it forward.\n\n[See Claude Code and Codex share one Keep →](https://firekeep.ai/claude-code-codex-shared-memory.html?src=github)\n\nThe installer configures Claude Code, Codex, Kiro, and OpenCode together (plus\nClaude Desktop when its config directory exists), then asks where your Firekeep\nserver should live. The full setup flow is in the\n** install guide**.\n\n```\ncurl -fsSL 'https://firekeep.ai/latest/install?src=github' | sh    # macOS / Linux\nirm 'https://firekeep.ai/latest/install.ps1?src=github' | iex      # Windows PowerShell\n```\n\nThe current server targets `linux/amd64`\n\nand needs Docker Compose v2, two x86-64\nCPU cores, and Git; 16 GB RAM is recommended for the default stack. It binds to\n`127.0.0.1`\n\nby default. See the\n** requirements and sizing notes**\nbefore choosing a host.\n\n**Trying Firekeep for the first time? Share what worked and where you got stuck →**\n\n**Client Kit:** configures Claude Code, Codex, Kiro, and OpenCode together; Claude Desktop is added when its config directory exists. Other MCP clients can use the generic path.**Claude Code:** managed MCP, instructions, and lifecycle hooks. Its supported pre-tool hook can hard-block an edit, write, or shell action.**Codex:** managed MCP plus`AGENTS.md`\n\nguidance. Codex exposes no native hooks, so lifecycle automation and pre-edit enforcement are not implied.**Kiro CLI:** a named Firekeep agent with MCP, steering, and lifecycle hooks. On the validated Kiro CLI 2.12.1 surface, its pre-edit hook is advisory.**Firekeep Studio:** runs Codex, Claude Code, Kiro CLI, and Grok in one desktop workspace. The direct Grok adapter has no Keep memory, hooks, or briefing; Studio reports that boundary instead of inheriting another runtime’s status.\n\nSee the ** integration guide** and\n\n**for the maintained details.**\n\n[Studio runtime matrix](/kapella-hub/FirekeepHQ/blob/main/studio/README.md#runtime-support)On the accepted 2026-08-28 LongMemEval-S run, Firekeep achieved **97.7% Evidence\nRecall@10**: at least one labeled evidence session appeared in the first ten\nresults for **459 of 470 scored questions**. The measurement covers retrieval,\nnot generated-answer accuracy; it is one corrected deterministic run rather\nthan a multi-run confidence interval.\n\nPeople do not build professional judgment by rereading every email, document, ticket, or source file from the beginning. They remember what happened, why a decision worked, how a failure was diagnosed, and which procedure held up in practice. That experience changes how they approach the next problem.\n\nAgents should improve the same way. Firekeep connects the knowledge, working state, coordination, and evidence behind the work so the next agent can begin with the experience the last one earned.\n\n| Capability | What it means |\n|---|---|\nMemory |\nAgents remember what worked, what failed, and what matters across sessions. Semantic + graph retrieval, confidence scoring, contradiction handling, four memory types (reference / procedural / episodic / transient) with type-aware recall decay, recoverable archive-first aging, and token-conscious recall with optional LLM synthesis. Recall is re-ranked by recorded session outcomes (outcome-weighted memory) and by agent feedback on knowledge that was actually acted on (`memory_feedback` ). |\nKnowledge Autopilot |\nThe knowledge base maintains itself without deciding anything on its own. When two unconfirmed memories genuinely conflict, neither is silently dropped — both stay recallable, marked contested, until a human verdict (`/memory/contested/resolve` ). A session reaper closes out crashed/walked-away sessions so failures count in outcome scoring. Every review queue (draft skills, stale skills, procedure proposals, contested pairs, eval dead letters) lands in one inbox with a weekly digest, and `/memory/{id}/evidence` shows every signal behind a memory's rank in one read. |\nTeam Continuity |\nMemories carry verified workspace/member provenance plus an untrusted runtime `agent_id` label and project. Per-contributor activity reports and LLM-synthesized handoff briefs let one agent pick up where another left off. |\nSession Continuity |\nPlans, decisions, and progress recorded through the session tools survive context compression. Crashed sessions are auto-detected on next start and offered for resumption with a periodic workspace snapshot (git branch, recent commits, diff stats) embedded in the shadow. |\nEnvironment Awareness |\nConfigured Docker, git, and file collectors monitor operational state instead of relying only on prompts. Container restarts, new commits, and file changes flow into a replayable event stream. |\nAgent Coordination |\nShared channels, bulletin board, structured task queue, resource leases with monotonic fencing tokens, presence registry, and direct messages. Concurrent agents can assign work, track progress, and use leases to prevent overlapping edits; hook-enabled clients block an edit when another agent already holds the file lease. |\nPredict-then-Act Gateway |\nAgents declare intent before consequential actions (`action_before` → `allow |\nSkills |\nAgents author reusable \"what to do when X happens\" playbooks via the `skill_create` tool (client-side, with full session context); a docs→skills pipeline drafts more from wikis/runbooks under human review. Top matches are injected into the next session's briefing. (Server-side auto-synthesis exists behind `SKILL_SYNTHESIS_ENABLED` but is off by default — the CPU-only deploy can't run the generation LLM in workable time.) |\nEnforced Runbooks |\nA skill whose steps carry command matchers is a runbook a human can arm: `advise` (round-1 advisories), `require_ack` (a matched command is challenged and proceeds only after an audited acknowledgement — one-use permit bound to workspace, member, session, command hash, step, bundle version and execution), or `block` (fails closed, with a server receipt the client requires before honoring an allow). Evidence is scored by success — a step counts only when its command exits 0 — and every enforcement event lands in a deviation ledger (dashboard + inbox), storing command hashes, never command text. Modes are set by a human on an admin-only route; agents can propose runbooks, never arm them. Opt-in via `PROCEDURE_ENABLED` , currently being dogfooded on our own deploys — see\n|\nDecision Board |\nWhen a clarification needs more than a couple of questions, the agent opens a local browser board pre-populated with evidence retrieved from team memory — better questions, informed by what the team already learned. The local gateway fronts the Decision Board process and Cortex `/decision/synthesize` . |\nLiving Instructions |\nThe instruction layer measures itself: a per-instruction compliance table computed deterministically from replay (did sessions recall before answering, record as they went, declare consequential actions), with trend over time, per-runtime slices, and exposure receipts — sessions carry a content hash of the instruction text that actually reached them, and anything unverifiable reports as unknown rather than counted. Honest about its limits by construction: it measures behavior, not whether the behavior helped. Fleet-drafted rewrites under human verdict and A/B validation are roadmap. |\nTrust Ledger |\nA per-agent employment record built from the declarations agents already make through the gateway (`action_before` /`action_after` ): declared-action count, reconciliation rate, prediction-match calibration (Brier over stated confidence vs reconciled outcome), reversals, sessions, first/last seen. Visibility only — it reports, it never gates. Honest by construction: calibration is behavior not competence, only declared actions are seen, `agent_id` is a self-reported label so the record is per declared identity, and calibration reads not enough signal below a threshold rather than inventing a number. The enforcing half (a capability broker turning the record into earned autonomy) is roadmap. |\nAuto-Evals + Pattern Discovery |\nQuality metrics computed from replay traces on session completion. Pattern detection is enabled; automated promotion/validation and A/B experiment endpoints are implemented but disabled by default until a deployment has enough session volume to use them responsibly. |\nReplay & Explainability |\nEvery memory read/write, session lifecycle event, environment change, coordination action, and gateway decision is recorded as a structured trace. Inspect, narrow, and reconstruct context at any prior event. |\nEncrypted Secrets |\nFernet-backed vault for infrastructure credentials, API tokens, and connection strings. Distinct from memory — secrets never appear in recall. |\nBusiness Knowledge |\nIngest company documents (wiki pages, tickets, API docs) — manually, or via scheduled Confluence collectors. Chunks land in the vector store and surface naturally during memory recall alongside operational memories. |\nCode Intelligence |\nTree-sitter-based symbol search, caller graphs, architecture maps, and impact analysis that returns symbol slices instead of whole files — runs client-side through the local gateway (`firekeep-symdex` is installed with the kit). 38 MCP tools (8 analytics tools hidden by default behind `SYMDEX_ANALYTICS_ENABLED` ). |\n\nFirekeep is not another chatbot wrapper or prompt orchestration layer.\n\nIt is an **operating layer for connected AI agents** — infrastructure that sits behind your existing tools and makes them better.\n\n**Self-hosted by default.** The server, datastores, embeddings, and default generation model run on your infrastructure. Third-party egress occurs only when you opt into a connector or external Symdex AI provider.**Deep where the work happens.** Coding is the strongest shipped workflow, with Symdex for code intelligence. It is not the product boundary: Docdex brings selected document folders into the same Keep, Maildex brings a member's email (read-only IMAP, always member-private,`firekeep maildex add`\n\n), and the shared continuity, coordination, governance, and evidence layers are domain-independent.**Persistence + observability.** Most agent tools focus on making the agent smarter in the moment. Firekeep focuses on what happens*between*sessions and*after*things go wrong.**MCP-native.** Four remote services and two client-local backends expose[Model Context Protocol](https://modelcontextprotocol.io/)tools through one local`firekeep`\n\nstdio gateway. Shipped adapters configure Claude Code, Claude Desktop, Codex, Kiro, and OpenCode; other MCP clients can be configured manually.**Agent-agnostic.** Swap the agent client without rebuilding the underlying memory and coordination layer. Cursor has a documented manual MCP path; Aider does not currently have a shipped adapter.**A2A-discoverable.** Relay publishes an[Agent-to-Agent](https://github.com/google/A2A)agent card at`/.well-known/agent.json`\n\nfor capability discovery. This is discovery-only, not an A2A task-execution endpoint.\n\nOne command, two required questions: the **agent identity** every memory, session and\nreplay event is attributed to, and **where your Firekeep server is** — set one\nup on this machine with Docker, redeem a join code, point at one that is\nalready running, or decide later (`firekeep doctor`\n\nthen tells you how to\nfinish). Setting one up here runs `firekeep init`\n\nfor you; that installer asks\nnothing, and the machine enrols itself once the stack is up, so `firekeep doctor`\n\nis green with no dashboard, no tunnel, and no pasted key. It prints the\npaste-ready command for your second machine when it finishes.\n\nThe installer then offers one skippable prompt for another MCP client's rules file; the four shipped adapters are rendered either way.\n\nCurrent server images target `linux/amd64`\n\n: run them on an x86-64 Linux host,\nor through Docker Desktop with amd64 container support. The client bootstrap is exercised in CI on\nUbuntu, Debian, Alpine, Fedora, Rocky, Arch and openSUSE (x86_64 and aarch64);\nmacOS runs the same script but is not covered by CI.\n\n- Requirements and sizing —\n[firekeep.ai/docs.html#requirements](https://firekeep.ai/docs.html#requirements) - Server install —\n[firekeep.ai/docs.html#server](https://firekeep.ai/docs.html#server) - Connecting agents and teammates —\n[firekeep.ai/docs.html#connect](https://firekeep.ai/docs.html#connect) - Troubleshooting —\n[firekeep.ai/docs.html#troubleshooting](https://firekeep.ai/docs.html#troubleshooting)\n\n```\nbash install.sh              # build the server from source\nbash install.sh --pull       # the same installer against the published images\ncd client && ./install       # the kit from this checkout (.\\install.ps1 on Windows)\nfirekeep install             # re-render the runtime adapters only\n```\n\n`install.sh`\n\nprompts for nothing: the host address is detected and the Neo4j\npassword generated (`--ip`\n\n/ `--neo4j-password`\n\n, or `FIREKEEP_VPS_IP`\n\n/\n`FIREKEEP_NEO4J_PASSWORD`\n\n, override either). It returns as soon as the stack is\nup rather than blocking on the ~3.3 GB model pull — until that finishes, memory\nwrites return `status=\"partial\"`\n\n(stored and queued for backfill, not yet\nsearchable) and `firekeep doctor`\n\ncarries an `embeddings`\n\nWARN row saying so.\n`bash install.sh --wait-for-models`\n\nblocks instead.\n\nOperating the server afterwards — access and authentication, the dashboard,\nbackups, updates, exposing ports deliberately — is\n** docs/DEPLOYMENT.md**.\n\n```\nfirekeep uninstall            # remove the client kit from this machine\nfirekeep uninstall --server   # also tear down the server + ALL its data\n```\n\n`firekeep uninstall`\n\nremoves only what the kit installed — the Firekeep blocks\nin each runtime's config (your own settings stay intact), the launcher and its\nPATH entry, and `~/.firekeep`\n\n— and asks first (`--yes`\n\nskips the prompt). It\nnever touches a server you set up. `--server`\n\nadditionally runs `docker compose down -v`\n\non the stack this machine provisioned, deleting the Neo4j/Qdrant/Redis\nvolumes — every memory, session and secret, permanently — behind a separate\ndata-loss confirmation that a plain uninstall or `--yes`\n\ncan never trigger. Back\nup first ([docs/DEPLOYMENT.md](/kapella-hub/FirekeepHQ/blob/main/docs/DEPLOYMENT.md#removing-the-server)) if you\nmight want the data back.\n\n[Download for Windows](https://firekeep.ai/latest/studio/windows?src=github) · [Download universal macOS](https://firekeep.ai/latest/studio/macos?src=github) · [Explore Studio →](https://firekeep.ai/?src=github#studio)\n\n[ studio/](/kapella-hub/FirekeepHQ/blob/main/studio) is a separate desktop client for people who want Firekeep to be the\nonly agent application they open. It gives Codex, Claude Code, Kiro CLI, and Grok one\nruntime-neutral conversation surface: any supported runtime can be the explicit primary,\nother runtimes can review it in fresh read-only contexts, and\n\n`/compare`\n\n, `/consensus`\n\n,\nan explicit shared workspace, Windows voice input and system voice output, cache-aware token guards, named and color-coded local sessions,\nlive provider model/reasoning discovery, and typed Client Kit controls are built in. The\nselected runtime is visually explicit, the full inspector can be hidden, and Studio links\nto the dashboard from the existing Client Kit connection without exposing its credentials.\nFenced Mermaid responses render as native zoomable diagrams, and the existing Firekeep\nDecision Board opens as a native question/evidence/action panel inside Studio. Its local\nauthenticated push preserves the original long poll, avoiding an extra agent turn merely to\ndiscover that the board is ready.\nThe primary runtime picker shows live readiness and transport context, response scrolling\nrespects readers who move away from the tail, and copy/paste uses bounded text-only native\nclipboard operations. Completed answers lead each run while detailed working events fold into\na **Work log**. A runtime-neutral\n\n**Agents** view tiles Codex, Claude, Kiro, Grok, or any future chat-capable adapter into selectable panes with independent native continuations; the shared composer targets the selected pane, and active runs remain serialized for workspace safety. Mission Mode adds an outcome-bounded harness: one primary writer, deterministic local checks, bounded repair, independent review evidence, explicit human acceptance, and a task result stored separately from every agent's prose.\n\nStudio consumes provider-supported structured boundaries rather than scraping TUIs, keeps\nprovider authentication provider-owned (except OS-encrypted API keys), and continues to use\nthe existing Python Client Kit wherever a runtime's native configuration provides Keep memory,\nhooks, policy, and connectivity. Runtime cards report that evidence explicitly; the direct xAI\nGrok adapter is clearly marked as having no Keep memory rather than inheriting another runtime's\nclaim. The preview\nbuild and installer commands, security boundaries, runtime matrix, and full `/`\n\ncommand\ninventory are in the [Studio README](/kapella-hub/FirekeepHQ/blob/main/studio/README.md).\n\nStudio 0.4 ships an x64 Windows installer and a universal macOS installer from an isolated,\nsigned release channel. Packaged builds check for Studio updates shortly after launch; Windows\ndownloads and installs a verified update on restart, while macOS uses native automatic updates\nonly when the release is Apple-signed and notarized. The current release page, checksums, and\nboth installers are published under\n[Firekeep Studio releases](https://github.com/kapella-hub/firekeep-dist/releases?q=studio-v).\n\nHere's what happens when an agent uses Firekeep:\n\n**1. Session starts.** On runtimes with lifecycle hooks, the client fetches Cortex's aggregated `GET /briefing`\n\nfirst, including relevant memories, tasks, environment state, and skills. The agent then calls `ctx_start_session(\"fix auth middleware bug\")`\n\n; Bridge creates the durable session and the shim ties it to that briefing.\n\n**2. Code exploration.** Instead of reading every file, the agent calls `search_symbols(\"auth middleware\")`\n\nand `get_callers(\"require_scope\")`\n\non Symdex. It gets a targeted list of files and callers in milliseconds.\n\n**3. Environment check.** Sentinel has been watching Docker. It detected that the `cortex-api`\n\ncontainer restarted 3 times in the last hour and pushed an alert to Relay's `#alerts`\n\nchannel. The agent sees this in its context.\n\n**4. Work happens.** The agent edits files, runs tests, and records important progress with `ctx_update`\n\n. Bridge persists what was explicitly recorded. When the context window compresses, the agent calls `ctx_get_shadow`\n\nand gets that durable working state back — plans, decisions, progress, and file knowledge.\n\n**5. Session completes.** The agent calls `ctx_complete_session`\n\n, optionally passing a structured self-grade — `task_result`\n\n(`\"success\"`\n\n/ `\"partial\"`\n\n/ `\"failure\"`\n\n, the TASK's outcome, not the RPC's) plus up to 10 short `task_evidence`\n\nclaims backing it. The grade is accepted only from the session's verified owner and stored as that session's one authoritative, never-overwritten result. Bridge atomically marks the session complete and queues background distillation into episodic memory; failures retry and eventually move to a visible dead-letter queue. Auto-evals compute quality metrics from the replay trace — a session with no recognized grade reads as `unknown`\n\nrather than a guessed success, so outcome-driven scoring (Outcome-Weighted Memory, quality trends) never counts silence as a win. Next time someone works on auth middleware, the memories are there once distillation succeeds.\n\n**6. Something went wrong?** Open the Replay tab in the dashboard. Load the session. See every action, every memory read, every decision point. Click on a failure event and run narrowing — it walks back through the causal chain to help identify the root cause.\n\n```\nLocal Machine                               VPS\n┌──────────────────────────┐              ┌────────────────────────────────────┐\n│ Claude / Codex / Kiro /  │              │ FirekeepCortex   — Memory & RAG    │\n│ OpenCode / MCP client    │              │ FirekeepBridge   — Sessions        │\n│           │              │              │ FirekeepSentinel — Monitoring      │\n│  one `firekeep` gateway  │◄──── MCP ───►│ FirekeepRelay    — Coordination    │\n│    ├─ symdex (local)     │              │ Dashboard        — Web UI          │\n│    └─ decision (local)   │── Browser ──►│ Neo4j · Qdrant · Redis · Ollama    │\n└──────────────────────────┘              └────────────────────────────────────┘\n```\n\nSymdex and the Decision Board run **client-side** as stdio-local MCP servers (installed with the kit) — Symdex must be local to the working tree it indexes, so it is no longer a VPS container.\n\nThe two arrows crossing that boundary are **not publicly reachable by default**.\nOut of the box the VPS side listens on loopback and requires an API key, so the\nlocal-machine half reaches it over an SSH tunnel, a private network, or an HTTPS\nfront end you deliberately configure. See\n[docs/DEPLOYMENT.md → Access and authentication](/kapella-hub/FirekeepHQ/blob/main/docs/DEPLOYMENT.md#access-and-authentication).\n\n| Service | What it does |\n|---|---|\nFirekeepCortex |\nLong-term memory. Semantic + graph RAG, archive/restore lifecycle, sleep-cycle consolidation, four memory types with type-aware decay, versioned memories with confidence scoring, automatic contradiction supersession, agent-authored skills (`skill_create` ) + a docs→skills pipeline, and the Agent Gateway (predict-then-act surface). |\nFirekeepBridge |\nSession persistence. Preserves working context (plans, decisions, progress, file knowledge) through context compressions. Auto-distills to Cortex on completion. Crashed-session detection with workspace-snapshot resumption. A session reaper abandons sessions idle past 72h so walked-away sessions register as non-successes in outcome scoring. Emits session lifecycle events to the replay stream. |\nFirekeepSentinel |\nEnvironment observer. Docker health, git commits, file changes. Broadcasts alerts to Relay on errors. Container restarts, new commits, and file changes flow into a replayable event stream. |\nFirekeepRelay |\nAgent coordination. Real-time pub/sub channels, persistent bulletin board, structured task queue, resource leases with monotonic fencing tokens, presence registry, direct messages, and an A2A agent card endpoint for external discovery. |\nDashboard |\nWeb UI covering coordination, memory, diagnostics, devices, members, policy, vault, and operations. |\nFirekeep Studio |\nOptional local desktop console and Mission harness for primary agents, deterministic verification, independent reviewers, Windows dictation, system voice replies, cross-runtime comparison, and Client Kit control. It is not a VPS service. |\n\nCode intelligence (**FirekeepSymdex** — 38 MCP tools, 8 analytics hidden behind a flag) and the **Decision Board** (`firekeep-decision`\n\n) run **client-side** as stdio-local MCP servers installed with the kit, not as VPS containers.\n\nShared modules (no extra containers): **Replay Engine** (structured trace log across all services), **Auth** (API key scopes), **Vault** (Fernet-encrypted secret storage), **Corpus** (business document ingestion → vector chunks; scheduled Confluence collectors), **Auto-Evals** (10 Tier-1 quality metrics + trend tracking + regression detection), **Pattern Engine** (strategy detection; promotion validation and A/B experiments are feature-flagged off by default), **Policy Engine** (compound pre-edit safety checks — lease, file risk, path deny, session health, recent failure), **Agent Gateway** (predict-then-act surface with fast-path cache for repeated low-risk actions), **Skills** (agent-authored via `skill_create`\n\n+ docs→skills drafts under human review; server-side synthesis off by default), **Memory Improvements** (archive-first composite aging with preview/audit/restore, token budgets, LLM synthesis pass, embed input capped + shrink-to-fit).\n\nFor the full design specification, see\n\n.[docs/DESIGN.md]\n\nAccess at `http://localhost:8040`\n\non the host, or through a tunnel from\nelsewhere ([docs/DEPLOYMENT.md → Reaching the dashboard](/kapella-hub/FirekeepHQ/blob/main/docs/DEPLOYMENT.md#reaching-the-dashboard)).\nIt has its own basic-auth login (user\n`admin`\n\n; the password is written once to `dashboard/.htpasswd.cred`\n\n). Behind\nthat, nginx injects the dashboard's API key on every backend call, so the SPA\nworks against the auth-gated stack without you pasting a key into the browser.\n\n| Tab | What it shows |\n|---|---|\nOverview |\nService health, quick stats, recent events and memories |\nSessions |\nActive/paused/completed/abandoned sessions, shadow context inspector |\nEvents |\nSentinel event feed with source and severity filters |\nRelay |\nTask queue, channels, bulletin board, direct messages, active claims/leases |\nScope |\nFirekeepScope clarification sessions — active screens, answer prompts |\nMemory |\nRecall search, active/archive browsers, one-click restore, maintenance preview/audit, store form, contributors, namespace/tag stats |\nSkills |\nAgent-authored + doc-derived skill cards — review, activate, edit, retire — plus the Living Procedures runbook cards: enforcement-mode badge and admin mode control, per-step observation stats, deviation view, and a NOT ACTIVELY ENFORCED warning when an armed runbook has no session holding the current bundle |\nKnowledge |\nDocs→skills ingestion (paste / URL) + the draft-skill approval queue |\nAutopilot |\nThe review inbox (draft/stale/re-review skills, procedure proposals, runbook deviations, contested memory pairs, eval dead letters), the \"what changed this week\" digest, the Living Instructions compliance table (per-instruction rates, trend, per-runtime slices, exposure states), and the Trust Ledger card (per-agent declared/reconciled/calibration/reversals) — read-only; it proposes and reports, never mutates |\nPatterns |\nDiscovered strategy cards; promotion validation and experiment controls when their feature flags are enabled |\nOps |\nWorkers, queue depths, active agents, vector store info, Discipline counter (untagged memory calls) |\nPolicy |\nRuntime policy rules for pre-edit safety checks, toggle per rule |\nVault |\nEncrypted secret management (Fernet-backed, Redis DB 7) |\nReplay |\nSession trace timelines, event inspector, root cause narrowing |\nEvals |\nAggregate quality metrics, per-session scorecards, quality trends |\nDevices |\nDevice credentials and single-use enrollment commands |\nMembers |\nPeople and single-use member invites |\n\nThe dashboard is a zero-dependency static SPA. No build step, no npm, no framework.\n\n| Document | Contents |\n|---|---|\n|\nRunning a server: access and authentication, updating, backups, troubleshooting, local development (installing is\n|\n\n[docs/CONFIGURATION.md](/kapella-hub/FirekeepHQ/blob/main/docs/CONFIGURATION.md)[docs/MCP-TOOLS.md](/kapella-hub/FirekeepHQ/blob/main/docs/MCP-TOOLS.md)[docs/DESIGN.md](/kapella-hub/FirekeepHQ/blob/main/docs/DESIGN.md)[docs/COMPARISON.md](/kapella-hub/FirekeepHQ/blob/main/docs/COMPARISON.md)[docs/SETUP-CODEX.md](/kapella-hub/FirekeepHQ/blob/main/docs/SETUP-CODEX.md)[docs/SETUP-CLAUDE-CODE.md](/kapella-hub/FirekeepHQ/blob/main/docs/SETUP-CLAUDE-CODE.md)[docs/MULTI-AGENT.md](/kapella-hub/FirekeepHQ/blob/main/docs/MULTI-AGENT.md)[studio/README.md](/kapella-hub/FirekeepHQ/blob/main/studio/README.md)Python 3.11 server services (client supports Python 3.10+) / FastAPI / FastMCP / Neo4j / Qdrant / Redis / Ollama / Docker Compose / tree-sitter / TypeScript / Electron / React\n\nServer-side embeddings and generation default to local Ollama, so the default server path has no model API bill. Symdex can optionally use Anthropic, Gemini, or an OpenAI-compatible endpoint for symbol summaries and scaffolding; enabling one of those providers may send code snippets off-machine and incur provider costs. Background auto-indexing explicitly disables AI summaries.\n\n- Full memory lifecycle (learn, recall, decay, contradiction detection, versioning)\n- Four memory types (reference / procedural / episodic / transient) with type-aware recall decay; direct learns default to episodic while raw event consolidation classifies extracted knowledge\n- Token-conscious recall with optional LLM synthesis\n- Archive-first composite aging (age × access × confidence) with dashboard preview, audit and restore; confirmed memories, skills and corpus chunks are never age-archived, and automatic hard purge is off by default\n- Team continuity: verified workspace/member provenance plus runtime\n`agent_id`\n\n+`project`\n\n, contributor reports, LLM-synthesized handoff briefs - Session persistence through context compressions, with crash detection and workspace-snapshot resumption\n- Bridge replay emission on session lifecycle (started / updated / completed / abandoned)\n- Docker + git + file monitoring with Relay alerting; container/commit/file activity flows to the replay stream\n- Agent coordination: channels, bulletin board, fencing-token leases, structured task queue, presence registry, direct messages\n- Pre-flight briefing assembles intelligence from all services at session start; surfaces discipline warnings when memory calls arrive without identity headers\n- Session debrief: guided completion with task updates and lease cleanup\n- Multi-agent support (task assignment, inbox polling, file lease enforcement)\n- Skills: agent-authored via\n`skill_create`\n\n(client-side) + a docs→skills pipeline (paste / URL / scheduled Confluence collectors) drafting skills under human review; top matches injected into the next briefing (server-side auto-synthesis exists behind`SKILL_SYNTHESIS_ENABLED`\n\n, off by default) - Night Shift:\n`firekeep night-shift`\n\ndrains the session-distillation queue the session-end hook fills, running on your own machine against a local model — LM Studio or Ollama, auto-detected, no configuration — and writing memories plus draft skills attributed to the*original*session rather than the worker. Keeps generation off the server entirely; cloud-hosted models are refused by default so session content cannot leave the machine - Decision Board: agent-spawned local clarification board pre-populated with retrieved team-memory evidence (\n`firekeep-decision`\n\nstdio server + Cortex`/decision/synthesize`\n\n) - Personal / bypass mode: in-session\n`/personal`\n\n(or`firekeep personal`\n\n/`FIREKEEP_BYPASS=1`\n\n) makes Firekeep fully dormant for private work — hooks, sidecar, decision board, and shim all honor one`is_bypassed()`\n\ngate; auto-clears at session end - Pattern Engine: strategy detection, category classification (procedural / risk / behavioral), and quarantine controls; automated promotion/validation is implemented behind\n`PATTERN_VALIDATION_ENABLED=false`\n\nby default - Experiment framework: named datasets, chi-square significance tests, effect-size confidence intervals, and controlled strategy-tip experiments behind\n`PATTERN_EXPERIMENTS_ENABLED=false`\n\nby default - Optional feedback loop for measuring whether briefing tips improve outcomes when pattern validation is enabled\n- Runtime policy engine: compound pre-edit checks (lease, file risk, path deny, session health, recent failure)\n- Agent Gateway (predict-then-act): MCP\n`action_before`\n\n/`action_after`\n\n, gateway returns`allow | rethink | block`\n\n, fast-path cache for repeated low-risk actions - Encrypted secrets vault (Fernet) with MCP tools and REST API\n- Replay traces with root-cause narrowing and per-event context reconstruction\n- Auto-evals: 10 Tier-1 quality metrics computed on session completion, trend tracking, regression detection\n- Knowledge Autopilot round 1 (visibility, never autonomous mutation): feedback-weighted recall + the\n`memory_feedback`\n\ntool, a Bridge session reaper so crashed sessions count as failures, contested-not-superseded handling for unconfirmed memory conflicts with human verdicts, the Autopilot review inbox + weekly digest, and a per-memory evidence ledger (`/memory/{id}/evidence`\n\n) — see[docs/guides/knowledge-autopilot.md](/kapella-hub/FirekeepHQ/blob/main/docs/guides/knowledge-autopilot.md) - Living Instructions rounds 1 + 2 (measurement): the per-instruction compliance table on the Autopilot tab (predicates frozen to a pre-registered baseline), trend over time, and the round-2 measurement contract — instruction-content hashes stamped into the rendered block, five attribution headers, per-runtime slices, and exposed/not-exposed/unknown states with everything unverifiable reported as unknown. Rewrites under human verdict and briefing-delivered A/B variants are roadmap — see the design spec in\n[docs/ROADMAP.md](/kapella-hub/FirekeepHQ/blob/main/docs/ROADMAP.md) - Dreaming: automated memory consolidation + person profiles (\n`DREAM_ENABLED`\n\n, off by default) - Living Procedures rounds 1 + 2: skills observed as procedures with frequency/efficacy proposals under human review, and — round 2 — Enforced Runbooks: command-step matchers, human-armed\n`advise`\n\n/`require_ack`\n\n/`block`\n\nenforcement with success-gated evidence, a challenge→ack→one-use-permit protocol, fail-closed block mode, and a per-workspace deviation ledger surfaced on the dashboard and in the Autopilot inbox (`PROCEDURE_ENABLED`\n\n, off by default; dogfooding before any announcement) — see[docs/guides/living-procedures.md](/kapella-hub/FirekeepHQ/blob/main/docs/guides/living-procedures.md) - Trust Ledger round 1: a per-agent employment record aggregated on demand from replay gateway events (\n`GET /autopilot/trust`\n\n+ a dashboard card) — declared/reconciled counts, prediction-match calibration, reversals, sessions. Visibility only, deployment-global, frozen formulas pre-registered before the first published number. The enforcing capability broker (earned autonomy) is a later round - Corpus tenancy hardening: member-private document sources with a shared visibility filter at every egress, source-scoped point identity (identical text across members no longer collapses to one deletable point), principal-aware source authorization, and a committed-generation gate — general infrastructure beneath the forthcoming client dexes\n- One degrading local MCP gateway registered by every adapter, aggregating four remote services plus the client-local Decision Board and whichever dexes are registered\n- The dex registry: dexes are the domain indexes the Keep understands, listed and switched with\n`firekeep dex list|add|remove`\n\nagainst`~/.firekeep/dexes.json`\n\n. All three wheels ship bundled and checksum-verified with every release —**registration gates activity, not installation**. Symdex and docdex are registered by default (since client 1.2.0 an absent registry is seeded with both);`firekeep dex remove`\n\nis the off-switch, and removals stick across updates — see[docs/guides/dexes.md](/kapella-hub/FirekeepHQ/blob/main/docs/guides/dexes.md) - Code intelligence: client-side\n`firekeep-symdex`\n\nbehind the gateway (38 tools, 8 analytics hidden behind a flag), mounted when registered as a dex - Documents: client-side\n`firekeep-docdex`\n\n— folders a human registers (`firekeep docdex add ~/Notes`\n\n) extracted to text and ingested into the corpus, surfacing through ordinary`memory_recall`\n\n. Private to the member by default even on a shared Keep,`--shared`\n\nfor the workspace; md/txt/pdf/docx, no OCR; deletion of a local file removes its corpus replica on the next sync - Email: client-side\n`firekeep-maildex`\n\n— IMAP mailboxes a member registers (`firekeep maildex add`\n\n), read-only (every open is EXAMINE, every fetch PEEK; no send capability in the wheel), always member-private - Docs→skills knowledge pipeline (\n`knowledge_ingest`\n\n, URL ingest) + opt-in scheduled Confluence collectors (SP3) - Web dashboard with Devices and Members management alongside memory, coordination, replay, policy, and operations\n- A2A agent card endpoint (\n`/.well-known/agent.json`\n\n) for external discovery - Business knowledge ingestion: chunk documents into vector store, surface during memory recall\n- Webhook notifications (Slack, Discord, generic HTTP)\n- Authentication: per-key API scopes (memory:read/write, session:read/write, replay:read, eval:read, admin, …),\n**on by default**, with keys bootstrapped by the installer\n\n**Linked instances**— multiple Firekeep servers sharing knowledge across an organisation, so what one team learns is recallable by another** Domain profiles**— separate experiences (coding and documents today; research ahead) as profiles of the same client kit over one shared brain: never separate products, never separate memory stores\n\nThe decision record behind both — profiles-not-clients, the linkage-layer\nprerequisite, outcome-signal gating, sequencing — is\n[docs/ROADMAP.md](/kapella-hub/FirekeepHQ/blob/main/docs/ROADMAP.md).\n\n- Grafana metrics export\n- Jira connector ingestion (wiki/Confluence auto-sync already shipped, opt-in)\n- Skill versioning and rollback\n\nFirekeep is in active development and used daily. The core implementations — memory, sessions, environment monitoring, coordination, replay, the client kit, and Symdex — are covered by more than 4,000 passing automated tests in the current repository. The architecture is designed for a single-host deployment.\n\nThis public, source-available repository is in early access.\n\nFirekeep is source-available under BUSL-1.1, and self-hosted production use is\nfree for individuals and for teams — a workspace of any size, on infrastructure\nyou control, free for teams while Firekeep is in early access. The commercial\ntier is Enterprise governance and support (write to [sales@firekeep.ai](mailto:sales@firekeep.ai)).\nEach version converts to Apache-2.0 four years after its first public release.\nSee [LICENSE](/kapella-hub/FirekeepHQ/blob/main/LICENSE) for the full grant and [docs/LICENSING.md](/kapella-hub/FirekeepHQ/blob/main/docs/LICENSING.md)\nfor status. Symdex\nremains under this license until its standalone Core is extracted and released\nseparately under Apache-2.0.", "url": "https://wpnews.pro/news/firekeep", "canonical_source": "https://github.com/kapella-hub/FirekeepHQ", "published_at": "2026-08-28 17:35:14+00:00", "updated_at": "2026-08-28 17:48:29.997112+00:00", "lang": "en", "topics": ["ai-tools", "ai-infrastructure", "developer-tools"], "entities": ["Firekeep", "Claude Code", "Codex", "Kiro", "OpenCode", "Claude Desktop", "Grok", "LongMemEval-S"], "alternates": {"html": "https://wpnews.pro/news/firekeep", "markdown": "https://wpnews.pro/news/firekeep.md", "text": "https://wpnews.pro/news/firekeep.txt", "jsonld": "https://wpnews.pro/news/firekeep.jsonld"}}