Prism Coder
Give your AI agent memory that lasts. Persistent sessions, knowledge graphs, and offline tool-routing — fully local and free.
Prism Coder is an MCP server that gives Claude, Cursor, and other AI tools long-term memory that survives across sessions. It ships with the open-weight prism-coder model fleet (2B–27B) for fast, offline tool-routing — no cloud required.
No account needed. No API keys. Runs on your machine.
A paid subscription adds cloud sync, higher model tiers, and team features through the Synalux portal.
What Prism gives you
-
Session memory that survives restarts — resume projects with handoff notes, recent work, open TODOs, and configurable quick, standard, or deep context.
-
Local-first inference — bounded work is routed through local Ollama models first, with automatic 2B/4B/9B/27B selection based on installed models, available RAM, context fit, and subscription entitlements.
-
Route-output enforcement — route mode returns only well-formed calls to tools the host actually advertised. Standard and higher plans can add authenticated deterministic correction;
route_guard: "local"keeps the prompt and draft entirely on-device. -
One setup for every agent —
prism connectconfigures Claude Code, Claude Desktop, Cursor, Gemini CLI, and Codex while preserving unrelated settings. -
Subscription-aware skills — entitled skills are synchronized before the host launches, with safe upgrades, downgrades, conflict preservation, and offline last-good recovery.
-
Hook-free startup — MCP metadata and native instructions request Prism's startup context without requiring lifecycle hooks or a Prism-owned launcher.
-
Safe escalation and observability — inference outcomes are explicit, reserved content remains fail-closed, and local/cloud usage is recorded for review.
Get started
npm install -g prism-mcp-server
prism connect
Use prism connect --dry-run to preview changes, prism connect --all to
configure every detected host, or prism connect --refresh to reconcile
Prism-managed entries after an upgrade. Restart the host after connecting.
Prism works locally without an account, API key, or cloud subscription. Add a Synalux subscription when you want cloud memory, paid-tier skills, or team features.
Install as a plugin
Prism also ships as a plugin, which registers the MCP server and the startup skill for you.
Claude Code — from the community marketplace:
/plugin marketplace add anthropics/claude-plugins-community
/plugin install synalux-prism@claude-community
Codex — this repository is itself a plugin marketplace:
codex plugin marketplace add dcostenco/prism-coder
codex plugin add synalux-prism@prism
The plugin registers prism-mcp via npx -y prism-mcp-server. If you already
configured Prism by hand — prism connect writes an mcp_servers.prism-mcp
entry — you have that server twice under one key. Install the plugin or
run prism connect, not both.
What prism connect changes about host subagents
connect steers bounded work to prism_infer on your machine rather than to
host-spawned agents. What it writes differs per host, and it does not disable
subagents everywhere — Claude Code keeps them and is pointed at an economy
model instead. Prism's local workers stay available over MCP in every case.
Host Setting written Effect
Claude Code
env.CLAUDE_CODE_SUBAGENT_MODEL = "sonnet" in ~/.claude/settings.json
Subagents stay enabled, pinned to an economy model. Fan-out is discouraged by policy text, not by config
Gemini CLI
experimental.enableAgents = false in ~/.gemini/settings.json
Subagents off. Gemini exposes one boolean, so that is all there is to set
Codex
features.multi_agent = false in $CODEX_HOME/config.toml (default ~/.codex), plus a bounded fallback: 2 threads, depth 1, cheap subagent model, 900s cap
Subagents off, with a bounded profile underneath so a deliberate re-enable lands somewhere sane
Two things worth knowing:
-
experimentalis Gemini's namespace, not ours. Prism is not enabling anything experimental — it writesfalseto a flag Gemini already defines at that path. Writing anywhere else would have no effect. -
That namespace is by definition temporary. If Gemini promotes
enableAgentsout ofexperimental, Prism keeps writing the old path, Gemini reads the new one, and host subagents quietly turn back on. Nothing errors and the settings file still looks correct. If you see host subagents running whileenableAgentsreadsfalse, check whether the key has moved before assumingconnectfailed to write it.
Both writes are idempotent in the sense that a host already configured this way
is left untouched — but they are re-applied on every prism connect run,
not only on --refresh. If you deliberately re-enable host subagents, the next
connect will turn them off again. Keep them on by not re-running connect,
or by re-enabling after each run.
What's New in v20.12.1
-
prism connect --refreshnow converges every registration it owns, not just the top-level one — directory-scoped entries could otherwise keep launching an old build indefinitely. -
prism updatechecks the installed package, not the CLI that happens to be running, so it can no longer report "current" while the install is stale. -
The opt-in scheduled updater can actually start — the LaunchAgent now carries a PATH that includes node and npm.
What's New in v20.12.0
-
Prism now tells you when it's out of date. Session startup shows a one-line update notice when a newer release exists — cache-backed, at most one registry check per day, silent offline.
PRISM_NO_UPDATE_CHECK=1opts out. -
Hands-free updates, if you want them.
prism autoupdate enablesets up a dailyprism update --if-idle: it updates only the global npm package, defers while any Prism server is running, and never touches host configuration — that stays behind a visibleprism connect.
What's New in v20.11.1
-
Saving memory never gets refused. The save path used to reject
session_save_ledger/save_handoffcalls when its path-to-project heuristic disagreed with the project you declared — and the registry the heuristic trusted could contain junk from earlier auto-registration, so legitimate sessions ended unsaved. Your declaration now always wins; the disagreement is returned as an advisory warning, and auto-registration only accepts real repository roots. -
Screenshots are evidence again.
prism browsercaptures on macOS were silently upscaled to the size cap, so a screenshot no longer showed what actually rendered. Only genuinely oversized captures are resized now, and the cap no longer clips a standard 1920-wide viewport.
What's New in v20.10.0 – v20.11.0
-
Skill routing now works mid-session. New prompts are matched on-device as the conversation moves — not just on turn one — and injected within each host's real context limits (Claude Code caps hook output at 10k chars; Codex truncates by default), with pointer-first delivery when a payload can't fit inline.
-
prism connectis a converge command. It self-updates first, re-execs, then reconciles MCP registration, skills, and hooks — no more "fresh config, stale code" machines. -
Scoped skills route on prompts too, and startup output survives hosts that discard structured tool content.
What's New in v20.9.0 – v20.9.3
Your skills follow your account. skill_save stores a skill at the
scope you choose: this machine only (local, works offline and signed out),
your account (user — every machine you sign into receives it), or a
workspace (team — shared with members, admin-managed, optionally targeted
to specific people).
Trim the catalog you don't use. skill_manage can release platform
skills you never touch — freeing host skill-catalog budget — and restore
them any time, losslessly. Deleting a scoped skill archives its final
content locally first, so nothing is ever silently unrecoverable.
Delivery that queues instead of failing. Concurrent sessions no longer starve skill sync on the local config store (WAL + busy-timeout) — a failure that previously reported only "partial" where nobody could see it.
Withheld rules still bind. When the context budget can't inline a skill's text, the manifest of withheld names now states that those skills still govern the work and names every way to load them before completion claims.
The budget the floor never spent. A long-standing accounting bug meant no unprotected skill ever inlined at any normal context level — the always-inlined protected floor was debiting the budget meant for everything else. Task-matched skills (like the completion-evidence checklist) now actually arrive.
What's New in v20.8.2
- Skill delivery now admits failure instead of hiding it. A filesystem permission edge case (a umas