Reference
Features and options
Every feature of the judgment kernel, whether it is on by default, its decision points and each option with its default and range.
Each feature is configured under features.<name> in ~/.spec.jev/agent/spec.jev.json. false turns a feature off, true turns it on with its defaults, and an object overrides single options:
{
"features": {
"injection": { "tools": ["web_fetch", "mcp__*"] },
"board": { "defaultOn": true },
"ttsr": false
}
}
The desktop app's settings write the same file, with the same names and descriptions as this page. Both come from one manifest in the repository.
Message preflight preflight
On by defaultDecision points input.preflight
Judges a message before work starts and shows the verdict in the conversation.
| Option | Default | Meaning |
|---|---|---|
thinking | false | Set the thinking level from the verdict (changing it invalidates the prompt cache) |
hints | true | Give the model a one-line hint |
show | true | Show the wait and the verdict |
waitMs | 4000 ms | Wait at most 4000 ms. After this, the turn starts without the verdict. Range 500 to 30000. |
Mid-run messages interjection
On by defaultDecision points input.interjection
Handles messages sent while the agent is working.
| Option | Default | Meaning |
|---|---|---|
waitMs | 1500 ms | Wait at most 1500 ms. Range 200 to 10000. |
Skill disclosure skills
On by defaultDecision points skills.disclosure
Chooses which skill descriptions go into a session's prompt.
| Option | Default | Meaning |
|---|---|---|
minSkills | 4 | Don't filter below this many skills. Range 1 to 100. |
waitMs | 4000 ms | Wait at most 4000 ms. Range 500 to 30000. |
Capability catalog catalog
On by defaultDecision points capability.disclosure
Install a lot, expose little: packs and MCP servers stay hidden until a task needs them.
| Option | Default | Meaning |
|---|---|---|
waitMs | 4000 ms | Wait at most 4000 ms. Range 500 to 30000. |
Task frame and to-do list frame
On by defaultDecision points task.frame
Keeps track of what you actually want: the goal, your hard constraints (in your own words, with their source), the current subgoal and the acceptance criteria. The acceptance criteria are the to-do list the model checks off with the todo tool. Every goal-related verdict reads the frame, and it rewinds with the session.
| Option | Default | Meaning |
|---|---|---|
waitMs | 3000 ms | Wait for the task frame at most 3000 ms. Counted from when the message arrives. A late update isn't dropped: the turn starts with the previous version plus the raw message, and the update applies when it's ready. Range 0 to 30000. |
writerTimeoutMs | 20000 ms | Time limit for writing a frame. On a timeout or malformed reply, the last version stays and is marked stale, goal-based filtering holds back, and the next message tries again. Range 1000 to 120000. |
show | true | Show frame updates in the chat |
Lessons memory
On by defaultDecision points memory.recall memory.capture memory.outcome memory.worth memory.merge memory.applied
Learns from your corrections, from the agent getting itself unstuck and from what the model and subagents find. Merges each new lesson with existing ones before saving it, brings relevant lessons into later turns and retires those that are never followed. /lessons lists them; /forget retires one.
| Option | Default | Meaning |
|---|---|---|
path | empty | Lessons file. Leave empty for the default location. |
maxCandidates | 24 | Judge at most 24. The most followed come first, then the most recently saved or confirmed. Range 1 to 200. |
maxInjected | 5 | Bring in at most 5. Range 0 to 20. |
waitMs | 4000 ms | Wait for recall at most 4000 ms. Counted from when the message arrives; picking lessons for subagents uses the same limit. Range 0 to 30000. |
retireAfter | 8 | Retire after this many recalls without being followed. 0 never retires lessons automatically. Range 0 to 100. |
mergeNeighbours | 6 | Compare with this many similar lessons. Chosen by shared words and judged in one request; 0 saves without merging. Range 0 to 16. |
outcome | true | Learn from the agent getting unstuck. Needs the writer model or the session's model to word the lesson. |
applied | true | Check at the end of a turn whether lessons were followed |
Procedures as skills procedures
On by defaultDecision points skill.capture
When a long, successful run was a reusable procedure, drafts it as a skill for you to review: /skills lists the drafts, and /skills show, accept and reject read, install or discard one. Nothing is installed without your approval.
| Option | Default | Meaning |
|---|---|---|
minSteps | 6 | Minimum steps. Runs with fewer steps aren't considered. Range 2 to 100. |
minCommands | 2 | Minimum commands. Runs with fewer shell commands aren't considered: a procedure has to do something. Range 0 to 50. |
maxPending | 3 | Max pending drafts per project. Once a project has this many pending drafts, no more are made until you review them. Range 1 to 20. |
Risky command guard guard
On by defaultDecision points tool.risk
Confirms dangerous commands before they run.
No options.
Permission modes permissions
On by defaultDecision points tool.approval
Full access, Jev approves or Ask first; switch any time with /permissions. When a step needs your permission, the status bar asks; allow it once or for the whole conversation. While this feature is on, it also takes over the risky command guard.
| Option | Default | Meaning |
|---|---|---|
mode | jev | Mode for new conversations. Once you pick a mode with /permissions, your latest choice is used.full Full access · jev Jev approves · ask Ask first |
Hard constraint gate constraints
On by defaultDecision points tool.constraint
Checks each change or command against your hard constraints first; subagents follow them too.
| Option | Default | Meaning |
|---|---|---|
maxConstraints | 6 | Max constraints checked per call. The newest ones are used. Range 1 to 20. |
waitMs | 5000 ms | Wait at most 5000 ms. Range 500 to 30000. |
Injection screening injection
On by defaultDecision points tool.injection tool.description
Withholds instructions aimed at an AI before the model reads web pages, search results, MCP responses and what shell commands fetch from other machines, and removes MCP tools whose descriptions contain such instructions.
| Option | Default | Meaning |
|---|---|---|
tools | web_fetch, web_search, browse, mcp__* | Tools screened. Tool names, or a prefix ending in *; mcp__* covers every MCP server. |
fetchCommands | curl, wget, gh, glab, lynx, w3m, Invoke-WebRequest, Invoke-RestMethod, iwr, irm | Fetching commands. When a bash or PowerShell command runs one of these programs, its output is screened unless every address it's given is on this machine (localhost); gh and glab output is always screened. Empty: no shell output is screened. |
waitMs | 6000 ms | Wait at most 6000 ms. After this, rules withhold only obvious injection phrases; the verdict is still recorded. Range 500 to 30000. |
descriptions | true | Screen MCP tool descriptions. MCP tools whose descriptions ask the AI to do more than use the tool are removed from the list (tool.description). |
descriptionWaitMs | 8000 ms | Wait for tool description verdicts at most 8000 ms. How long a turn waits for verdicts on MCP tools it hasn't seen before. After this, rules decide until the verdict arrives. Range 500 to 30000. |
Tool output admission admission
On by defaultDecision points tool.admission tool.admission.test-log
Decides which parts of long tool output enter the context.
| Option | Default | Meaning |
|---|---|---|
minChars | 4000 chars | Only filter output longer than 4000 chars. Range 500 to 200000. |
chunkChars | 1200 chars | Chunk size. Range 200 to 20000. |
maxChunks | 48 | Judge at most this many chunks. Range 4 to 400. |
batchChunks | 16 | Chunks per request. A hosted judge takes many chunks in one request, with the shared context billed once; the local judge takes one at a time. Range 1 to 32. |
waitMs | 4000 ms | Wait at most 4000 ms. After this, the full output goes in; the verdict is only recorded. Range 500 to 30000. |
passThrough | read, edit, write | Never filter these tools |
testLog | off | Test log trimmingoff Off · rules Drop exact repeats only (lossless) · jev Also let the judge pick from the rest |
agentEnv | true | Tell test runners an agent is reading. Vitest and other runners then print only failures and the summary. |
Forgetting stale results forgetting
On by defaultDecision points context.forget
Replaces stale results with placeholders when the context gets tight.
| Option | Default | Meaning |
|---|---|---|
thresholds | 50, 70, 85 | Trigger thresholds (context use %) |
minChars | 6000 chars | Only results longer than 6000 chars. Range 500 to 200000. |
minAgeTurns | 2 | At least this many turns old. Range 0 to 50. |
maxPerBatch | 12 | Judge at most per batch. Range 1 to 100. |
waitMs | 4000 ms | Wait at most 4000 ms. The current request waits this long; later verdicts apply from the next request on. Range 500 to 30000. |
Summary-free compaction compaction
Off by defaultExperimentalDecision points context.compact
Compaction that keeps original passages instead of a summary.
| Option | Default | Meaning |
|---|---|---|
keepThreshold | 0.5 | Keep threshold. Range 0 to 1. |
minChars | 600 chars | Keep anything shorter than 600 chars. Range 100 to 20000. |
headChars | 300 chars | Head kept when pruning. Range 0 to 5000. |
targetRatio | 0.5 | Target share of the original. Range 0.05 to 1. |
maxWindowShare | 0.25 | At most this share of the window. Range 0.05 to 0.9. |
freeChars | 24000 chars | Leave histories smaller than this alone. Range 0 to 500000. |
maxJudged | 120 | Judge at most this many passages. Range 10 to 1000. |
Checkpoints and rewind checkpoint
On by defaultDecision points turn.rewind
Before the first file change in each turn, snapshots the working tree into spec.jev's own shadow git directory, without touching your repository. /rewind restores files and the conversation; /rewind undo reverses a rewind.
| Option | Default | Meaning |
|---|---|---|
dir | empty | Where snapshots are kept. Empty means mu/checkpoints in spec.jev's home folder, with one shadow repository per project. |
keep | 50 | Snapshots kept per project. Range 1 to 1000. |
maxAgeDays | 14 days | Days a snapshot is kept. Range 1 to 365. |
maxFileMb | 5 MB | Largest file in a snapshot. Larger files stay out of snapshots, and a rewind never touches them. Range 1 to 1024. |
maxFiles | 5000 files | Max files per snapshot. With more files than this, the session runs without checkpoints and tells you once. Your home folder and spec.jev's own folders are never snapshotted. Range 100 to 1000000. |
maxTotalMb | 200 MB | Max total snapshot size. Above this, the session runs without checkpoints and tells you once. Range 1 to 100000. |
ignore | empty | Extra paths to ignore. gitignore patterns, one per line. The project's own .gitignore and the built-in list (node_modules, build outputs and so on) always apply. |
timeoutMs | 30000 ms | Max time for a snapshot. Past this, the turn runs without a checkpoint; the tool call still runs. Range 1000 to 600000. |
propose | true | Propose a rewind at a dead end |
confirmSeconds | 120 s | How long a proposal waits for you. If you don't answer, the run continues. 0 waits forever. Range 0 to 3600. |
Drift monitor monitor
On by defaultDecision points turn.drift
Catches drift from the goal and the agent going in circles.
| Option | Default | Meaning |
|---|---|---|
every | 6 | Tool calls between checks. Range 1 to 100. |
repeats | 3 | Repeats that count as a loop. Range 2 to 20. |
window | 8 | Recent calls checked. Range 2 to 100. |
Language server diagnostics lsp
On by defaultDecision points diagnostics.delivery
Uses language servers already installed on this machine (it installs none), keeps only diagnostics an edit newly introduced and lets the judge decide when to tell the model.
| Option | Default | Meaning |
|---|---|---|
builtin | true | Use the built-in list of well-known servers. Well-known servers for TypeScript, Python, Go, Rust and C/C++, found on PATH only. Add your own under features.lsp.servers in mu.json. |
editTools | edit, write | Tools that count as editing a file |
subAgents | false | Subagents start language servers too. Off by default: a set of servers per subagent is heavy on the machine. |
settleMs | 1500 ms | Wait for the server after an edit, at most 1500 ms. Past this, nothing waits: late diagnostics are handled at the next edit or when the turn ends. Range 0 to 10000. |
turnEndSettleMs | 3000 ms | Wait at the end of a turn, at most 3000 ms. Range 0 to 30000. |
quietMs | 250 ms | Silence that counts as the server being done. Range 20 to 5000. |
baselineMs | 5000 ms | Wait for the pre-edit diagnostics, at most 5000 ms. Waited for in the background, never blocking a tool. Past this, the first report isn't treated as new. Range 100 to 60000. |
maxItems | 10 | Diagnostics reported at once, at most 10. Range 1 to 100. |
maxServers | 4 | Servers running at once, at most 4. Range 1 to 16. |
waitMs | 4000 ms | Wait for the judge, at most 4000 ms. Range 500 to 30000. |
Mid-stream correction (experimental) ttsr
Off by defaultDecision points output.drift
The judge, not a regular expression, notices when output goes astray, cuts it off, shows the rule and lets the model continue. Off by default; when on, every stretch of output costs one more judge call.
| Option | Default | Meaning |
|---|---|---|
rules | empty | Rules to follow at all times. One per line, in plain words, e.g. “Answer in Chinese”, “No placeholder implementations”. Your hard constraints from the task frame are added automatically. |
segmentChars | 600 | Characters of output per check. Range 200 to 5000. |
maxRules | 4 | Rules checked per call at most 4. When there are more, the most recent ones are used. Range 1 to 12. |
maxInterrupts | 2 | Max cuts between two of your messages. Range 1 to 10. |
Goal mode goal
On by defaultDecision points goal.met
After /goal <condition>, the agent keeps working until the condition holds (/goal alone asks for one). Each time it wants to stop, a model reads the evidence and decides: met, or the next step. It pauses on its own when you interrupt, a model call fails, it idles or goes in circles, or it reaches its limits; your next message resumes it.
| Option | Default | Meaning |
|---|---|---|
checker | model | Who checks whether the goal is met. A model reads the goal, what the run did, the last test run and the closing message, then gives a verdict and the next step; Jev steps in only when the model doesn't answer. Either way, an open acceptance item or an unverified edit means not yet.model A model (recommended) · jev Jev |
checkModel | empty | Model for the check. As provider/model. Empty: the session's current model. |
checkThinking | off | Thinking level for the checkoff Off · minimal Minimal · low Low · medium Medium · high High |
checkTimeoutMs | 90000 ms | Max wait for the check. If the check takes longer, Jev decides; if Jev can't, only the facts count. Range 5000 to 600000. |
stallLimit | 2 | Runs without progress before pausing. Runs where the check finds the agent repeating itself. The first time, the agent is told to change course; at this count, the goal pauses for you. Range 1 to 10. |
maxContinuations | 20 | Max continuations. Counted from your last message. Range 1 to 200. |
maxMinutes | 180 min | Longest automatic run. Counted from your last message. Range 5 to 1440. |
idleLimit | 2 | Idle runs before pausing. Runs in a row that ended without a single tool call: the agent is going nowhere. Range 1 to 10. |
Plain-language board board
On by defaultDecision points board.read
Tells you in plain words how far along the work is, what's happening now and what's waiting on you. It keeps a running account: a line for each step as it happens, plus what the agent says or finds, retold right away by a plain-speaking model, with Jev deciding what's worth telling. A finished run gets a summary, and the account is kept. For you only; never in the model's context. Turned on per project (/board on, /board off); the first time, you pick the model that writes it (/board model changes it).
| Option | Default | Meaning |
|---|---|---|
defaultOn | false | On in projects you haven't set it for. Off by default: each board update costs a model call. |
model | empty | Model that writes the board. As provider/model; if set here, you won't be asked. Empty: you pick one the first time you turn the board on (Claude Opus 4.6 recommended, then Gemini 3.8 Flash), saved in mu/board.json. If none is picked: the writer model, else the session's model. |
language | auto | Board languageauto The one you write in · zh Chinese · en English |
everyTools | 5 | Tool calls between checks. Range 1 to 100. |
minIntervalMs | 20000 ms | Minimum time between checks while it works. When the agent stops, the board always checks, regardless of this setting. Range 0 to 600000. |
maxSteps | 10 | Latest tool calls read each time. Range 3 to 50. |
narrateTimeoutMs | 60000 ms | Max wait for the writer. After that, fixed sentences are used. Range 5000 to 300000. |
Completion check completion
On by defaultDecision points turn.completion
Checks that something verified the work before it's called done.
| Option | Default | Meaning |
|---|---|---|
waitMs | 3000 ms | Wait at most 3000 ms. After this, there's no nudge; the verdict is only recorded. Range 500 to 30000. |
Continue after stopping short continuation
On by defaultDecision points turn.continue
Sends the agent back to work when a run stops short of what it said it would do.
| Option | Default | Meaning |
|---|---|---|
maxNudges | 2 | Max nudges per message. Range 1 to 5. |
waitMs | 3000 ms | Wait at most 3000 ms. After this, there's no nudge; the verdict is only recorded. Range 500 to 30000. |
Notification routing notify
On by defaultDecision points notify.routing
Decides when to tell the model about events.
| Option | Default | Meaning |
|---|---|---|
budgetThresholds | 70, 85 | Context budget notices (%) |
Cache warming warming
On by defaultDecision points cache.warming
Refreshes the prompt cache before it expires, when that pays off.
No options.
Judge connection warm-up warmup
On by default
While the session is in use, a tiny question keeps the judge's connection warm, so the questions before a turn skip 1–3 s of connection setup.
| Option | Default | Meaning |
|---|---|---|
intervalMs | 50000 ms | Every 50000 ms. The server drops connections idle for about 90 s; stay below that. Range 10000 to 85000. |
idleMs | 900000 ms | Stop after this much inactivity. Range 60000 to 7200000. |
Subagents swarm
On by defaultDecision points swarm.routing swarm.patch
Delegates tasks to subagents with roles.
| Option | Default | Meaning |
|---|---|---|
models | empty | Model ladder (cheapest to strongest). Empty means every subagent uses the session's model. |
maxTasks | 6 | Max tasks per call. Range 1 to 32. |
concurrency | 3 | Running at once. Range 1 to 16. |
defaultAgent | worker | Default role |
agentsDir | empty | Folder with your own roles. Empty uses <agent dir>/agents. |
isolation | worktree | Subagents that edit files. Isolated changes come back as a patch, which the main agent may apply with apply_patch_from. Outside a git repository, subagents edit in place.worktree Edit in its own git worktree · none Edit in place |
carryUncommitted | true | Carry over uncommitted changes. The subagent starts from the files as the main agent sees them, not from the last commit. |
patchPreviewLines | 30 | Lines of patch preview. The start of the patch, shown with the subagent's report. Range 0 to 400. |
Hive hive
On by defaultDecision points hive.publish hive.deliver hive.relate
Several bees work on one hard task in parallel, and the judge decides what passes between them. Start one yourself with /hive <question>; the agent also starts one when a problem resists a direct attempt.
| Option | Default | Meaning |
|---|---|---|
maxNotesPerBee | 12 | Max notes per bee. Range 1 to 100. |
maxDeliveriesPerBee | 10 | Max deliveries per bee. Range 1 to 100. |
checkpointEvery | 4 | Ask for findings after this many silent tool calls. 0 turns this off. Range 0 to 50. |
lastCall | true | Deliver findings once more while writing the report |
maxRelatedPerNote | 6 | Max earlier findings to compare a new one against. Only those sharing words with it. 0 turns corrections off. Range 0 to 30. |
verifyConflicts | 1 | Max verifier bees for unsettled disputes. 0 adds none; both sides stay in the report. Range 0 to 3. |
verifyAfterSeconds | 60 | Seconds before a verifier joins an open dispute. Range 0 to 600. |
File locator locate
On by defaultDecision points files.locate
The locate tool: find files by description.
| Option | Default | Meaning |
|---|---|---|
candidates | 40 | Candidates judged. Range 5 to 400. |
results | 12 | Results returned. Range 1 to 100. |
Bulk judging tool judgeItems
On by defaultDecision points judge.items
The judge_items tool: one yes/no question, a probability for each of many items.
| Option | Default | Meaning |
|---|---|---|
maxItems | 500 | Max items per call. Range 10 to 5000. |
Built-in browser browser
On by defaultDecision points browser.step
A judge-driven browser with its own profile; it never touches yours.
| Option | Default | Meaning |
|---|---|---|
headless | true | Run headless |
maxSteps | 40 | Max steps per run. Range 1 to 200. |
textChars | 4000 chars | Page text read per step. Range 500 to 50000. |
embedded | true | Use the desktop app's browser panel when it's running. Every step is then visible and can be paused, stopped or taken over; without the app, spec.jev uses its own browser. |
profileDir | empty | Browser profile folder. Empty uses spec.jev's own folder. |
backend | auto | Browser backend. auto: moli when it is installed, Chrome otherwise; chrome: a Chromium browser only; moli: moli or nothing. |
moliPath | empty | moli executable. Empty searches the usual install places and PATH; SPECJEV_MOLI does the same. |
moliUrl | empty | Running moli address. For example http://127.0.0.1:9222; empty lets spec.jev start its own. |
fetchChars | 12000 chars | Characters kept from a fetch. Range 1000 to 200000. |
Background commands background
On by default
bg_start / bg_output / bg_stop: run dev servers and long builds without blocking the turn. Notification routing decides whether a finished job interrupts; every job stops when the session ends.
| Option | Default | Meaning |
|---|---|---|
maxJobs | 8 | Jobs running at the same time. Range 1 to 32. |
bufferChars | 262144 chars | Output kept in memory per job. The newest output is kept; the log file has everything. |
maxOutputChars | 20000 chars | Max output per bg_output call |
killGraceMs | 3000 ms | Wait before force-killing a job. SIGTERM first (taskkill without /F on Windows), then force after this long. |
logDir | empty | Log directory. Empty means ~/.spec.jev/jobs/<session id>, cleared after 7 days. |
inheritShell | true | Use the foreground shell settings. Reads shellPath and shellCommandPrefix from settings.json, like the bash tool. |
wakeWhenIdle | false | A finished job may wake an idle agent. Only a verdict of "now" starts a turn; when off, the notice is only appended. |
Web reading and search web
On by default
web_fetch reads a page as text (with time and size limits, internal addresses refused and page text labeled untrusted); web_search uses a source that works from mainland China without a key.
| Option | Default | Meaning |
|---|---|---|
search | so | Search source. so (360), sogou, bing-cn, searxng:<base url>, or a URL with {query} in it. |
searchFallback | true | Try the other built-in sources on failure. Applies when a source returns a verification page, no results, or results unrelated to the query. |
maxChars | 20000 chars | Max text per web_fetch call |
timeoutMs | 20000 ms | Time limit per request |
maxBytes | 2000000 bytes | Download limit |
maxRedirects | 5 | Redirects followed. Range 0 to 20. |
allowLoopback | true | Allow this machine's dev servers. Only when the URL itself names localhost or 127.0.0.1; a redirect from the web is always refused. |
allowPrivate | false | Allow private network addresses. 10/8, 172.16/12, 192.168/16, link-local and similar. Refused by default so a page can't steer the reader into your local network. |
Welcome screen welcome
On by default
The terminal's welcome screen and the identity note for the model.
No options.
Inherit existing setup inherit
On by default
Uses the rules, skills and MCP servers you've already set up for Claude Code, Cursor and Codex, read-only. Always-on rules join the prompt; a rule scoped to file patterns is passed along once, with the result of the first tool that touches a matching file; the rest are listed by description. Project content is used only in trusted projects.
| Option | Default | Meaning |
|---|---|---|
claude | true | From Claude Code |
cursor | true | From Cursor |
codex | true | From Codex |
rules | true | Inherit rules |
skills | true | Inherit skills |
mcp | true | Inherit MCP servers. When off, only the servers under mcp.servers in mu.json are used. |
maxRuleChars | 4000 chars | Max size of a file-scoped rule passed along. The rest stays in the file for the model to read. Range 500 to 20000. |
maxAlwaysChars | 16000 chars | Budget for always-on rules. Always-on rules that don't fit are listed by description instead, so they can't bloat the prompt. Range 0 to 100000. |
MCP servers mcp
On by default
MCP servers connect through pi's own client (stdio and Streamable HTTP, OAuth sign-in, managed with /mcp). Each server spec.jev inherits from Claude Code, Cursor, Codex or mu.json is a hidden catalog entry: it starts, and its tools reach the model, only when the judge finds the task needs it or the model asks through find_capability. Tool lists are cached, so the judge has a description even before a server has run. A server defined by a project asks before its first start, and again when its definition changes. "exposure": "always" under mcp.servers in mu.json keeps a server open. Servers added with spec.jev mcp add belong to pi: they connect with the session, and tool_search loads their tools when needed.
| Option | Default | Meaning |
|---|---|---|
startTimeoutMs | 45000 ms | Start timeout. An npx-style server downloads itself first. Range 1000 to 300000. |
requestTimeoutMs | 120000 ms | Call timeout. Range 1000 to 3600000. |
Capability packs packs
On by defaultDecision points review.triage
Tool packs that ship with spec.jev and stay hidden until a task needs them; if a required program is missing, spec.jev shows how to install it.
| Option | Default | Meaning |
|---|---|---|
astGrep | true | ast-grep structural search and rewrite. Finds and changes code by syntax, not text. Requires ast-grep on this machine. |
maxResults | 50 | Max matches per search. Range 1 to 500. |
maxDiffChars | 12000 chars | Max diff per result. Range 1000 to 200000. |
astGrepCommand | empty | ast-grep path. Empty: ast-grep, then sg, from PATH. |
github | true | GitHub through gh. No tools; a skill that teaches gh for PRs, issues, checks and releases. Requires gh on this machine. |
ghCommand | empty | gh path. Empty: gh from PATH. |
commit | true | /commit: split changes into commits. A model proposes the groups and messages; commits are made only after you confirm the plan, all or none. Never pushes. |
maxPlanChars | 60000 | Characters of the change the model reads. Range 5000 to 400000. |
review | true | /review, with findings ranked P0 to P3 |
conflicts | true | Conflict resolution. When a merge, rebase or cherry-pick stops on conflicts, shows both sides and their base for each file, writes the resolution block by block and marks the file resolved. Never commits and never runs --continue. |
maxSideLines | 80 | Lines shown per side of a conflict block. Range 10 to 1000. |
maxConflictChars | 20000 | Max characters of conflicts shown per file. Range 2000 to 200000. |
maxFindings | 40 | Max findings ranked per triage. The rest are still reported, just not ranked. Range 5 to 200. |
debugger | true | Debugger: breakpoints, stepping, variables. Runs a program under a debugger and stops at breakpoints or uncaught exceptions, showing the call stack and variables. Uses debugpy for Python, delve for Go and lldb-dap for compiled programs, if installed; add your own under debugAdapters in mu.json. One run at a time, ended with the session. |
maxFrames | 20 | Frames shown at a stop. Range 1 to 200. |
maxVariables | 50 | Variables listed per scope. Range 5 to 1000. |
debugOutputChars | 4000 chars | Max program output per result. When there's more, only the end is kept. Range 500 to 100000. |
debugWaitMs | 30000 ms | Max wait for the program to stop. If it hasn't stopped or exited by then, the model is told it's still running, and can pause it to see where it is, or keep waiting. Range 1000 to 600000. |
Sign in with Google (experimental) googleLogin
On by defaultExperimental
Adds two entries to /login: Gemini CLI's sign-in for the Gemini models, and Antigravity's for Gemini, Claude and GPT-OSS. These are Google's sign-ins for its own tools; using them from another program may violate Google's terms and get the account limited or suspended, so spec.jev explains the risk first and continues only if you agree. The official routes need none of this: a Gemini API key (provider google) or Vertex AI (provider google-vertex, signed in with gcloud).
| Option | Default | Meaning |
|---|---|---|
geminiCli | true | Gemini CLI sign-in. The Gemini models, on the free tier for a personal account or with a Code Assist license. |
antigravity | true | Antigravity sign-in. Gemini, Claude and GPT-OSS; once you're signed in, the list shows what the account can use. |