Skip to content

Back to the catalog

qybaihe/mu
github.comrepo

qybaihe/mu

mu is a coding agent built on the pi framework that introduces a "judgment kernel": a small, fast auxiliary model (Jev, a hosted judge, or Laya, a local 322M-parameter model) answers bounded yes/no/choice/score questions at 35 named decision points per turn — deciding what stays in context, whether a tool call is risky, when a turn is done, and what one agent should tell another — so the large working model doesn't spend tokens/attention on bookkeeping. It also ships a "hive" multi-agent mode (2-6 read-only "bees" plus a main editing agent) with an append-only shared board and relation-checking (supersedes/contradicts/supports) between findings, plus a native desktop app with live judgment/board/hive views.

TL;DR A coding agent (built on pi) that offloads context/tool/turn/multi-agent decisions to a small fast "judge" model instead of the main LLM.
Document

What it claims

mu extends the pi coding agent with a "judgment kernel" that routes 35 named non-code decisions per turn to a small judge instead of the working model or fixed rules. The page's substance beyond the summary is operational: the named decision points, how each is configured, the measured latencies the authors cite, the dependency licences, and the fact that nothing has been released yet — it is early development, and "names, settings and formats may still change."

How it works

Decision points are grouped and individually named. The page lists them:

  • Input: input.preflight, task.frame, input.interjection
  • Tools/safety: tool.risk, tool.constraint, tool.approval, tool.admission
  • Context: context.forget, context.compact
  • Turn: turn.completion, turn.drift, turn.rewind, memory.applied, board.read, cache.warming
  • Teamwork: hive.publish, hive.deliver, hive.relate

Each point is set to active, shadow (asked and logged, changes nothing — for comparing a judge before switching it on), or off, and each can name its own judge: jev, laya (local), llm:<provider>/<model>, or a cascade like laya,jev. Crucially, rules are the floor: a dangerous command is caught by rules first; the judge only vouches that you asked for it. The judge never decides whether to prompt you — only what the model does next.

flowchart LR
  cmd[tool call] --> rules{rules: dangerous?}
  rules -->|yes| block[caught by rules]
  rules -->|no| judge{judge: risk/approval}
  judge -->|shadow| log[logged, no effect]
  judge -->|active| run[runs]

Evidence

Numbers are from the authors' own sessions, not a benchmark: one warm question ~0.3 s over HTTP/2; 16 chunks of tool output judged in one request in 0.44 s (state billed once); in failing test logs, 51% of bytes were exact repeats and folded losslessly. One hive run: 3 bees, 9 minutes, 117 candidates judged, 27 on the board, 16 delivered. Every verdict is in the local ledger (mu ledger). Treat these as illustrative, not independently measured.

How to use it

npm i -g mu-agent
mu            # interactive session in current directory
mu doctor     # checks install, judges, connections

Node 22.19+. mu -p "prompt" runs once and prints; mu -c continues the last session; mu import --list / mu import <file> pulls in Claude Code and Codex conversations; mu ledger [n] prints the last n sessions' verdicts. Override judges for one run with MU_JUDGE=laya,jev mu. Hosted judge keys: TYPESAFE_API_KEY, MU_JUDGE_OPENROUTER_API_KEY, AI_GATEWAY_API_KEY (first one set is used by default). Desktop dev build:

npm install --ignore-scripts
KYRN_ROOT="$(cd .. && pwd)" bun run start   # in desktop/

Licences: built on pi (MIT, covers packages/ and kyrn/) and AionUi (Apache 2.0, desktop/).

Limits

Nothing has been released; the authors use it daily but names, settings and formats may change. Laya (the local 322M judge) is "reliable on simple predicates, weaker on meta-judgments" — the page advises running it in shadow next to Jev and reading the ledger before giving it a live decision point. The performance figures are self-reported from the authors' sessions with no external baseline.

Organisations named here

  • TypeSafe
  • OpenRouter
  • Vercel
  • GitHub
  • OpenAI
  • Anthropic
  • xAI
  • Google
  • LINUX.DO
  • Claude Code
  • Jev

Technologies named here

  • mu
  • Laya
  • mu desktop
  • Jev
  • pi
  • ChatGPT
  • AionUi
  • Claude
  • TypeSafe
  • Grok
  • Gemini CLI / Antigravity
  • OpenRouter
  • Vercel AI Gateway
  • Claude Code
  • Codex CLI
  • GitHub Actions
  • Node.js
  • Model Context Protocol
  • Codex

Techniques named here

  • Judgment kernel / decision points
  • Shadow mode for decision points
  • Chunked context admission and forgetting
  • Lossless folding of repeated tool output
  • Cache warming
  • Hive multi-agent board
  • Board narration