Synced from monorepo

Synced from monorepo

Changes:
- Shell: accept target response id on rewind execute
- Shell: stamp response id on chat user message chunks
- Worktree: optional rebuild and stale git registration cleanup in auto-GC
- Worktree: kind-aware auto-GC TTLs and config knobs
- Worktree: macOS process CWD scan and Unix PID liveness for GC guards
- Worktree: automatic throttled GC on startup (Linux age-based; non-Linux dead-only)
- Pager: add `[ui].combine_queued_prompts` to batch queued follow-ups
- Shell: stop overwriting user skills
- Tools: read markdown in `skills/` directories untruncated
- `/usage` shows per-session token and dollar usage in the TUI
- Security: prompt on environment-dumping `ps` variants
- Security: always-safe `kubectl` no longer runs arbitrary kubeconfig credential plugins without permission
- Tools: make scheduler deletion durable
- Shell: add relocation storage primitives
- Shell: give side model calls their own conversation ids
- Fix five workflow-runtime bugs (budget, pause, cancel, reconnect)
- Security: peel `env -S` / `--split-string` operands in the Bash permission gate (managed deny/ask)
- Pager: expose doctor in the TUI
- Security: block unauthorized RCE via abused safe commands
- Pager idle watcher cue: "1 subagent still running" instead of "watching · 1 subagent"
- Security: block `rg --pre` arbitrary code execution in auto-mode
- Voice: diagnose silent-mic failures (macOS permission) and add doctor/terminal-setup Voice section
- App builder deployer: `allow_forking` and `show_built_with_grok`
- Pager: stop stacking duplicate "Worked for" markers on parked turns
- Shell: support `max` as a distinct reasoning effort tier
- Tools: serialize background `/loop` fires on the whole work unit
- Shell: add working-directory relocation state primitives
- Proto: `ClientToolResult` and `ChatConfig` client-side tools
- Shell: model providers
- Chat: select App Builder product on the Build path
- Shell: attach author identity to feedback when the deployment opts in
- Doctor: fix for SSH wrap setup
- Workflow authoring skills: create-workflow and import-claude-workflow docs
- Add read-only grok doctor
- Sandbox: apply Landlock without a controlling TTY
- Pager: recover image paste over grok wrap on headless remotes
- Pager: make actions screen-mode aware
- Shell: resume sessions when the working directory moves
- Pager: centralize terminal diagnostics
- Workspace: gate inline shell file access
- Pager: centralize terminal probes
- Pager: edit minimal prompts in an external editor
- Pager: standardize backgrounding on Ctrl+B
- Shell: recap rides the parent turn's prompt cache
- Tools: add scheduler lifecycle version clock

Source-Revision: 0f4d7c91b8b2b408333f6de1e8a76cb8eaa71899
This commit is contained in:
grokkybara[bot] 2026-07-21 18:10:23 +00:00
commit 3af4d5d398
556 changed files with 56609 additions and 21892 deletions

View file

@ -1,13 +1,10 @@
# Slash Commands
Type `/` in the prompt to access commands. Each command runs an action immediately and autocompletes as you type.
Type `/` in the prompt to open the command menu. It fuzzy-matches as you type, and picking a command runs it immediately.
Slash commands come from two sources:
Commands come from two places: **shell builtins**, handled by the agent backend (xai-grok-shell), and **pager builtins**, handled by the TUI frontend (xai-grok-pager). Both show up in the same menu, and any enabled skill with `user-invocable: true` appears there too.
- **Shell builtins** -- handled by the agent backend (xai-grok-shell)
- **Pager builtins** -- handled by the TUI frontend (xai-grok-pager)
Both sets are available in the autocomplete menu. Skills installed via SKILL.md files also appear as slash commands.
Every command below lists its aliases where it has them. A few commands only appear when a feature or session state enables them; those cases are called out inline.
---
@ -15,70 +12,52 @@ Both sets are available in the autocomplete menu. Skills installed via SKILL.md
### `/new`
Start a new session, clearing the current conversation.
```
/new
```
Aliases: `/clear`
Start a fresh session and clear the current conversation. Alias: `/clear`.
### `/resume`
Open the session picker to load a previous session from disk.
```
/resume
```
Open the session picker to reload a previous session from disk.
### `/compact [context]`
Compress conversation history to save context window space. Optionally specify what to preserve.
Compress conversation history to reclaim context-window space. Pass a note to tell Grok what to keep:
```
/compact
/compact keep the auth implementation details
```
When the context window fills up, Grok auto-compacts at 85% usage (configurable via `[session] auto_compact_threshold_percent` in config.toml).
Grok also auto-compacts once the context window hits 85% (tune it with `[session] auto_compact_threshold_percent`).
### `/context`
Show context window usage and session stats: a categorical breakdown (system prompt, messages, reasoning/overhead, free), plus informational rows for tool definitions, the skills listing, and MCP server announcements with their estimated token cost.
```
/context
```
Show how the context window is being used: a category breakdown (system prompt, messages, reasoning and overhead, free space) plus informational rows for tool definitions, the skills listing, and MCP server announcements with their estimated token cost.
### `/session-info`
Show session details including model, turn count, and context usage.
```
/session-info
```
Show session details — model, turn count, and context usage. Aliases: `/status`, `/info`.
### `/fork`
Branch the current session into a new agent, preserving history up to this point.
```
/fork
```
Branch the current session into a new agent, keeping history up to this point.
### `/rewind`
Rewind the conversation to an earlier turn, discarding everything after it.
Roll the conversation back to an earlier turn and discard everything after it.
### `/edit-prompt`
In minimal mode, open an external editor for an empty composer. Grok resolves `$VISUAL`, then `$EDITOR`, then `vi`; command values may include quoted arguments. Saving replaces the draft without sending it, and saving an empty file clears it. The command is hidden outside minimal mode.
```
/rewind
/edit-prompt
```
To edit an **existing** draft when a terminal or multiplexer reserves `Ctrl+G`, open the command palette and select **Edit Prompt in External Editor**. That direct route preserves the existing text and refuses pasted, file-reference, or image chips without flattening them. Typing `/edit-prompt` into the composer necessarily replaces that input, so it starts from an empty draft.
### `/copy`
Copy the most recent response to the clipboard. Pass a number to copy the Nth-latest response. Pass a file path to write instead of using the clipboard (useful over SSH when the local clipboard is unreachable).
Every copy is also written to a backup file (`~/.grok/last-copy.txt` by default, or `GROK_COPY_FILE` if set), and the toast names that path so you always know where to retrieve the text — including when the clipboard cannot be reached (for example Apple Terminal over SSH) or the copy went out as an OSC 52 escape that this terminal couldn't be verified to apply.
Copy the most recent response to the clipboard. Pass a number to copy the Nth-latest response instead, or a file path to write the text to a file rather than the clipboard (handy over SSH, where the local clipboard is often unreachable).
```
/copy
@ -87,51 +66,35 @@ Every copy is also written to a backup file (`~/.grok/last-copy.txt` by default,
/copy 2 ~/exports/last-reply.md
```
Every copy is also written to a backup file — `~/.grok/last-copy.txt` by default, or `GROK_COPY_FILE` if set — and the toast tells you exactly where the text landed, so you can retrieve it even when the clipboard couldn't be reached or the copy went out as an OSC 52 escape this terminal couldn't confirm.
### `/export`
Export the current conversation to a file or the clipboard.
```
/export
```
Export the conversation to a file or the clipboard.
### `/quit`
Quit the application.
```
/quit
```
Aliases: `/exit`
Quit the application. Alias: `/exit`.
### `/home`
Exit the current session and return to the welcome screen.
```
/home
```
Aliases: `/welcome`
Leave the current session and return to the welcome screen. Alias: `/welcome`.
### `/rename`
Rename the current session.
Rename the current session. Alias: `/title`.
```
/rename new session title
```
Aliases: `/title`
---
## Model and Mode
### `/model <name>`
Switch to a different model. Accepts model IDs or display names (case-insensitive). For reasoning models you can also pass an effort level as a second argument:
Switch models. Accepts a model ID or display name (case-insensitive), and for reasoning models you can add an effort level as a second argument. Alias: `/m`.
```
/model grok-build
@ -139,92 +102,46 @@ Switch to a different model. Accepts model IDs or display names (case-insensitiv
/model Reasoning X high
```
Aliases: `/m`
### `/effort <level>`
Set reasoning effort on the **current** model without re-selecting it. Levels: `low`, `medium`, `high`, `xhigh`. Only works when the active model supports reasoning effort.
Set reasoning effort on the **current** model without reselecting it. Levels are `low`, `medium`, `high`, and `xhigh`, and it only applies when the active model supports reasoning effort.
```
/effort high
/effort low
```
### `/always-approve` and `/auto`
True **toggles** for the permission mode — both stay in the completion menu, and
running the active mode again turns it off:
Both are real toggles for the permission mode: they stay in the menu, and running the mode you're already in turns it back off.
| Command | When off | When already on |
|---|---|---|
| `/always-approve` | Skip all permission prompts | Back to ask |
| `/auto` | Classifier approves safe tools (dangerous ones may still prompt) | Back to ask |
Running the other command while one mode is on **switches** modes (for example,
`/auto` while always-approve is on switches to auto).
`/auto` is only offered when the auto permission-mode feature is enabled. You
can also change mode with `Shift+Tab` (cycle), `Ctrl+O`, or `/settings`.
```
/always-approve
/auto
```
Running one while the other is active switches modes — for example, `/auto` while always-approve is on switches to auto. `/auto` only appears when the auto permission-mode feature is enabled. You can also change mode with `Shift+Tab` (cycles Normal / Plan / Always-approve), `Ctrl+O`, or `/settings`.
### `/multiline`
Toggle multiline input mode. When enabled, `Enter` inserts a newline and `Shift+Enter` (or `Alt+Enter`) sends the message. Mid-turn, bare `Enter` on an empty composer still force-sends the top queued follow-up (send now).
```
/multiline
```
Aliases: `/ml`
Toggle multiline input. When it's on, `Enter` inserts a newline and `Shift+Enter` (or `Alt+Enter`) sends the message. Mid-turn, a bare `Enter` on an empty composer still force-sends the top queued follow-up. Alias: `/ml`.
### `/history`
Open the prompt-history search: fuzzy-search this session's prompts, newest first — type to filter, press `Enter`/`Tab` to drop a match back into the prompt.
Open prompt-history search: fuzzy-search this session's prompts newest-first, then press `Enter` or `Tab` to drop a match back into the prompt.
For quick recall, press `↑` on an empty prompt instead: the panel opens with your most recent prompt already filled into the input, `↑`/`↓` step through entries (each one lands in the input), `↓` at the newest entry closes the panel, and typing edits the recalled prompt in place.
```
/history
```
For quick recall, press `↑` on an empty prompt instead. The panel opens with your most recent prompt already filled in; `↑`/`↓` step through entries (each lands in the input), `↓` past the newest entry closes the panel, and typing edits the recalled prompt in place.
### `/compact-mode`
Toggle compact display mode. Reduces padding and visual spacing for denser output.
```
/compact-mode
```
Toggle compact display — less padding and tighter spacing for denser output.
### `/vim-mode`
Toggle vim-style scrollback keybindings (j/k, h/l, g/G, y/Y, …). When off
(default), bare-letter and `Shift+letter` keys in the scrollback focus the
prompt and type the character. Persists to `[ui].vim_mode` in `config.toml`.
```
/vim-mode
```
Toggle vim-style scrollback keys (`j`/`k`, `h`/`l`, `g`/`G`, `y`/`Y`, and so on). With it off (the default), a bare letter or `Shift+letter` in the scrollback just focuses the prompt and types the character. The setting persists to `[ui] vim_mode`.
### `/minimal` and `/fullscreen`
Reopen the current session in the other render mode. `/minimal` (offered in
fullscreen) switches to the experimental scrollback-native mode; `/fullscreen`
(offered in minimal; alias `/full`) switches back to the standard alt-screen
TUI. Both relaunch the pager on the same conversation for this session only —
they do not write `config.toml`. Descriptions and the relaunch banner tell you
how to switch back (`/fullscreen``/minimal`). The `--minimal` /
`--fullscreen` CLI flags are likewise session-scoped. To make plain `grok` open
in a given mode by default, use `/settings`**Default screen mode**, or set
`[ui] screen_mode` in `config.toml`.
```
/minimal
/fullscreen
```
Reopen the current session in the other render mode. `/minimal` (offered while you're in fullscreen) switches to the experimental scrollback-native mode; `/fullscreen` (offered while you're in minimal; alias `/full`) switches back to the standard alt-screen TUI. Both relaunch the pager on the same conversation for this session only — they don't touch `config.toml`, and the relaunch banner reminds you how to switch back. The `--minimal` / `--fullscreen` CLI flags are session-scoped the same way. To make plain `grok` open in a given mode by default, use `/settings`**Default screen mode** or set `[ui] screen_mode`.
### `/plan`
@ -236,46 +153,30 @@ Enter plan mode.
### `/view-plan`
Open the current saved plan preview. Aliases: `/show-plan`, `/plan-view`.
```
/view-plan
```
Open a preview of the current saved plan. Aliases: `/show-plan`, `/plan-view`.
---
## Memory
The `/flush`, `/dream`, and `/memory` commands require `--experimental-memory` or `GROK_MEMORY=1`. `/remember` is always available.
`/flush`, `/dream`, and `/memory` require memory to be enabled (`--experimental-memory` or `GROK_MEMORY=1`); `/memory` also needs a configured memory backend. `/remember` is always available.
### `/memory`
Browse, view, and manage your saved memories. Pass `on` or `off` to enable or disable memory.
Browse, view, and manage saved memories. Pass `on` or `off` to enable or disable memory. Alias: `/mem`.
```
/memory
/memory off
```
Aliases: `/mem`
### `/flush`
Save current session knowledge to memory immediately. Triggers an LLM-generated summary of the session's most important content.
```
/flush
```
Use this when you want to preserve important context before compaction or at any point in a session.
Save the current session's knowledge to memory right now, triggering an LLM summary of the most important content. Reach for it before compaction, or any time you want to lock in context.
### `/dream`
Run memory consolidation -- merge session logs into organized topics.
```
/dream
```
Run memory consolidation — merge session logs into organized topics.
### `/remember`
@ -289,47 +190,28 @@ Save a note to memory immediately, without waiting for an automatic summary.
## Hooks and Plugins
The `/hooks`, `/plugins`, `/marketplace`, and `/skills` commands open the same extensions modal on different tabs.
`/hooks`, `/plugins`, `/marketplace`, and `/skills` all open the same extensions modal, each on its own tab.
### `/hooks`
Open the extensions modal on the Hooks tab. From the modal you can view loaded hooks, add or remove custom hooks, and enable or disable them individually. The modal does not grant project trust -- see [10-hooks.md](10-hooks.md) for the trust model.
Open the extensions modal on the Hooks tab, where you can view loaded hooks, add or remove custom ones, and toggle them individually. The modal does not grant project trust — see [10-hooks.md](10-hooks.md) for the trust model.
```
/hooks
```
**Note:** The shell advertises individual `/hooks-list`, `/hooks-trust`, `/hooks-add`, `/hooks-remove`,
and `/hooks-untrust` commands. In the TUI pager, these are consolidated into the `/hooks` modal.
The shell also advertises individual `/hooks-list`, `/hooks-trust`, `/hooks-add`, `/hooks-remove`, and `/hooks-untrust` commands; in the TUI pager these are folded into the `/hooks` modal.
### `/plugins`
Open the extensions modal on the Plugins tab. From the modal you can view installed plugins, install new ones from the marketplace, and manage trust.
Open the extensions modal on the Plugins tab to view installed plugins, install new ones from the marketplace, and manage trust.
```
/plugins
```
The shell also supports subcommands (`/plugins list`, `/plugins install <source>`,
`/plugins uninstall <name>`, `/plugins update`). In the TUI, the `/plugins` modal
provides the same functionality with a visual interface.
The shell additionally supports subcommands (`/plugins list`, `/plugins install <source>`, `/plugins uninstall <name>`, `/plugins update`, `/plugins reload`). In the TUI, the modal does the same work visually.
### `/marketplace`
Open the extensions modal on the Marketplace tab to browse and install plugins.
```
/marketplace
```
### `/skills`
Open the extensions modal on the Skills tab to view installed skills.
```
/skills
```
---
## Media Generation
@ -344,7 +226,7 @@ Generate an image from a text description.
### `/imagine-video <description>`
Generate a video from an image or text description. Plans shots, generates source images, and animates them with `image_to_video`.
Generate a video from a text (or image) description. It plans shots, generates source images, and animates them with `image_to_video`.
```
/imagine-video a cat playing piano in a jazz club
@ -356,41 +238,72 @@ Generate a video from an image or text description. Plans shots, generates sourc
### `/loop [interval] <prompt>`
Run a prompt on a recurring interval. Specify the interval as `30m`, `1 hour`, or `every 2 days`. If you omit it, Grok prompts you.
Run a prompt on a recurring interval. Give the interval as `30m`, `1 hour`, or `every 2 days`; leave it out and Grok will ask.
```
/loop 30m check deploy status
/loop check deploy status every hour
```
Interval format: `Ns` (seconds, min 60), `Nm` (minutes), `Nh` (hours), `Nd` (days). Intervals under 60 seconds are raised to the 60-second minimum.
Intervals are `Ns` (seconds, minimum 60), `Nm` (minutes), `Nh` (hours), or `Nd` (days); anything under 60 seconds is raised to the minimum. Recurring tasks expire after 7 days, and you can cancel one with `scheduler_delete` using the job ID reported when the loop is created.
Recurring tasks auto-expire after 7 days. Cancel with `scheduler_delete` (the job ID is provided when the loop is created).
---
## Workflows and Goals
### `/goal`
Set, manage, or check an autonomous goal. Grok works across rounds and only marks the goal complete after an independent evidence review confirms the claim; if that review can't reproduce the result or has no usable evidence, the goal stays active or pauses with concrete gaps.
```
/goal Migrate the auth module to the new API
/goal status
/goal pause
/goal resume
/goal clear
```
Arguments are `<objective> [--budget <tokens>]`, or one of `status`, `pause`, `resume`, `clear`. The `--budget` here is a **token** budget for the goal run, separate from the agent-count budgets that workflows use. `/goal` appears when goal mode is enabled for the session. Which driver runs it depends on background workflows: with them on, the host evaluates each model round and runs adversarial verification on completion candidates; with them off, the legacy model-facing `update_goal` path reports progress and triggers verification.
### `/deep-research <query>`
Kick off a background research workflow. It plans a bounded set of questions, gathers structured claims with source evidence, cross-checks each claim on an independent verifier shard, and renders only the claims that survive, with their verified source locators. Failed shards, dropped claims, and researcher uncertainties are reported as coverage limitations, and the report is marked **Partial** whenever any remain.
```
/deep-research Compare the migration risks of PostgreSQL 17 and MySQL 9
```
The command returns right away — follow progress in `/workflows`, and the final report appears in the conversation on its own.
Model-launched workflows may set `agent_budget` on the `workflow` tool. It's an absolute cumulative cap on logical child-agent calls: every `agent()` call and every item in a `parallel()` panel spends one slot, while schema-correction retries don't. The default is 128, explicit values run 11,024, and a panel that would cross the remaining budget is rejected before any of its children launch. `budget()` reports the cap as `total`, admitted calls as `spent`, `reserved` (always zero), and `remaining`. Named slash launches use the default budget.
### `/workflow`
Launch a saved workflow, or manage a running one by the session-unique display name shown in `/workflows`. Launch the same workflow twice and the display names are numbered (`review-changes`, `review-changes-2`); you never need the internal run IDs.
```
/workflow review-changes {"target":"origin/main...HEAD"}
/workflow pause review-changes
/workflow resume review-changes
/workflow stop review-changes-2
/workflow save review-changes
```
Project workflows live in `.grok/workflows/*.rhai`; user workflows live in `~/.grok/workflows/*.rhai`. A same-process pause/resume continues the original immutable script, args, and `agent_budget` cap from committed host-call results — to iterate, edit the returned script copy and launch it as a new run.
A budget-limited run is different: it only resumes through a model/tool resume request that supplies an `agent_budget` above the admitted agent count. A bare `/workflow resume <name>` can't raise the cap, so it rejects budget-limited runs. Runs interrupted by a process restart aren't resumed at all, because external effects have no stable cross-process identity. And resume is not exactly-once: an external effect whose result wasn't committed before a same-process pause can run again.
### `/workflows`
Open the live workflows **run** dashboard — active and retained runs, not a catalog of saved definitions. Each row shows the run's display name, phase, agent roster, progress, and result. Inside a run's detail view, `p` pauses, `r` resumes an ordinary pause, and `x` stops. Budget-limited runs can't bare-resume: `r` returns the shell's rejection (raise the cap with a model/tool resume that passes a higher `agent_budget`), while `x` still stops. `s` saves the run's script, but it's hidden for known built-ins and numbered duplicate handles — for those, choose a new unique `meta.name` and save the edited script explicitly.
---
## Other
### `/goal`
Set, manage, or check an autonomous goal. Grok works toward the objective across turns and reports progress.
```
/goal Migrate the auth module to the new API
/goal status
```
Arguments: `<objective>`, `status`, `pause`, `resume`, or `clear`. **Availability:** appears only when the goal feature is enabled and the `update_goal` tool is in the session toolset.
### `/theme`
Switch the TUI color theme.
```
/theme
```
Aliases: `/t`
Switch the TUI color theme. Alias: `/t`.
### `/feedback [message]`
@ -402,11 +315,7 @@ Report an issue or send feedback.
### `/btw`
Send an aside to the agent without interrupting the current task. In minimal
mode (`--minimal`), the answer appears in a dismissible panel above the prompt.
**Esc** dismisses the panel; a finished answer is saved into native scrollback,
while a late response to a dismissed loading panel is dropped. Side Q/A is not
part of the main turn.
Send an aside to the agent without interrupting the current task. In minimal mode (`--minimal`), the answer shows up in a dismissible panel above the prompt: `Esc` dismisses it, a finished answer is saved into native scrollback, and a late reply to an already-dismissed panel is dropped. The side question and its answer aren't part of the main turn.
```
/btw also check the error handling
@ -416,33 +325,17 @@ part of the main turn.
Open the MCP servers management modal.
```
/mcps
```
### `/doctor`
### `/terminal-setup`
Show terminal capability detection and setup info — including color level, which themes are available, clipboard routes, and fix instructions for common issues (truecolor, tmux clipboard, keyboard protocol).
```
/terminal-setup
```
Aliases: `/terminal-check`, `/terminal-info`
Show the read-only terminal diagnostic report — color level, available themes, clipboard routes, live keyboard and screen evidence, and fixes for common issues. Aliases: `/terminal-setup`, `/terminal-check`, `/terminal-info`.
### `/release-notes`
View release notes for the current version.
```
/release-notes
```
Aliases: `/changelog`
View release notes for the current version. Alias: `/changelog`.
### `/docs`
Browse in-TUI How-to Guides, open online Build docs, or jump to a guide by title.
Browse the in-TUI How-to Guides, open the online Build docs, or jump straight to a guide by title. Aliases: `/howto`, `/guides`.
```
/docs
@ -450,19 +343,13 @@ Browse in-TUI How-to Guides, open online Build docs, or jump to a guide by title
/docs Getting Started
```
- Bare `/docs` (or `/docs how-to`) opens the How-to Guides picker
- `/docs web` opens https://docs.x.ai/build/overview in the browser
- `/docs <title>` opens a specific guide (case-insensitive title match)
Aliases: `/howto`, `/guides`
- Bare `/docs` (or `/docs how-to`) opens the How-to Guides picker.
- `/docs web` opens https://docs.x.ai/build/overview in your browser.
- `/docs <title>` opens a specific guide by case-insensitive title match.
### `/import-claude`
Open the Claude settings import modal to bring over `~/.claude` settings: permissions, environment variables, MCP servers, hooks, and paths.
```
/import-claude
```
Open the Claude import modal to bring over `~/.claude` settings: permissions, environment variables, MCP servers, hooks, and paths.
---
@ -470,21 +357,11 @@ Open the Claude settings import modal to bring over `~/.claude` settings: permis
### `/config-agents`
Open the agents modal to view and manage agent definitions, set the default agent, and switch the active one.
```
/config-agents
```
Aliases: `/agents`
Open the agents modal to view and manage agent definitions, set the default, and switch the active one. Alias: `/agents`.
### `/personas`
Manage personas -- create, edit, and delete personas. A subagent can apply a persona to shape its behavior.
```
/personas
```
Create, edit, and delete personas. A subagent can apply a persona to shape how it behaves.
---
@ -492,26 +369,19 @@ Manage personas -- create, edit, and delete personas. A subagent can apply a per
### `/login`
Log in or re-authenticate with your account without leaving the session.
```
/login
```
Log in or re-authenticate without leaving the session.
### `/logout`
Log out and return to the login screen.
```
/logout
```
### `/usage`
View credit usage or manage billing.
View credit usage or manage billing. Alias: `/cost`.
```
/usage
/usage manage
```
### `/privacy`
@ -524,11 +394,7 @@ Show or toggle privacy and data-retention status.
/privacy opt-out
```
Does not change `[features] telemetry`, `trace_upload`, or external OTEL settings.
See [Monitoring Usage](24-monitoring-usage.md#related-settings).
On team accounts, only a team admin can toggle privacy with `/privacy`.
Team admins can also enable or disable Zero Data Retention (ZDR) for their team:
[How to enable ZDR](https://docs.x.ai/developers/faq/security#how-to-enable-zdr).
`/privacy` doesn't touch `[features] telemetry`, `trace_upload`, or your external OTEL settings — see [Monitoring Usage](24-monitoring-usage.md#related-settings). On team accounts, only a team admin can toggle privacy this way, and admins can also enable or disable Zero Data Retention for the team ([how to enable ZDR](https://docs.x.ai/developers/faq/security#how-to-enable-zdr)).
---
@ -536,50 +402,33 @@ Team admins can also enable or disable Zero Data Retention (ZDR) for their team:
### `/settings`
Open the settings modal to view and change configuration interactively.
```
/settings
```
Aliases: `/config`, `/preferences`, `/prefs`
Open the settings modal to view and change configuration interactively. Aliases: `/config`, `/preferences`, `/prefs`.
### `/timestamps`
Toggle message timestamps on or off.
```
/timestamps
```
---
## Skills as Slash Commands
Any enabled skill with `user-invocable: true` in its SKILL.md frontmatter appears as a slash command. (A skill turned off via `/skills` is not advertised.) For example, if you have a skill at `~/.grok/skills/commit/SKILL.md`, you can invoke it with:
Any enabled skill with `user-invocable: true` in its SKILL.md frontmatter shows up as a slash command. (Turn a skill off via `/skills` and it stops being advertised.) So a skill at `~/.grok/skills/commit/SKILL.md` runs as:
```
/commit fix typo in README
```
Skills from plugins also appear as slash commands. When multiple skills share the same name (across scopes), use the qualified form:
Skills from plugins work the same way. When two skills share a name across scopes, qualify it:
```
/local:commit # Project-scoped skill
/user:commit # User-scoped skill
```
Built-in slash commands always take priority over skills with the same name. If you name a skill "compact", typing `/compact` will run the built-in compact command, but `/local:compact` will invoke the skill.
Built-in commands always win over a skill with the same name. Name a skill "compact" and `/compact` still runs the built-in — but `/local:compact` invokes the skill.
---
## Autocomplete
The slash command menu supports fuzzy search. Start typing after `/` to filter available commands. The menu shows:
- Command name
- Description
- Argument hint (if the command accepts arguments)
- Source (builtin, skill scope, plugin name)
Press `Tab` or `Enter` to select a command from the autocomplete menu.
The menu supports fuzzy search: start typing after `/` to filter. Each entry shows the command name, its description, an argument hint when it takes arguments, and its source (builtin, skill scope, or plugin name). Press `Tab` or `Enter` to accept the highlighted command.