The conversation
quox with no arguments opens the conversation.
quoxquox -p staging -n release-checksquox --verbose full| Option | What it does |
|---|---|
-p, --profile <name> | Use a signed-in profile. A profile that does not exist is an error, never created on the fly. |
-n, --name <name> | Name this session. See Sessions and agents. |
--verbose off|on|full | How much protocol detail to show. Bare --verbose means on. |
--demo | Play a simulated journey. No server, nothing real runs. |
--no-clear | Do not clear the screen on start. |
--service-key | Allow an ambient QUOX_SERVICE_KEY when the profile has no login. Never used without this flag. |
Type a message and press Enter. CommanderQ, the default agent, routes it to the right specialist. Type /help for the list your version supports, or /help esc for detail on one key.
These tables are generated from the client’s own /help registry, so they match what your terminal shows at this version.
Talk
| Key | What it does |
|---|---|
just type | ask Quox anything; CommanderQ routes it to the right agent |
Enter | send; while Quox works, steer the running turn if this server supports it, else queue it Idle: sends. During a turn: steers when the server supports it (shown here once known), delivered at the next model boundary (never kills a running tool). If the server cannot steer, or the turn already finished, it is queued instead and you are told. |
Tab | queue your message to run after this turn Queued messages show above the composer. Up (empty composer) pulls the last one back to edit. After an interrupt they wait; press Enter on an empty composer to send the next one. |
Esc | ask the server to stop the turn (idle: Esc Esc clears the draft to history) Asks the server to stop before the next model call or tool; you see "stopping" until the server confirms. A tool already dispatched finishes and is reported, never hidden. Until the server route exists the stream is aborted locally and you are told work already sent may still finish. |
Shift+Enter / Ctrl+J | new line in the composer (a trailing \ then Enter also works) |
Ctrl+G | edit the draft in $EDITOR |
Ctrl+S | stash the draft; on an empty composer, restore it |
Ctrl+_ | undo in the composer |
paste | long pastes collapse to [Pasted text #N +L lines] and expand on send |
Ctrl+C | clear the draft; during a turn interrupt; twice when idle quits |
Context
| Key | What it does |
|---|---|
status line | profile · org · agent · model · mode, under the composer |
Generated from the quox client registry at 733dffb78 (quoxcli 0.3.0).
Enter while Quox is working. It steers the running turn when your server supports steering, delivered at the next model boundary, and never kills a running tool. When the server cannot steer, or the turn has already finished, your message is queued instead and Quox tells you so.
Esc. It asks the server to stop. You see “stopping” until the server confirms. A tool already dispatched finishes and is reported, never hidden.
After each turn a grey summary line shows how long it took, how many tools ran and how many approvals it raised.
/quit (or /exit) leaves. Work already sent to the server keeps going.
Slash commands
Section titled “Slash commands”Approvals
| Command | What it does |
|---|---|
/approvals | list what is waiting for you |
/approve N | approve item N from the list Run /approvals first. Mid-turn approval cards also take a (approve), d (deny), o (open); they arm after 300 ms and never default to approve. |
/deny N | deny item N from the list |
Skills
| Command | What it does |
|---|---|
/skills [name] | list your org's governed skills, or show one as a card Lists your org skills (reusable procedures an agent follows; not Crystals, which are deterministic replays) with edition and one-line description. /skills <name> shows its card: purpose, version and review state, tests (results only when run-tests recorded them), the agents it is for, where it came from, recorded use, and how to run it. |
/skill <name> [args] | ask Quox to run a skill (governed: approvals still apply) Sends "Run the skill <name> with: <args>" as a normal turn, so CommanderQ runs it through the usual governed path. Nothing is executed from here, and approval cards work as always. |
/rules [files|off|on|N] | which rules win: advisory QUOX.md, the dev pack, enforced server policy /rules shows the precedence: QUOX.md and the dev pack only guide; armed governance policies on the server are enforced and win. /rules files shows the QUOX.md text. QUOX.md in this directory and parents up to the git root, plus ~/.quox/QUOX.md, are sent with each turn as your rules. World-writable files and symlinks leaving your home or repo are ignored. /rules N shows page N. |
/workflow <name|id|run> | the step flow of a workflow's latest run (or one run): state, timings, human gates Steps come from the workflow definition and each state and duration from that run's recorded envelopes. A reached human gate shows amber. Enter on a workflow row in the roster shows the same flow. |
/crystal <workflow> | is this workflow eligible to become a Crystal? checked against the real gate Computed from the workflow's recorded runs with quoxflow's crystalliser rule: at least 3 runs, at least 80% successful, one action sequence. Says how many more successful runs are needed. |
Conversation
| Command | What it does |
|---|---|
/clear also /new, /reset | fresh conversation and a clear screen; rules and memory kept, /resume goes back Clears the screen and starts a new conversation. Your QUOX.md rules, attached agent, model choice and Quox memory stay as they are. The previous conversation is kept on the server: /resume lists it. |
/resume [id|name] | pick a recent conversation and carry on where it left off Alone: a picker of your recent conversations (title, agent, age); Up/Down and Enter resume, Esc cancels. With an id (or the start of one) or a /rename name it resumes directly. The last turns are shown as history and your next message continues that conversation. Also at launch: quox --resume [id|name] or quox --conversation <id>. |
/compact [show] | summarise the conversation on the server, keeping decisions The server summarises this conversation with your AI provider, keeping decisions, and the summary becomes the start of the conversation for later turns. Shows the token change and the first lines of the summary; /compact show prints all of it. Refused while a turn runs, and when the org has not given AI processing consent. Asking "compact this conversation" in words only suggests it. |
/consent [grant [provider]] | AI data sharing consent: see where you stand, or give your OK and carry on Cloud AI providers (OpenAI and other hosted ones) receive your messages and tool results, so Quox needs your OK first; it is personal, not an admin setting. /consent shows where you stand. /consent grant [provider] records your OK (the same as quox consent grant --provider <name>, or Settings > Privacy in the dashboard) and, if a message just failed for lack of it, sends that message again. A local model (Ollama) never needs it. |
/help [command] | this reference, or detail for one command or key |
/note <text> | jot an observation for the dev observer (also: // text); not sent to Quox Records your text in the dev transcript only: not sent to the model or the server, no turn, not in chat history. Needs dev transcripts on (touch ~/.config/quox/dev-transcripts). Up to 2000 characters. |
/copy [N|code] | copy the last answer (raw markdown) to the clipboard; N = Nth-last, code = last code block Uses the OSC 52 terminal escape (works over SSH in most terminals; wrapped for tmux). Needs a terminal that allows OSC 52. Mouse selection is untouched: select and copy with your terminal as usual. |
/dragon [explain|ask [question]|sleep|fly|hero|fire|classic] | the Q comes alive; /dragon explain gives the simplest possible explanation of the last output, /dragon ask [question] answers one question just as simply, /dragon sleep is a katakana screensaver (any key wakes) Plain /dragon plays the dragon (googly eyes, a talking smile, tail sway and whip, then fire from its mouth); classic and hero are the same show, /dragon fire is the breath alone. explain and ask are ordinary turns on whichever AI you have selected (tools and approvals still apply); the answer stays in the conversation as "Dragon explains" or "Dragon answers". With no AI connected you get the usual connect card. /dragon ask with no question waits for your next line. /dragon sleep hides the screen under katakana with the dragon asleep; any key wakes it and is not typed, an approval wakes it, Ctrl+C quits. It only changes what is drawn, never the conversation. Quiet motion or NO_COLOR shows a still screen. |
/dragon-fly | the dragon flies across the screen, wings beating (same as /dragon fly) One 9 second pass of the dragon in flight, wings beating; Esc stops it early. It only changes what is drawn, never the conversation. Quiet motion or NO_COLOR shows a single still frame instead. |
/sound [profile|test] | earcons for approvals, failures and long turns: Silent | Minimal | Operational | Full Same setting as the dashboard (your account's soundProfile). Minimal (default) sounds for approvals, critical alerts and failures; Operational adds a short tick when a turn over 20 s finishes or the terminal is in the background. Over SSH only the terminal bell rings, for approvals and critical alerts. QUOX_SOUND=off mutes this terminal; --print never makes sound. |
/tip | a "did you know" tip about something Quox can do on this install Shows one tip at a time and rotates through all of them before repeating. Only features that are shipped (stable or beta) and ready on this server are offered, and things you already use are skipped. One tip also shows under the greeting on launch. /tip-settings off stops them. |
/tip-settings [off|core|all] | tips: off = none, core = free features only, all = everything shipped (default); saved on this profile Alone shows the current setting. Saved to your CLI profile, so it survives restarts. core limits tips to the free tier; all includes plugin features your install can use. |
/about | who we are, terms, privacy, licence and docs links |
/quit also /exit | leave; finished work is kept and /resume picks the conversation up Idle: leaves at once; the conversation stays on the server for /resume (or quox --resume). During a turn it asks first, because leaving disconnects the turn and the server stops it before its next step (a tool already running finishes and is recorded). /quit again within 5 s leaves anyway. |
/restart | restart into the latest installed quox and resume this conversation Re-runs the quox on your PATH in this terminal with the same arguments and profile, plus --resume for this conversation. During a turn it asks first: restarting disconnects the turn and the server stops it before its next step (this server cannot reattach a running turn yet); /restart again within 5 s goes ahead. When a newer build is installed than the one running, a dim line says so (checked at most once a minute, no network). |
/gripe <text> also /gripe! | file a GitHub issue through the GRIPE agent; shows it first, /gripe! files at once The same governed path as `quox gripe`: the GRIPE agent files the issue through your org's GitHub connector (default repo quoxai/quox). /gripe <text> shows what would be filed and asks; /gripe! (alone, within 2 minutes) files it, or /gripe! <text> files straight away. The issue link is shown when one comes back; with no link it says so and treats it as not filed. |
/sessions [all] | your recent conversations; /sessions all shows everything live in your org /sessions all is the same overview as `quox sessions`: every live tmux session, conversation, held slot and running objective, loop or workflow in your org, grouped by agent, with how to attach. Bare /sessions lists recent conversations from the server. Names set with /rename are kept on this machine (~/.config/quox/sessions.json) because the server has no rename route yet. |
/dashboard [page] | open the web dashboard already signed in (one-time link); pages: sessions approvals agents lucid inbox seo settings Creates a sign-in link for this profile that is valid for 10 minutes and works once, then opens it in your default browser. Over SSH it only prints the link (the browser would open on the wrong machine); terminals that support hyperlinks make it clickable. The link is a credential: it is shown on screen only and never written to the dev transcript or history. An older server without one-time links gets the plain dashboard URL and you sign in as usual. Also: quox dashboard [page]. |
/rename [name] | name this session (shown in the top rule); alone shows the current name Also settable at launch with quox -n <name>. The name is kept on this machine, keyed by conversation, and shown in /sessions. |
/slot <name> | give this session a slot address (checks out the slot) Checks out the slot, creating it if needed, as `quox slot checkout <name> --create --session <session>` does; typing it is your consent. Discord replies are not relayed into this window yet (no slot wait loop here). |
/attach [agent] | send your turns to a specific agent; alone shows the current one The agent name is checked against your org's agent list. Later turns go to that agent (the chat stream assistant field) until /detach. |
/detach | back to CommanderQ |
Connect
| Command | What it does |
|---|---|
/login | sign in again without leaving quox (email, masked password, MFA code if asked) Opens a card here: your email (prefilled with the last one this profile used), then a masked password, then your authenticator code if the server asks for one. It is the same sign-in as quox login, so status, approvals and the digest come back without a restart. The password is never echoed, logged or saved. CLI sign-ins last 30 days, unless your admin set a shorter limit in the session policy. |
/connect [provider] | see what is connected; /connect openai adds a key safely Alone: AI providers (OpenAI, Claude API, Ollama) and the integrations in your org vault, with real status from the server; anything it cannot read shows ? unknown. /connect openai (or anthropic) opens a secure card: paste the key, Enter tests it with the provider and saves it to your org vault as the default; Esc cancels. Keys typed there never reach chat, history or transcripts. A key pasted into the composer is never sent. |
/hosts add | add a host to your fleet (works without an AI); /hosts lists them /hosts add prints the one command to run on the machine you want to add (the QuoxAgent installer served by your Quox, with a --host-id of your choice). /hosts lists the hosts your Quox knows, the same as quox fleet hosts. Neither needs an AI connected. |
/capabilities [name] | what this Quox can do here: ready, needs setup, not available, planned Asks the server (GET /api/v1/capabilities), which checks real service health, your plan, plugin install state and connected providers. Each gap says why and how to set it up; /capabilities <name> gives the one-line offer for one. If the server cannot answer, nothing is assumed. |
Verbose
| Command | What it does |
|---|---|
/verbose off|on|full | protocol lines: off = receipts only, on = compact, full = adds thinking on (default) shows compact AEE / AOCL / WARD lines as they happen. off collapses to the receipt line. full adds the thinking stream. |
/proof [envelope] | the evidence chain for the last tool call: AEE, AOCL, tool, WARD Each link is read back from the server and drawn confirmed only when the read says so. WARD is the server-verified inclusion receipt; it can be slow on a large chain and is bounded, so a link may stay open. |
/reconcile | check tool calls that ended with effect unknown against the server's record |
Context
| Command | What it does |
|---|---|
/org [switch <name|id>] | list your orgs (current marked), or switch this session to another one /org lists the orgs your login belongs to. /org switch <name or id> matches loosely, asks you to confirm with /org yes, then re-scopes the login (the same exchange as quox org switch) and starts a new conversation in that org; the status line shows the org. A switch only succeeds for orgs you are a member of; the server decides. |
/status | profile, org, server and its health, model, agent, slot, session, version The provider and model shown are what the server last reported running (turn.started), not what was asked for. Server health is checked live. Asking "what is my status" in words prints the same panel as a tip. |
/cost also /usage | tokens and cost per model for this session, from real usage Counts only what the server reported on turn.finished (input, output and cache tokens, cost when the provider gives one). Cost stays blank when the server did not report it, and says so; nothing is estimated. Asking "what is this costing" prints the same panel. |
/context | model, conversation tokens, rules, skills, memory and the attached agent Conversation tokens are the sum the server reported for this conversation in this session. Skills and memory are real calls to your server; anything it cannot answer shows ? with the reason. Asking "how much context have we used" prints the same panel. |
/doctor | the quox doctor checks plus chat checks, as rows Runs the same checks as `quox doctor` (services, auth token, CLI version) in this process, then chat checks: the chat routes answer, a provider is connected, the capability contract. |
/server | your self-hosted install: version, health per service, disk, ports, last update The same read-only panel as `quox server status`, for the install Getting started recorded (or the one the running containers belong to). Changing the server is a terminal verb, never a chat action: quox server update (backup first, rolls back on failure), quox server rollback, quox server uninstall, quox server doctor, quox server diag. Each takes --dry-run to show the plan first. |
/config also /settings | settings: theme, motion, verbose, model; saved on this profile An interactive card: Up/Down pick a setting, Left/Right or Space change it (saved at once to this CLI profile), Enter on Model opens /model, Esc closes. Theme replaces the env-only QUOX_THEME; if QUOX_THEME is set in your shell it still wins and the card says so. |
/model [provider [model] [compact|full]|auto] | see what is connected and choose the provider/model for your next turns Alone: auto, OpenAI, Claude API and Ollama with real status from your org vault (the same source as /connect). /model openai, /model openai gpt-5.4-mini, /model anthropic, /model auto (server policy). The choice is saved for this profile (no keys) and sent with each turn; the server decides, and the status line shows what it actually ran. A provider that is not connected is refused with a /connect offer; if the server runs something else, you are told once. quox --provider openai does the same for one run. A trailing compact or full picks the prompt profile: compact is a short system prompt for small or local models (the default on Ollama, LM Studio and vLLM), full is the default elsewhere; --prompt-profile does the same for one --print run. |
Awareness
| Command | What it does |
|---|---|
/roster [all] | show or hide the live roster under the status line; all includes background work The roster lists what needs you: pending approvals, then work you started (objectives, loops, manual workflows). Scheduled and event-driven workflows are hidden; background failures show once per workflow in the bar below. /roster all shows everything. Refreshed every 15 s from the server. Down on an empty composer focuses it; Enter peeks, s asks to stop (y confirms), Esc returns. A source the server cannot answer shows nothing and is named here. |
/agents <name> | an agent's card: role, tools, slot, last action and its WARD witness |
/memory <query> | facts Quox remembers, each with where it came from, age, trust and conflicts |
/sitrep | the situation now: approvals waiting, what needs you, running work, what Quox cannot see Read from the server, no model call: approvals waiting (your Approvals inbox), what needs you from the LUCID situation (by urgency), work in motion, and the sources LUCID cannot see (silent, failing or not connected). A part the server cannot answer is named on the "Can't see" line, never shown as empty. Does not move your LUCID cursor. /away is the "since you were last here" digest. Asking "give me a sitrep" suggests it. |
/away [since] | what happened while you were away, and what Quox cannot see A factual digest from the server since you last used quox on this profile (or since 90m, 3h, 2d, or an ISO time): approvals waiting and resolved, objectives and workflows finished or failed, LUCID alerts, new Qortex decisions, failed turns and agent activity, each with its source and time. Sources that could not be read or went silent are named on a "Can't see" line. Nothing is summarised by a model. At launch, after more than 2 h away, a short card shows the top 5. Asking "what did I miss" suggests it. |
/observers | LUCID situation, what changed since you last looked, what Quox records about its own learning Facts only, read from persisted data: the LUCID situation (without moving your cursor), recent changes, lessons taught, and the reflect / learn / insight counters. Nothing is summarised by a model. |
Generated from the quox client registry at 733dffb78 (quoxcli 0.3.0).
A few worth knowing by name:
/modelshows which AI providers are connected and picks the one for your next turns. The server decides, and the status line shows what actually ran./capabilitiesasks your Quox what it can do here: ready, needs setup, not available, or planned, with how to set up each gap./copyputs the last answer (or its last code block) on your clipboard./soundsets the earcons for approvals, failures and long turns. It is the same setting as the dashboard./notejots an observation for the dev observer. It is not sent to Quox./dragonbrings the Q to life for a few seconds, and/dragon firebreathes fire./dragon-flysends the dragon flying across your terminal./dashboardopens the web dashboard already signed in, through a one-time link that lasts 10 minutes. Over SSH it prints the link instead of opening a browser.
Managing the conversation:
/clearstarts a fresh conversation on a clear screen. Your rules, agent, model choice and memory stay, and the old conversation is kept on the server./resumepicks a recent conversation and carries on where it left off. Give it an id or a/renamename to go straight there./compacthas the server summarise the conversation, keeping decisions, so later turns start from the summary./compact showprints the whole summary./restartre-runs the latest installedquoxin this terminal and resumes this conversation. During a turn it asks first./gripe <text>files a GitHub issue through the GRIPE agent, the same governed path asquox gripe. It shows what it would file and asks before filing.
Knowing where you stand:
/sitrepreads the situation from the server, with no model call: approvals waiting, what needs you by urgency, work in motion, and the sources Quox cannot see./awayis a factual digest of what happened since you last used Quox on this profile (or since a time you give, like3h), including what it could not see./servershows your self-hosted install: version, health per service, disk, ports and last update. It only reads; changing the server is a terminal command, never a chat action./statusshows your profile, org, server and its health, model, agent and version. The model shown is what the server reported running, not what was asked for./costcounts tokens and cost per model for this session, only from what the server reported. When the server gives no cost, it stays blank and says so./contextshows the model, conversation tokens, rules, skills, memory and the attached agent./doctorruns thequox doctorchecks plus chat checks, as rows./loginsigns you in again without leavingquox: your email, a masked password, and your authenticator code if the server asks. It is the same sign-in asquox login, and the password is never echoed, logged or saved./consentshows whether you have given your OK for a cloud AI provider (such as OpenAI) to receive your messages and tool results./consent grant <provider>records it, and resends a message that failed for lack of it. A local model (Ollama) never needs it./orglists the organisations your login belongs to./org switch <name>moves this session to another one after you confirm with/org yes, and starts a new conversation there./configopens a settings card for theme, motion, verbose and model, saved on this profile.
Tips and hosts:
/tipshows a “did you know” tip about something Quox can do on this install. It only offers features that are shipped and ready on your server, skips the ones you already use, and rotates through them all before repeating./tip-settingssets which tips you get:off,core(free features only) orall(the default). It is saved on this profile./hosts addprints the one command to run on a machine you want to add to your fleet./hostslists the hosts your Quox knows. Neither needs an AI connected.
Agents, memory and workflows:
/agents <name>shows an agent’s card: role, tools, slot, and its last action with the WARD witness./memory <query>lists facts Quox remembers, each with where it came from, its age, trust and conflicts./workflow <name>draws the steps of a workflow’s latest run with state, timings and human gates./crystal <workflow>checks whether a workflow can become a Crystal, against the real rule: at least 3 runs, at least 80% successful, one action sequence.
Checking the evidence:
/proofwalks the evidence chain for the last tool call (AEE, AOCL, the tool, WARD), reading each link back from the server. A link only shows as confirmed when the read says so./reconcilechecks tool calls that ended with their effect unknown against the server’s record.
Planned
Section titled “Planned”These are listed under “Coming” in /help and refuse to run until they are built.
Conversation
| Command | What it does |
|---|---|
/peek <id> | look up an envelope, task or agent by id |
/aside | a read-only side question |
Context
| Command | What it does |
|---|---|
/profile | switch profile or org without leaving |
Generated from the quox client registry at 733dffb78 (quoxcli 0.3.0).
| Key | What it does |
|---|---|
@mention | complete agents, hosts, tasks and receipts |
Generated from the quox client registry at 733dffb78 (quoxcli 0.3.0).
Approvals
Section titled “Approvals”When an action needs a human, a card appears in the conversation with the action, its scope and its risk. Press a to approve, d to deny, o to open it in the dashboard.
These single keys act only when your draft is empty, or after you press Tab to focus the card, so a stray a in a sentence cannot approve anything. Keys arm after 300 ms, nothing defaults to approve, and Enter never approves.
You can also approve later with /approvals, then /approve N or /deny N. Pending approvals also come first in the roster.
Protocol lines
Section titled “Protocol lines”Quox shows what the platform did, not only what the model said. Tool rows read as one line each: family, verb, result.
| Mode | Shows |
|---|---|
off | Collapses to the receipt line. |
on (default) | Adds compact lines for the envelope (AEE), policy checks (AOCL) and the witness record (WARD) as they happen. |
full | Adds the thinking stream. |
Set it at start with --verbose, or during a session with /verbose.
Receipts
Section titled “Receipts”Actions Quox takes end with a receipt line, which can show as pending until the witness record lands. The CLI has a verb to check one receipt against the witness chain, quox governance ward verify --envelope <id>. We have not recorded that flow for this site yet.