/ sovereign agent harness

Your knowledge travels.
Its evidence comes with it.

AKF — Agentic Knowledge Format makes curated knowledge portable across models, providers and machines: readable pages, provenance, selected supporting evidence, revisions and authenticated bundles. PRISM delivers bounded, cited knowledge to your agent and applies deterministic repository checks. You keep the knowledge and the reasons behind it.

Eight small components, one Bun runtime — pick what solves your problem. The harness alone gives you steering files; prism-mem delivers to configured sessions your signed, portable knowledge (AKF); prism-chat alone is a lean line to your models; prism-graf alone disciplines lane-based multi-agent work.

prism_dir=$(mktemp -d) && curl -fsSL https://git.sovereign-society.org/prism/prism-harness/raw/branch/main/install.sh -o "$prism_dir/install.sh"

Review install.sh before execution (less "$prism_dir/install.sh"), then run it from your project, in the same shell: bash "$prism_dir/install.sh". A new shell no longer has $prism_dir: keep the path. Works with the agent you already run. Free, sovereign, LSL-1.0. Pinned installer: planned, not available yet

The portable-knowledge revolution: AKF.

A decision can outlive its chat session. Keep the conclusion, source revision, selected evidence and publication history together in a signed, readable bundle. A new agent can inspect where the knowledge came from.

  1. CurateConclusion + evidence
  2. PublishValidate + authorize + sign
  3. TransferRecipient verifies its own trust
  4. RetrieveBounded pages + exact citations

JARVIS/Mnemos owns authentication and governed publication. PRISM delivers the packet to your selected agent. A signed snapshot authenticates bytes; factual truth and freshness still need checking. Copying it grants no execution or publication rights.

See the worked transfer and inspect the evidence · Configure the Knowledge adapter

Models propose. Rules check. Evidence stays.

The implemented doctrine gate makes no model call. PRISM evaluates captured guidance; JARVIS admits execution under policy and records the result.

  1. CaptureFresh guidance
  2. CompareSelected baseline
  3. AssertComplete; no added errors
  4. HaltReceipts + audit

Repeatable evaluation uses the same captured inputs and evaluation identity. Fresh runs can see changed files; replay preserves a historical result. Incomplete evidence cannot qualify as a pass. Model reasoning and live external effects retain their own uncertainty.

Understand determinism · Run the doctrine example

Defense shipped in v1.0.0-rc.3: A repo delivered as a zip, USB stick, cloud-sync folder, or shared drive can carry core.fsmonitor = <attacker command> in .git/config. ANY subsequent git call — git status, git rev-parse, git diff, worktree ops — fires the attacker's command as the operator, BEFORE any sandbox or approval gate. Every PRISM CLI now auto-scrubs the LOCAL .git/config before touching it. A standalone prism-harness scrub subcommand is exposed for ad-hoc use. Full writeup →
77→93 benchmark points the harness alone moves — same model, different harness (independent testing)
up to 70% context cost cut by stacked compression: RTK → vision WebP@87 → Caveman
8 / 1 eight composable components on one Bun runtime — bundles measured in KB
CVE-2026-72718
-19592
-55607
-71963
Sept 2026 GitSpawn-class attacks — neutralized in every PRISM CLI

What do you actually need?

Every PRISM component is independent. Start from your goal, install the minimal set that solves it, and skip the rest. You can always add more later — nothing requires the full suite.

You want…You needYou can skip
Steering files, a real git workflow, team development skills prism-harness Everything else — the doctrine alone disciplines your agent.
Route across providers and models, rotate plans, keep keys safe prism-route loop, sober, proxy, chat, graf — unless you want their layers too.
Cut token bills and audit what eats your context window prism-proxy The rest — proxy works on its own as a loopback compressor.
Portable knowledge: your signed project brain through trusted startup bindings prism-mem The rest — mem rides @prism/harness and needs only a Mnemos owner. How it works →
Overnight memory; an agent that resumes tomorrow prism-loop The rest — loop is self-contained durable memory.
Enforce your standards on every MR review prism-sober The rest — sober is the review steering layer alone.
Disciplined multi-agent lanes with a sovereign VCS prism-graf The rest — graf alone scaffolds agents/rules/graf-first.md + lane discipline.
Just talk to your models — a lean, fast Hermes/OpenClaw-style chat, no agent in the loop prism-chat The harness and plugins — chat is a direct, efficient line to your models.
Defend against the Sept 2026 GitSpawn-class repo payload wave prism-harness scrub The other plugins — every CLI also auto-scrubs; this is the explicit form.

The harness moves the benchmark — not just the model

Independent benchmarks show the same model scoring 77% and 93% on identical tasks depending on the harness it runs in. The model did not change — the system prompt, tool descriptions, and permission gating did. Models get dumber past ~50k tokens of context; a smart harness budgets context instead of stuffing it.

PRISM is that harness, made sovereign: doctrine your agent must read before it writes, compression that preserves every error and stack trace, routing that decides which model and which plan pays for each call. Your model choice stays yours. The discipline becomes ours.

What you get

Smarter agents — prism-harness

Twelve doctrine rules + templates scaffolded into your repo. Any visiting agent reads them first. AI-slop stops at the door.

One constitution for every agent you use.

Smaller bills — prism-proxy

Loopback proxy audits what eats your context window (ranked tool table) and compresses: RTK for tool bloat, real WebP vision for prose, Caveman for the rest. Errors, stacks, and results preserved.

See exactly what is eating tokens. Then cut it.

Multi-model routing — prism-route

KDL profiles, 5h/weekly plan rotation, failover tiers, file-based secrets from ~/.secrets/, Prometheus metrics. Agents never see a key.

Never leak keys in env. Rotate expensive plans automatically.

Portable knowledge — prism-mem

Signed AKF knowledge bundles — plain Markdown + KDL, provenance, selected evidence, revision history and integrity manifest. Bounded, cited delivery through explicitly trusted Codex/Claude startup bindings.

Vendor memory is a lease. AKF is ownership.

Overnight memory — prism-loop

Durable .prism/ memory and clean run boundaries. The agent resumes tomorrow where it stopped tonight.

Overnight work that actually remembers.

Enforced reviews — prism-sober

Byte-capped steering files carry your doctrine into every automated MR review. Your standards, not the reviewer's mood.

Your rules, enforced on every MR.

Sovereign VCS lanes — prism-graf

Doctrine for Graf-first multi-agent work: lane naming, worktree hygiene, the agents/rules/graf-first.md contract. Companion to JARVIS SPEC-028.

Sovereign by construction. No GitHub required.

Chat without an agent — prism-chat

Terminal chat (ask/repl) and a local installable PWA riding the same gateway. Talk to your routed models directly.

For when you don't want an agent — just the model.

GitSpawn-class defense: ships in every CLI

The Sept 2026 wave of malicious-git-config attacks (full writeup) showed that a repo delivered as a zip, USB stick, cloud-sync folder, or shared drive can carry core.fsmonitor = <attacker command> in its .git/config. Any subsequent git call triggers git to read the local config and run the attacker's command as the operator — before any sandbox, prompt, or approval gate fires.

PRISM neutralizes this at two layers today. A third, the pinned installer, is not available yet.

Auto-scrub — every CLI

init, check, doctor, smoke — every PRISM command that shells out to git first scrubs the LOCAL .git/config of the target. Hard-fails with exit 1 on scrub errors. Fail-closed.

Defends the surface PRISM itself owns.

Scrub subcommand — ad-hoc use

prism-harness scrub /path/to/untrusted on any directory you didn't author. --dry-run reports, --json emits the report. Same scrubber, surfaced for operators.

Run BEFORE opening an untrusted repo in any AI agent.

Pinned installer — not yet available

install.sh has a --verify option for minisign signatures, but no signed release has been published yet, so it exits 4 today. Signed releases with a signed manifest of every component's version and digest are planned; the public key will be published outside the forge.

Until then: download, review, run with Bash.

prism-chat: your lean, fast line to the models

Want a Hermes / OpenClaw–style chat that talks straight to a model — no agent in the loop, no doctrine, nothing heavy? prism-chat repl / ask is that: lightweight, fast, efficient. Point it at a gateway and it streams answers with session usage — the browser never touches a key.

# standalone lean chat — point at a gateway (default http://127.0.0.1:8788)
$ prism-chat repl --gateway http://127.0.0.1:8788 --dialect openai --model gpt-4o-mini

# or, with prism-route in front for routing + rotation + safe keys:
$ prism-route serve --profile frontier --bind 127.0.0.1:8788   # terminal 1
$ prism-chat repl --profile frontier                            # terminal 2
you> explain CRDTs in two sentences
prism> …

$ prism-chat serve   # → http://127.0.0.1:8789 (installable PWA)

prism-chat on the forge ↗

How it works — three steps

  1. Pick what you need. Start from your goal (see the table above) and install the minimal subset — or --yes for everything. One installer, one shared Bun runtime.
  2. Scaffold. prism-harness init drops the doctrine into your repo, or prism-route setup walks you through providers/models. Forge the agent's identity with prism-harness identity init.
  3. Use it. Point your agent through prism-route serve → prism-proxy for routed, compressed, reviewed work — or skip the agent entirely with prism-chat for a direct line to your models.

Install

The eight-file identity canon: give the agent a soul

Doctrine tells the agent how to work. The identity canon tells it who it is: charter, soul, goals, milestones, heartbeat — eight files at ~/.prism/identity/. The agent's name is the last question of the forge, so by the time it gets one, the purpose already fits.

How the canon works →

Sovereign by construction

  • No telemetry, no central control. Operator-local logs, loopback by default, plaintext-passthrough you can security-scan.
  • Keys stay on disk. File-based secrets in ~/.secrets/, redaction on every human surface, zero env leakage.
  • One runtime, small bundles. Eight components, one Bun, dist/*.js bundles measured in KB — auditable in an afternoon.
  • GitSpawn-class defense in every CLI. core.fsmonitor payloads can't fire against a target you've prepared with prism-* scrub.
  • Yours to keep. Distribution runs on the sovereign forge — no public registries. Prebuilt container images ship from R2 at pkg.getharness.app and run as systemd quadlets. Eight components →
  • Knowledge you own. prism-mem carries your project brain as signed, plain-file AKF bundles — no vendor memory lease. Portable memory →

Honest boundaries

PRISM is a harness, not an agent: it does not generate code, and it is not a vendor platform or a model wrapper — models stay yours. That is the point. The harness is the set of tools, prompts, and operational discipline an agent is plugged into. Plug yours in.

Ship better agent work, for fewer tokens