> For the complete documentation index, see [llms.txt](https://docs.codemate.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.codemate.ai/cora-cli/reference.md).

# Reference

Every command and every keyboard shortcut in one place.

## Command reference

Type `/` in the interface to browse these; `/help` prints the list.

### Getting your bearings

<table data-search="false"><thead><tr><th>Command</th><th>What it does</th></tr></thead><tbody><tr><td><code>/help</code></td><td>List every command</td></tr><tr><td><code>/status</code></td><td>Mode, project folder, project briefing, linked workspace, remote files, session, message count, connection</td></tr><tr><td><code>/mode</code></td><td>Show the four modes and which is active (<strong>Shift+Tab</strong> switches)</td></tr><tr><td><code>/profile</code></td><td>Who you are signed in as</td></tr><tr><td><code>/context</code></td><td>How full the context window is, and what the session has cost</td></tr><tr><td><code>/diff</code></td><td>What the last turn changed, files, and how many lines each way</td></tr><tr><td><code>/todo</code></td><td>CORA's checklist for this session</td></tr></tbody></table>

### Doing and undoing

| Command   | What it does                                                                                     |
| --------- | ------------------------------------------------------------------------------------------------ |
| `/revert` | Open the rewind picker go back to an earlier prompt, code and conversation, or conversation only |

### Conversations

| Command              | What it does                                            |
| -------------------- | ------------------------------------------------------- |
| `/new`               | Start a fresh conversation                              |
| `/fork`              | Branch this conversation, keeping both                  |
| `/sessions [search]` | Browse past conversations                               |
| `/archive`           | Archive this conversation (it stays on disk)            |
| `/compact`           | Summarise the conversation so far, keeping recent turns |

### Setting CORA up

<table data-search="false"><thead><tr><th>Command</th><th>What it does</th></tr></thead><tbody><tr><td><code>/init</code></td><td>Survey the project and write <code>AGENTS.md</code></td></tr><tr><td><code>/settings</code></td><td>Which tools may run without asking, in this project</td></tr><tr><td><code>/mcp</code></td><td>Manage outside tool connections</td></tr><tr><td><code>/remote</code></td><td>Files in your CodeMate storage the agent can read</td></tr><tr><td><code>/workspace [on|off|use &#x3C;name>]</code></td><td>The Toolbox workspace this project is in, and the projects it links</td></tr><tr><td><code>/terminal-setup</code></td><td>Make Ctrl+Enter a new line in this terminal</td></tr><tr><td><code>/rules [on|off &#x3C;name>]</code></td><td>Standing instructions sent every turn</td></tr><tr><td><code>/skills [on|off &#x3C;name>]</code></td><td>Skills CORA can reach for</td></tr><tr><td><code>/workflows [on|off &#x3C;name>]</code></td><td>Procedures you can run by name</td></tr><tr><td><code>/&#x3C;workflow></code></td><td>Run one of your workflows</td></tr><tr><td><code>/&#x3C;skill></code></td><td>Ask CORA to use one of your skills</td></tr></tbody></table>

### From the command line

<table data-search="false"><thead><tr><th>Command</th><th>What it does</th></tr></thead><tbody><tr><td><code>cora</code></td><td>Start the interface</td></tr><tr><td><code>cora --run "prompt"</code></td><td>Run one turn and exit</td></tr><tr><td><code>git diff | cora --run "review this"</code></td><td>Send something in on a pipe</td></tr><tr><td><code>cora sessions</code></td><td>List past conversations</td></tr><tr><td><code>cora sessions --search &#x3C;text></code></td><td>Search titles, folders, and message text</td></tr><tr><td><code>cora resume [&#x3C;id>]</code></td><td>Reopen a conversation</td></tr><tr><td><code>cora --doctor</code></td><td>Environment and connection report</td></tr><tr><td><code>cora --version</code></td><td>Print the version</td></tr><tr><td><code>cora --help</code></td><td>Usage summary</td></tr></tbody></table>

**Options**

<table data-search="false"><thead><tr><th>Option</th><th>What it does</th></tr></thead><tbody><tr><td><code>--json</code></td><td>One turn: machine-readable output</td></tr><tr><td><code>--search &#x3C;text></code></td><td><code>sessions</code>: search titles, folders and message text</td></tr><tr><td><code>--all</code></td><td><code>sessions</code>: include archived conversations</td></tr><tr><td><code>--limit &#x3C;n></code></td><td><code>sessions</code>: how many to show (default 20)</td></tr><tr><td><code>-C, --workspace &#x3C;dir></code></td><td>Project folder (default: the current one)</td></tr><tr><td><code>-m, --mode &#x3C;slug></code></td><td><code>ask | plan | code | review</code> (default: <code>code</code>)</td></tr><tr><td><code>--colour &#x3C;always|never|auto></code></td><td>Override colour detection</td></tr><tr><td><code>--verbose | --debug | --trace</code></td><td>More detail in the log file</td></tr></tbody></table>

***

## Keyboard reference

### In the conversation

<table data-search="false"><thead><tr><th>Key</th><th>What it does</th></tr></thead><tbody><tr><td><strong>Enter</strong></td><td>Send</td></tr><tr><td><strong>Shift+Tab</strong></td><td>Cycle the mode</td></tr><tr><td><strong>Ctrl+J</strong></td><td>New line without sending. Ctrl+Enter, Shift+Enter, and Alt+Enter do the same where the terminal sends them; a trailing <code>\</code> then Enter works everywhere</td></tr><tr><td><strong>↑ / ↓</strong></td><td>Recall an earlier prompt</td></tr><tr><td><strong>Tab</strong></td><td>Complete a <code>/command</code> or an <code>@path</code></td></tr><tr><td><strong>Ctrl+R</strong></td><td>Open the rewind picker</td></tr><tr><td><strong>Ctrl+X then i</strong></td><td>Hand the newest plan to code mode</td></tr><tr><td><strong>Ctrl+X then u</strong></td><td>Open the rewind picker</td></tr><tr><td><strong>Ctrl+X then c</strong></td><td>Compact the conversation</td></tr><tr><td><strong>Ctrl+X then n</strong></td><td>Start a fresh conversation</td></tr><tr><td><strong>Ctrl+X then l</strong></td><td>Open the conversation picker</td></tr><tr><td><strong>Ctrl+X then h</strong></td><td>Show the help</td></tr><tr><td><strong>Ctrl+X then q</strong></td><td>Quit</td></tr><tr><td><strong>Ctrl+L</strong></td><td>Compact the conversation</td></tr><tr><td><strong>Ctrl+O</strong></td><td>Open the newest tool row's output</td></tr><tr><td><strong>Ctrl+Y</strong></td><td>Paste an image from the clipboard (Windows, macOS, Linux)</td></tr><tr><td><strong>1...9</strong></td><td>Open that helper (on an empty prompt line, while helpers are running)</td></tr><tr><td><strong>Esc</strong></td><td>Come back from a helper's conversation</td></tr><tr><td><strong>Ctrl+A</strong> / <strong>Home</strong></td><td>Start of the line</td></tr><tr><td><strong>Ctrl+E</strong> / <strong>End</strong></td><td>End of the line</td></tr><tr><td><strong>Ctrl+C</strong></td><td>Stop the turn; press again to quit</td></tr><tr><td><strong>Mouse wheel</strong></td><td>Scroll the conversation</td></tr><tr><td><strong>Click a row</strong></td><td>Open or close its output</td></tr><tr><td><strong>Shift+drag</strong></td><td>Select text with the mouse</td></tr></tbody></table>

### When CORA is asking you something

| Key                  | What it does                            |
| -------------------- | --------------------------------------- |
| **y**                | Allow this action                       |
| **n** / **Esc**      | Refuse it                               |
| **↑ / ↓**, **1...9** | Move between a question's options       |
| **Space**            | Tick an option when several are allowed |
| **Enter**            | Answer                                  |

### In the conversation picker

| Key           | What it does |
| ------------- | ------------ |
| **Type**      | Search       |
| **↑ / ↓**     | Move         |
| **Enter**     | Open         |
| **Ctrl+X**    | Archive      |
| **Ctrl+D** ×2 | Delete       |
| **Esc**       | Cancel       |

### In the settings screen

<table data-search="false"><thead><tr><th>Key</th><th>What it does</th></tr></thead><tbody><tr><td><strong>↑ / ↓</strong></td><td>Move</td></tr><tr><td><strong>Tab</strong></td><td>Cycle allow/ask/deny</td></tr><tr><td><strong>Shift+Tab</strong></td><td>Cycle the other way</td></tr><tr><td><strong>Enter</strong></td><td>Open one tool's rules</td></tr><tr><td><strong>Ctrl+A</strong></td><td>Add a rule</td></tr><tr><td><strong>Ctrl+D</strong></td><td>Remove a rule</td></tr><tr><td><strong>Esc</strong></td><td>Back / close</td></tr></tbody></table>

### In the MCP manager

<table data-search="false"><thead><tr><th>Key</th><th>What it does</th></tr></thead><tbody><tr><td><strong>↑ / ↓</strong></td><td>Move</td></tr><tr><td><strong>Enter</strong></td><td>Open, or start sign-in</td></tr><tr><td><strong>Ctrl+A</strong></td><td>Add a server (paste box)</td></tr><tr><td><strong>Ctrl+R</strong></td><td>Connect</td></tr><tr><td><strong>Ctrl+T</strong></td><td>Enable/disable</td></tr><tr><td><strong>Ctrl+U</strong></td><td>Edit</td></tr><tr><td><strong>Ctrl+O</strong></td><td>Open the config file</td></tr><tr><td><strong>Ctrl+D</strong> ×2</td><td>Remove</td></tr><tr><td><strong>Ctrl+S</strong></td><td>Save (in the editor)</td></tr><tr><td><strong>Ctrl+T</strong></td><td>Change scope (in the editor)</td></tr><tr><td><strong>Esc</strong></td><td>Back / close</td></tr></tbody></table>

{% hint style="info" %}
**Note on the leader key:** anything not pressed many times an hour lives behind **Ctrl+X** followed by a letter, because editors keep most Ctrl chords for themselves, and a kept chord never reaches CORA. Every key on these tables can be rebound in `config.json` under `"keys"` `/help` prints the ones actually in force. **Alt** is used for one thing only, **Alt+Enter** as a new line; on macOS, Option composes text rather than acting as a modifier, so use one of the other new-line keys there.
{% endhint %}
