A complete coding-agentharness.

grist.lol · 2026-10-01 · by Long Nguyen ·generic
Grist is a complete coding-agent harness: confidence-gated model routing, institutional memory, and BYOK economics. Open to everyone.

A complete coding-agentharness.

\[ coding-agent harness \]

A complete coding-agent

harness.

Confidence-gated model routing, institutional memory, and BYOK economics. Grist writes and edits code in your working tree — every task routed to the cheapest capable rung, every verified change remembered, inference billed to your own provider key.

$ installCopy

npm install -g grist-ai grist

First `grist` prompts `auth login`. Pick Grist and sign in — your account is created on the spot. Bring your own provider key for inference, or use a dashboard `grist_sk_` key.

Download for macOS Get started

✦ paste into your AI agentCopy

Use Grist for my coding tasks from now on. Grist is an agentic coding-harness CLI.

1. Install the Grist agent skill by running: npx skills add grist-ai/grist-skills (built for personal AI agents and agentic CLIs like Muse, OpenClaw, Hermes, and OpenCode). Read the installed skill file in full before doing anything else. 2. Install the CLI if it is missing: npm install -g grist-ai. 3. Ask me for my Grist API key if you do not have it (it starts with grist_sk_). Never print it, log it, or write it into any file — pass it via environment variable only. 4. For multi-step coding work (features, bug fixes, refactors across files), delegate to Grist exactly as the skill describes. Report back what changed, the branch name, test results, and cost.

For Muse, OpenClaw, Hermes, or any personal AI agent with its own shell. Copy pastes the full prompt.

Read more

Local tree execution Prompt goes out. Source does not.

PATH OWNER auth/cookie.ts you pay/intent.ts you graph/map.ts team infra/redis.go infra SESSION RESTORED already briefed

Learns your codebase · Self-improves · SoL-Pi inside · Open beta

\[ learns your codebase \]

It shows up already briefed.

Other agents start from zero every session. Grist mines the tree, ownership, and conventions from your own history. You stop pasting context. It already knows who owns the file.

HISTORY commits reviews · diffs MAP ownership conventions SESSION already briefed no re-explain

TASK incoming GATE then DIFF tests pass proven MEMORY corpus cheaper · faster · right

\[ self-improves \]

Every verified win makes the next task sharper.

Grist only remembers what you approved or what tests proved. The gate calibrates to your repo. Unreviewed noise never becomes knowledge.

\[ SoL-Pi \]

Same quality. Fewer tokens. That’s SoL-Pi.

SoL-Pi sits in the harness, not in a cheaper model. Huge tool output gets packed. Edit and verify fuse into one move. Spend goes to judgment, not log spam.

Harness layer

ObservationPack

Handle plus excerpt. Full text stays on disk.

Turn compression

One call

Edit and verify fuse into a single move.

TOOL OUTPUT · 48 KB log spam billed every turn ObservationPack \~1 KB handle excerpt only full text on disk

\[ the gate \]

Frontier when it has to be. Cents when it doesn’t.

Most agents bill like every task is hard. Grist spends on difficulty, not habit. Routine edits stay cheap. The expensive rung is reserved for when it actually matters.

1. FASTdefault Routine edits, stubs, formatting. Stays here unless the work is actually hard. 2. STANDARDstep up Cross-file refactors and work that needs more than the fast rung. 3. MAXreserved Used when it is actually hard. Not a habit. 4. ULTRAopt-in The top tier, for the rare task that earns it.

\[ local \]

The repo never leaves the machine.

Tools run in your working tree. The prompt goes out. The source does not. Your provider key stays yours. We never train on your code.

Your disk

  • Source files
  • Git history
  • Tool execution
  • Tests
  • prompt only

    Gateway

  • Prompt tokens
  • ObservationPack
  • Meter + cap
  • No source ingest
  • 3 files · tests passed · $0.012

    \[ architecture \]

    How a prompt becomes a diff.

    One request, seven moves. The client never sees a model id — only rung names. The gateway resolves everything, and your provider key pays for inference. Not ours.

    1. 1

    You prompt

    CLI, TUI, or desktop. The client sends the task and names a rung — never a vendor model id. 2. 2

    Gateway admits

    `grist_sk` identifies your account. Spend caps are hard: over cap returns 402, not a bill. 3. 3

    Jev gate routes

    A confidence gate scores difficulty once per run, picks the cheapest rung that can handle it, and dials exploratory effort — trivial tasks get a tight budget, ambiguous ones get room to investigate. 4. 4

    Ladder resolves

    Rung becomes a model. Defaults are ours — your dashboard can override any rung. 5. 5

    Your key pays

    The provider call rides your BYOK key. Inference bills to your provider account; Grist never holds your budget. 6. 6

    Memory compounds

    Approved diffs and proven changes become memory — code map, ownership, Supermemory. The next run starts briefed. 7. 7

    Specialists delegate

    The gate hands work to named specialists — explore, plan, review, verify — each running inside the assigned rung. Repeat calls resume warm, so context compounds.

    Subagents re-gate on their delegation text with the parent's rung as a ceiling — decomposed work can only shed cost, never gain it.

    \[ new in v2 \]

    Rebuilt on OpenCode v2.

    Grist moved from a surgical fork to a first-class OpenCode plugin (tracking upstream v2.0.18). The gate, the ladder, and the doctrine are unchanged — everything around them got better.

  • Zero-config plugin. The harness ships baked into the `grist` binary — every session loads the Jev gate, doctrine, and control plane with no setup. One additive upstream hook is the entire fork surface, so new upstream releases merge as plain tags.
  • The full CLI, inherited. `grist auth`, `grist models`, `grist debug`, `grist service`, `grist upgrade`, `grist stats`, `grist session`, `grist mcp` — v2's command surface arrives as upstream features, not Grist code to maintain.
  • Managed background service. `grist serve --service`elects a single server; `grist run` is a thin client over it. No more ad-hoc servers lingering after a reinstall.
  • Grist identity. Config discovery prefers `grist.json` and `.grist/`, and global state lives under `~/.grist` — the harness finally has its own name on disk.

\[ get started \]

Open to everyone.

Create an account with your name and email, or sign in with Google — your account is ready on the spot. Bring your own provider key — OpenRouter, Vercel AI Gateway, or any OpenAI-compatible endpoint — and Grist runs inference on it.

Sign in How sign-in works

\[ beta \]

Stop re-teaching the agent your codebase.

Open to everyone. Bring your own key. Your code stays on your machine.

Get started Sign in

grist.lol · 30 links

Comments (0)

No comments yet