Reference
Slash commands, keyboard shortcuts, the settings screen and the plural-host CLI.
Commands
What a command shows, like /help, /who, /skills or skills.sh search results, opens in a
panel under the composer instead of the conversation: it is yours alone and never reaches the
agent. esc or ✕ closes it. Search results are a picker: ↑↓ chooses, enter installs into
the project and g for every project.
| Command | What it does |
|---|---|
/help | Commands and keys |
/team <message> | Write to the room, the agent does not see it. @name <message> writes to one person |
/who | Participants |
/invite [link|once|viewer|revoke|open|approve] | Copy the room link, make a one-time invite, or change who may join (host) |
/mode open|review | Who may prompt directly (host) |
/policy | Show the permission rules (host) |
/policy allow|ask|deny <tool> <pattern> | Add a rule (host) |
/policy rm <id> | Remove a rule (host) |
/compact | Summarize the older conversation now, keeping the newest turns as they are, or before the agent's next step when it is busy (host) |
/skills [search|add|rm …] | List, find and install skills, see Skills |
/agents [rm <name>] | The sub-agents; the host creates one with a short form, see Sub-agents |
/mcp [add|import|on|off|restart|rm …] | Connect and manage MCP servers, see MCP servers |
/ask @name | A briefing from a teammate's agent, see Briefings |
/access [allow|deny|revoke <name>] | Ask for or grant write access, see Asking to write |
/usage | Tokens spent in this session per model, for the conversation, summaries and each sub-agent |
/context | What fills the agent's prompt now (system prompt sections, tool definitions, messages, each tool's results, summary), and how much of the latest request came from the cache |
/plugins [new <name>|reload] | List the host's plugins, create one or reload them (host), see Plugins |
/<plugin command> | Run a command a plugin added; they appear in the suggestions |
/abort | Stop the current run (host) |
/cancel <n> | Remove a queued prompt, yours or any as the host |
/copy | Copy the last reply |
/settings | Open the settings |
/quit | Leave |
Keys
| Key | Action |
|---|---|
enter | Send |
shift+enter, ctrl+j | New line |
shift+tab | Cycle the permission mode (host) |
esc | Interrupt the run (host) |
pgup, pgdn, mouse wheel | Scroll the conversation |
ctrl+f | Search the conversation; enter goes to an older match, shift+enter to a newer one, esc closes. Words must all match; is:failed, is:prompt, is:tool, is:chat, is:reply and by:name narrow it down |
end | Jump to the latest message (when the input is empty) |
alt+↑, alt+↓ | Previous or next prompt |
ctrl+o | Expand or collapse tool details |
ctrl+b | Show or hide the side panel |
ctrl+y | Copy the last reply |
ctrl+v | Attach the image on the clipboard to the next prompt; backspace in an empty input removes it |
F2 | Settings |
ctrl+c | Clear the input, press twice to quit |
Selecting text with the mouse copies it. Hold the terminal's bypass key (shift, or option
in some terminals) for the terminal's own selection.
The screen
The conversation is on the left. The panel on the right shows who is in the room and who is
typing, what needs the host, the prompt queue and the state of the agent. ctrl+b hides it,
and it hides itself on narrow terminals.
The line above the input says who will see what you type: → agent (the whole room sees the
prompt), → room after /team and → @name for a private message, where the agent does not
see it. If a message does not reach the host, the text comes back into the input with the
reason, and ↑ recalls it even if you started typing something else.
Each tool call is one line with what it did and a short result: the lines a command printed,
its exit code if it failed, or +added −removed for an edit. A running command shows its
latest line next to the spinner. Click a line, or press ctrl+o for all of them, to see the
command with its output or a numbered diff. Everyone sees how full the agent's context is, in
the status bar and the side panel, green then yellow then red as it nears the point where the
agent compacts on its own.
Settings
Open them with F2, the ⚙ settings button or /settings. On the first launch, when no model
is set up, they open by themselves. They work with the keyboard and the mouse: tab switches
the tab, ↑ ↓ select, ← → change, enter applies, esc closes.
Model (host only). Choose a provider, sign in or enter an API key, then use ← → on Model
to cycle its built-in model list — see Models and providers for
every option. The key is kept in ~/.plural/credentials.json, readable only by you, and is
sent only to your own host through a local pipe, never over the network. Participants do not
see this tab: the agent and its credentials belong to the host.
Session. Open: everyone prompts the agent directly. Host approves: participants propose and you approve, edit or reject every prompt. Also the typing indicator, the bell for requests that need the host and the bell for mentions and private messages.
Appearance. Four themes (Tokyo Night, Daylight, Gruvbox, High contrast), the side panel and copy on select, plus shortcuts to copy the last reply and the room link.
Preferences are kept in tui.json in the data directory.
The plural-host CLI
| Command | Does |
|---|---|
plural-host relay | Run the relay router |
plural-host doctor | Check the environment, the workspace and the provider |
plural-host export <room> | Dump a session's event log to JSONL |
plural-host host | Serve a session without the client, for a remote machine |
plural-host login [--no-browser] | Link this computer to your account: opens the browser to approve it |
plural-host login --code <code> | The same from a code the web page shows, for a computer with no browser to open |
plural-host whoami [--json] | Show the account this computer is linked to |
plural-host logout | Forget the account on this computer |
plural relay, plural doctor, plural export, plural login, plural whoami and
plural logout run the same commands.
Linking a computer to an account
A relay may ask hosts to belong to an account. Run plural login: it opens the browser, where
you sign in and confirm that the code in the page is the one in your terminal, and the terminal
collects the result. With --no-browser, or when no browser can open (over SSH, say), it prints
the address to open anywhere. Either way the computer proves it holds its host key by signing
what it sends, and the accounts service answers with a certificate for that key, kept in
entitlement.json and renewed on its own before it runs out. Nothing changes for a relay that
does not ask, and nobody needs an account to join a room.