# Modes and Commands

The TUI has pager-local slash commands, plus a smaller set provided by `xai-grok-shell`. User-invocable skills also appear as slash commands.

In the TUI, `Shift+Tab` cycles session modes.

## Modes

### Plan

Plan mode is for planning first. When it is active, write tools are blocked except for the session plan file.

Use it when you want Grok to sketch the approach before it starts making changes. Use `/plan` to view the current session plan.

Plan mode keeps the working plan visible in the TUI.

It can also stop to ask a clarifying question before edits.

### Always-approve

Always-approve skips permission prompts for tool calls.

You can start in this mode with:

```bash customLanguage="bash"
grok --always-approve
```

You can also toggle it from the TUI with `/always-approve`.

### Approval in config.toml

Set the default approval behavior in `~/.grok/config.toml`:

```text
[ui]
approval_mode = "always-approve"
```

Use `approval_mode = "ask"` for prompts on each tool call, or `approval_mode = "always-approve"` to skip them. The default is `ask`.

Put this in `~/.grok/config.toml`, not project-scoped `.grok/config.toml`.

## Core TUI commands

The command palette groups session, context, model, and tool actions.

Use `/context` to check current context usage.

| Command | What it does |
| ------- | ------------ |
| `/quit` | Quit the application |
| `/home` | Return to the welcome screen |
| `/new` | Start a new session |
| `/load` | Resume a previous session |
| `/rename <title>` | Rename the current session |
| `/share` | Share the current session via URL |
| `/session-info` | Show session info |
| `/context` | View context usage |
| `/model <name>` | Switch the active model |
| `/always-approve` | Toggle always-approve mode |
| `/multiline` | Toggle multiline input |
| `/compact [context]` | Compact conversation history |
| `/compact-mode` | Toggle denser UI layout |
| `/theme [name]` | Switch the color theme |
| `/feedback [text]` | Send feedback about the current session |
| `/plan` | View the current session plan |
| `/btw <question>` | Ask a side question without interrupting |
| `/hooks` | Open the hooks UI |
| `/plugins` | Open the plugins UI |
| `/mcps` | Show MCP server status |
| `/imagine <prompt>` | Generate an image from text |
| `/imagine-video <prompt>` | Generate a video from text |

## Skills as commands

Any user-invocable skill can also appear as a slash command, for example `/<skill-name>`.

If names collide, use the qualified form, such as `/local:commit`.
