Quey is available on desktop

Configuration

Configure Quey through environment variables in your .mcp.json file. These control auto-run behavior and agent options. Quey supports three agent providers — Claude Code, Codex, and Cursor — and most of these variables only apply to the first two, since Cursor reads captures directly through MCP tools with no local process to configure.

Tip
Set variables in the env block of your .mcp.json — they're scoped to the project and don't pollute your shell.

Environment variables

VariableDefaultApplies toDescription
QUEY_AUTO_RUN1Claude, CodexOn by default — the MCP runner auto-executes agents when captures arrive, as long as QUEY_CODEX_CWD is set. Set to 0 to disable auto-run entirely. Cursor ignores this — it always runs auto-run-free through MCP.
QUEY_CODEX_CWDClaude, CodexAbsolute path to the repo the agent should edit. Required for auto-run to do anything — without it, captures just record an error. Despite the name, this is read for both the Claude and Codex runners — not Codex-specific.
QUEY_CODEX_CMDcodexCodex onlyOverride the command used to invoke Codex. Useful if codex isn't on your PATH.
QUEY_CODEX_MODELcodex-mini-latestCodex onlyModel to pass to Codex. Use a larger model for complex multi-file edits. Has no effect when the capture targets Claude.
QUEY_CODEX_FULL_AUTO1Codex onlyPass --full-auto to Codex, allowing edits without per-write prompts. Set to 0 for prompted mode.
QUEY_CODEX_USE_SDK1Codex onlyUse the Codex SDK (warm threads) instead of one-shot CLI runs. Set to 0 to force CLI mode.
QUEY_SNAPSHOT_MODEdeferClaude, CodexWhen to snapshot the workspace for rollback: full (before each run), defer (after), or off (never).
Note
Approval mode (smart / alwaysAllow) isn't set through an environment variable — it's chosen per capture from the Agent panel's dropdown in the toolbar. See Approval modes.

Full example

A minimal .mcp.json with defer snapshots — auto-run is already on by default, so QUEY_CODEX_CWD is the only variable you need to set. This works whether the capture targets Claude Code or Codex, since QUEY_CODEX_CWD and QUEY_SNAPSHOT_MODE are shared across both runners:

.mcp.jsonjson
{  "mcpServers": {    "quey": {      "command": "npx",      "args": ["-y", "@quey/mcp", "server"],      "env": {        "QUEY_CODEX_CWD": "/Users/you/projects/myapp",        "QUEY_SNAPSHOT_MODE": "defer"      }    }  }}

If you're auto-running Codex specifically, add the Codex-only variables on top:

.mcp.jsonjson
{  "mcpServers": {    "quey": {      "command": "npx",      "args": ["-y", "@quey/mcp", "server"],      "env": {        "QUEY_CODEX_CWD": "/Users/you/projects/myapp",        "QUEY_SNAPSHOT_MODE": "defer",        "QUEY_CODEX_MODEL": "codex-mini-latest",        "QUEY_CODEX_FULL_AUTO": "1",        "QUEY_CODEX_USE_SDK": "1"      }    }  }}
Note
QUEY_CODEX_CWD must be an absolute path. Relative paths will cause the runner to look in the wrong directory.