NewDesktop v0.1.10 is out, spec.jev 0.1.10 inside
Documentation Documentation

Start here

Getting started The desktop app The command line

Using mu

Judges Permissions and safety Goal mode and finishing Context Lessons The plain-language board Subagents and the hive

Reference

Configuration Features and options Troubleshooting Privacy

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.

OptionDefaultMeaning
thinkingfalseSet the thinking level from the verdict (changing it invalidates the prompt cache)
hintstrueGive the model a one-line hint
showtrueShow the wait and the verdict
waitMs4000 msWait 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.

OptionDefaultMeaning
waitMs1500 msWait 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.

OptionDefaultMeaning
minSkills4Don't filter below this many skills. Range 1 to 100.
waitMs4000 msWait 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.

OptionDefaultMeaning
waitMs4000 msWait 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.

OptionDefaultMeaning
waitMs3000 msWait 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.
writerTimeoutMs20000 msTime 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.
showtrueShow 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.

OptionDefaultMeaning
pathemptyLessons file. Leave empty for the default location.
maxCandidates24Judge at most 24. The most followed come first, then the most recently saved or confirmed. Range 1 to 200.
maxInjected5Bring in at most 5. Range 0 to 20.
waitMs4000 msWait for recall at most 4000 ms. Counted from when the message arrives; picking lessons for subagents uses the same limit. Range 0 to 30000.
retireAfter8Retire after this many recalls without being followed. 0 never retires lessons automatically. Range 0 to 100.
mergeNeighbours6Compare with this many similar lessons. Chosen by shared words and judged in one request; 0 saves without merging. Range 0 to 16.
outcometrueLearn from the agent getting unstuck. Needs the writer model or the session's model to word the lesson.
appliedtrueCheck 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.

OptionDefaultMeaning
minSteps6Minimum steps. Runs with fewer steps aren't considered. Range 2 to 100.
minCommands2Minimum commands. Runs with fewer shell commands aren't considered: a procedure has to do something. Range 0 to 50.
maxPending3Max 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.

OptionDefaultMeaning
modejevMode 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.

OptionDefaultMeaning
maxConstraints6Max constraints checked per call. The newest ones are used. Range 1 to 20.
waitMs5000 msWait 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.

OptionDefaultMeaning
toolsweb_fetch, web_search, browse, mcp__*Tools screened. Tool names, or a prefix ending in *; mcp__* covers every MCP server.
fetchCommandscurl, wget, gh, glab, lynx, w3m, Invoke-WebRequest, Invoke-RestMethod, iwr, irmFetching 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.
waitMs6000 msWait at most 6000 ms. After this, rules withhold only obvious injection phrases; the verdict is still recorded. Range 500 to 30000.
descriptionstrueScreen MCP tool descriptions. MCP tools whose descriptions ask the AI to do more than use the tool are removed from the list (tool.description).
descriptionWaitMs8000 msWait 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.

OptionDefaultMeaning
minChars4000 charsOnly filter output longer than 4000 chars. Range 500 to 200000.
chunkChars1200 charsChunk size. Range 200 to 20000.
maxChunks48Judge at most this many chunks. Range 4 to 400.
batchChunks16Chunks 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.
waitMs4000 msWait at most 4000 ms. After this, the full output goes in; the verdict is only recorded. Range 500 to 30000.
passThroughread, edit, writeNever filter these tools
testLogoffTest log trimmingoff Off · rules Drop exact repeats only (lossless) · jev Also let the judge pick from the rest
agentEnvtrueTell 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.

OptionDefaultMeaning
thresholds50, 70, 85Trigger thresholds (context use %)
minChars6000 charsOnly results longer than 6000 chars. Range 500 to 200000.
minAgeTurns2At least this many turns old. Range 0 to 50.
maxPerBatch12Judge at most per batch. Range 1 to 100.
waitMs4000 msWait 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.

OptionDefaultMeaning
keepThreshold0.5Keep threshold. Range 0 to 1.
minChars600 charsKeep anything shorter than 600 chars. Range 100 to 20000.
headChars300 charsHead kept when pruning. Range 0 to 5000.
targetRatio0.5Target share of the original. Range 0.05 to 1.
maxWindowShare0.25At most this share of the window. Range 0.05 to 0.9.
freeChars24000 charsLeave histories smaller than this alone. Range 0 to 500000.
maxJudged120Judge 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.

OptionDefaultMeaning
diremptyWhere snapshots are kept. Empty means mu/checkpoints in spec.jev's home folder, with one shadow repository per project.
keep50Snapshots kept per project. Range 1 to 1000.
maxAgeDays14 daysDays a snapshot is kept. Range 1 to 365.
maxFileMb5 MBLargest file in a snapshot. Larger files stay out of snapshots, and a rewind never touches them. Range 1 to 1024.
maxFiles5000 filesMax 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.
maxTotalMb200 MBMax total snapshot size. Above this, the session runs without checkpoints and tells you once. Range 1 to 100000.
ignoreemptyExtra 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.
timeoutMs30000 msMax time for a snapshot. Past this, the turn runs without a checkpoint; the tool call still runs. Range 1000 to 600000.
proposetruePropose a rewind at a dead end
confirmSeconds120 sHow 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.

OptionDefaultMeaning
every6Tool calls between checks. Range 1 to 100.
repeats3Repeats that count as a loop. Range 2 to 20.
window8Recent 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.

OptionDefaultMeaning
builtintrueUse 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.
editToolsedit, writeTools that count as editing a file
subAgentsfalseSubagents start language servers too. Off by default: a set of servers per subagent is heavy on the machine.
settleMs1500 msWait 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.
turnEndSettleMs3000 msWait at the end of a turn, at most 3000 ms. Range 0 to 30000.
quietMs250 msSilence that counts as the server being done. Range 20 to 5000.
baselineMs5000 msWait 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.
maxItems10Diagnostics reported at once, at most 10. Range 1 to 100.
maxServers4Servers running at once, at most 4. Range 1 to 16.
waitMs4000 msWait 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.

OptionDefaultMeaning
rulesemptyRules 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.
segmentChars600Characters of output per check. Range 200 to 5000.
maxRules4Rules checked per call at most 4. When there are more, the most recent ones are used. Range 1 to 12.
maxInterrupts2Max 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.

OptionDefaultMeaning
checkermodelWho 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
checkModelemptyModel for the check. As provider/model. Empty: the session's current model.
checkThinkingoffThinking level for the checkoff Off · minimal Minimal · low Low · medium Medium · high High
checkTimeoutMs90000 msMax wait for the check. If the check takes longer, Jev decides; if Jev can't, only the facts count. Range 5000 to 600000.
stallLimit2Runs 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.
maxContinuations20Max continuations. Counted from your last message. Range 1 to 200.
maxMinutes180 minLongest automatic run. Counted from your last message. Range 5 to 1440.
idleLimit2Idle 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).

OptionDefaultMeaning
defaultOnfalseOn in projects you haven't set it for. Off by default: each board update costs a model call.
modelemptyModel 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.
languageautoBoard languageauto The one you write in · zh Chinese · en English
everyTools5Tool calls between checks. Range 1 to 100.
minIntervalMs20000 msMinimum time between checks while it works. When the agent stops, the board always checks, regardless of this setting. Range 0 to 600000.
maxSteps10Latest tool calls read each time. Range 3 to 50.
narrateTimeoutMs60000 msMax 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.

OptionDefaultMeaning
waitMs3000 msWait 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.

OptionDefaultMeaning
maxNudges2Max nudges per message. Range 1 to 5.
waitMs3000 msWait 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.

OptionDefaultMeaning
budgetThresholds70, 85Context 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.

OptionDefaultMeaning
intervalMs50000 msEvery 50000 ms. The server drops connections idle for about 90 s; stay below that. Range 10000 to 85000.
idleMs900000 msStop after this much inactivity. Range 60000 to 7200000.

Subagents swarm

On by defaultDecision points swarm.routing swarm.patch

Delegates tasks to subagents with roles.

OptionDefaultMeaning
modelsemptyModel ladder (cheapest to strongest). Empty means every subagent uses the session's model.
maxTasks6Max tasks per call. Range 1 to 32.
concurrency3Running at once. Range 1 to 16.
defaultAgentworkerDefault role
agentsDiremptyFolder with your own roles. Empty uses <agent dir>/agents.
isolationworktreeSubagents 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
carryUncommittedtrueCarry over uncommitted changes. The subagent starts from the files as the main agent sees them, not from the last commit.
patchPreviewLines30Lines 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.

OptionDefaultMeaning
maxNotesPerBee12Max notes per bee. Range 1 to 100.
maxDeliveriesPerBee10Max deliveries per bee. Range 1 to 100.
checkpointEvery4Ask for findings after this many silent tool calls. 0 turns this off. Range 0 to 50.
lastCalltrueDeliver findings once more while writing the report
maxRelatedPerNote6Max earlier findings to compare a new one against. Only those sharing words with it. 0 turns corrections off. Range 0 to 30.
verifyConflicts1Max verifier bees for unsettled disputes. 0 adds none; both sides stay in the report. Range 0 to 3.
verifyAfterSeconds60Seconds 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.

OptionDefaultMeaning
candidates40Candidates judged. Range 5 to 400.
results12Results 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.

OptionDefaultMeaning
maxItems500Max 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.

OptionDefaultMeaning
headlesstrueRun headless
maxSteps40Max steps per run. Range 1 to 200.
textChars4000 charsPage text read per step. Range 500 to 50000.
embeddedtrueUse 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.
profileDiremptyBrowser profile folder. Empty uses spec.jev's own folder.
backendautoBrowser backend. auto: moli when it is installed, Chrome otherwise; chrome: a Chromium browser only; moli: moli or nothing.
moliPathemptymoli executable. Empty searches the usual install places and PATH; SPECJEV_MOLI does the same.
moliUrlemptyRunning moli address. For example http://127.0.0.1:9222; empty lets spec.jev start its own.
fetchChars12000 charsCharacters 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.

OptionDefaultMeaning
maxJobs8Jobs running at the same time. Range 1 to 32.
bufferChars262144 charsOutput kept in memory per job. The newest output is kept; the log file has everything.
maxOutputChars20000 charsMax output per bg_output call
killGraceMs3000 msWait before force-killing a job. SIGTERM first (taskkill without /F on Windows), then force after this long.
logDiremptyLog directory. Empty means ~/.spec.jev/jobs/<session id>, cleared after 7 days.
inheritShelltrueUse the foreground shell settings. Reads shellPath and shellCommandPrefix from settings.json, like the bash tool.
wakeWhenIdlefalseA 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.

OptionDefaultMeaning
searchsoSearch source. so (360), sogou, bing-cn, searxng:<base url>, or a URL with {query} in it.
searchFallbacktrueTry the other built-in sources on failure. Applies when a source returns a verification page, no results, or results unrelated to the query.
maxChars20000 charsMax text per web_fetch call
timeoutMs20000 msTime limit per request
maxBytes2000000 bytesDownload limit
maxRedirects5Redirects followed. Range 0 to 20.
allowLoopbacktrueAllow 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.
allowPrivatefalseAllow 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.

OptionDefaultMeaning
claudetrueFrom Claude Code
cursortrueFrom Cursor
codextrueFrom Codex
rulestrueInherit rules
skillstrueInherit skills
mcptrueInherit MCP servers. When off, only the servers under mcp.servers in mu.json are used.
maxRuleChars4000 charsMax size of a file-scoped rule passed along. The rest stays in the file for the model to read. Range 500 to 20000.
maxAlwaysChars16000 charsBudget 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.

OptionDefaultMeaning
startTimeoutMs45000 msStart timeout. An npx-style server downloads itself first. Range 1000 to 300000.
requestTimeoutMs120000 msCall 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.

OptionDefaultMeaning
astGreptrueast-grep structural search and rewrite. Finds and changes code by syntax, not text. Requires ast-grep on this machine.
maxResults50Max matches per search. Range 1 to 500.
maxDiffChars12000 charsMax diff per result. Range 1000 to 200000.
astGrepCommandemptyast-grep path. Empty: ast-grep, then sg, from PATH.
githubtrueGitHub through gh. No tools; a skill that teaches gh for PRs, issues, checks and releases. Requires gh on this machine.
ghCommandemptygh path. Empty: gh from PATH.
committrue/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.
maxPlanChars60000Characters of the change the model reads. Range 5000 to 400000.
reviewtrue/review, with findings ranked P0 to P3
conflictstrueConflict 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.
maxSideLines80Lines shown per side of a conflict block. Range 10 to 1000.
maxConflictChars20000Max characters of conflicts shown per file. Range 2000 to 200000.
maxFindings40Max findings ranked per triage. The rest are still reported, just not ranked. Range 5 to 200.
debuggertrueDebugger: 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.
maxFrames20Frames shown at a stop. Range 1 to 200.
maxVariables50Variables listed per scope. Range 5 to 1000.
debugOutputChars4000 charsMax program output per result. When there's more, only the end is kept. Range 500 to 100000.
debugWaitMs30000 msMax 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).

OptionDefaultMeaning
geminiClitrueGemini CLI sign-in. The Gemini models, on the free tier for a personal account or with a Code Assist license.
antigravitytrueAntigravity sign-in. Gemini, Claude and GPT-OSS; once you're signed in, the list shows what the account can use.

If spec.jev is useful to you, star it on GitHub

A star helps more people find it. The code, the discussions and every release live in the repository.

Star on GitHub1