The slash menu
Type / in the composer and a panel opens above it: a search bar, a rail of
sources down the left, and a list. It opens on the commands and skills you use
most, then VCode's commands and the agent's skills; type and it ranks VCode's own commands, the agent's skills and the
agent's models in one list. Tap one, walk it with the arrows, or press Tab to
take the top match, which shows in grey after what you typed.
Why you would use it
You cannot remember whether the command is /effort or /reasoning, and on a
phone you do not want to find out by sending it. The menu is the list, scoped to
the agent this tab is running.
How to use it
Type
/in the box (#draft). The panel (#slashmenu) opens between the transcript and the box. It lists the commands and skills you have used, most used first, underMost used. VCode's commands and then the agent's skills follow, in their usual order.
Keep typing to filter. Matching is fuzzy:
tddfindstest-driven-development. A typed word also finds the tab's models, so/sonnetlists Sonnet.
Press ↓ and ↑ to walk the rows. The list wraps at both ends, and ↑ from nothing selected starts at the bottom.

Take the selected row with Enter, with Tab, or by tapping it. All three do the same thing to it. With no row selected, Tab completes the top match and Enter sends what you typed. Escape closes the menu.
While you type a name, the rest of the predicted one shows in grey after the caret:
/secreads/secthenurity-reviewin grey. It is the row the arrows are on, else the top row, and it follows the arrows as they move. Press Tab, or tap the grey text, to take it. Enter still sends what you typed. A fuzzy match names the row behind an arrow:/tddreads/tdd → test-driven-development. A value list predicts too:/model haishowskuin grey, and Tab or a tap switches to Haiku. There is no grey text while words follow the caret on the same line.
Taking a row writes
/nameinto the box with a trailing space, leaving the rest of your message alone, unless the command runs on its own, and then it runs where you took it./clearclears,/newopens a tab in this folder,/resumeopens the resume screen,/exitcloses the tab.A command you typed out in full runs on Tab as well:
/clearand one press, with nothing left to complete./cland one press is still/clear.Choose a model and effort, then tap that model's star to save the harness, model and effort together. Tap Favourites to list saved configurations from every harness; the Models slot lists them above the agent's models, and the Agent slot lists them above the vendors. Picking one restores all three and keeps your message. The star on another model saves it at auto effort. Tap a saved row's star to remove that configuration. In an unfiltered Favourites, Models or Agent list, press and hold a saved row, then drag it up or down to change its place; with a mouse, drag it straight away. The order is saved with the favourites. A list filtered by the search box is ranked, so its rows do not drag.

Tap a slot on the rail to list one source: Favourites, Agent, Models or Approval. What you typed after the
/still filters it. Commands and skills have no slot: a/lists them, each row led by the VCode mark or the agent's mark.
What you see
- The search bar on top. Opened from the box, it shows what you typed after the
/, and the box stays where you type, so a phone keyboard stays put. On the right it names what the list is and how many rows it holds:All · 16,Favourites · 2,Claude Code · 5for the models. - The rail down the left, top to bottom: Favourites (a star, with the count of
starred models), then Agent (the tab's agent's own mark), Models (a cube)
and Approval (a shield), in the order the composer's pickers read. The slot the list shows is
lit, with a violet edge. Approval shows only when the tab has a level to pick or Plan to turn on;
it lists the levels under
Approval, withApprovals · 3in the search bar. - Group headers in small capitals over each group:
Favourites,Most used,VCode,Claude Code skills. - Each row is a mark, the name, and one line under it saying where the row comes
from:
VCode · Start fresh. Clears the conversation and the context.,Claude Code skill · …, or a model's own note. Command and skill names are in mono with the characters that earned the match highlighted. - On the right of a row: a green tick on the model, effort or level the tab is on, and a star on each model.
- The selected row lights its background and gets an inset ring.
- In the agent list every row carries its brand mark, and the one running reads
brighter, with the note
running this tab now. - The Agent slot puts saved favourites above the vendors. Picking a saved row hands the tab to its harness and restores its model and effort.
- With more matches than fit, the search bar says so:
All · 46 · showing 40. - A row for
/clear,/new,/resumeor/exitacts on the pick: the menu closes and the command runs, with nothing left in the box to send. The others take an argument, so taking them writes the name and waits:/modeland/effortthen open their list of values,/handoffand its aliases their list of agents. /newis the one that both runs and takes an argument. Taken from the menu it opens a tab in this tab's folder; type a space after it and the folder list opens instead.- A finished
/modelor/effortturns the panel to that command's values, with the Models slot lit for/model, with no space needed: VCode owns both words on every agent, so the word on its own is already the question. A finished/handoff,/vendor,/harnessor/agentlights Agent and lists the agents, underAgent for this tab./newwaits for the space before it lists folders, in a plain list with no rail. - A model found by typing, such as
/sonnet, is applied when you take it, and the word is removed from the box. - Both work at the end of a message already written, not only on an empty box:
type
write the tests /modeland the models are listed. Picking one sets it and takes the command out of the draft, leavingwrite the teststo send./newis the exception: it stays a command on its own, because its menu writes a folder path back into the box. - The command the caret is in is the one answered, so a second command later in
the draft gets its own menu: in
fix the bug /model opus then /compactthe menu is the command list for/compact. Move the caret out and the menu closes. - The agent, model, effort and level buttons (
#agentpick,#modelpick,#effortpick,#permpick) open the same panel. The effort button opens Models with the effort slider above its search bar; the others open their own slot. The search bar is a box of its own (Search models); on a desktop frame it takes the focus, on a phone a tap does. A second tap on the button closes it. - A panel opened by a button leaves a message in the box alone. Only a command
you typed is taken out of it, and a box holding nothing but
/modelis emptied either way, since picking spends it. A command or skill taken from a rail slot there goes in front of the message; a command that runs on its own runs only when the box is empty. - On a desktop frame the menu opens over the transcript, above the pane's attachments, subagents strip and status line. Nothing moves: the transcript stays where it was and shows either side of the menu, and the rows under the menu stay against the composer.
Options and settings
Favourites are part of your settings: they follow your account to every linked
computer, like the other settings in the cog. You can save up to 60 configurations;
the 61st says 60 favourites at most: unstar one first. The same model at High
and Max can have separate favourites. Old model favourites restore auto effort.
When an agent update renames a model in its list, a favourite saved under the
old name still shows the model's name, such as Fable 5.1, and its star stays
filled on the renamed row.
Approval and Plan are not saved. A command or skill starred before stays in your
settings but is not listed. Stop a running turn and clear queued messages before
picking a configuration on another harness.
VCode's own commands, from public/commands.js. Each is listed only for
the agents that have it; /mcp is listed on claude and codex only.
A command that takes nothing runs on the pick, and so does /new,
whose folder is optional; the rest are written into the box for you to finish.
| Command | Takes | What it does |
|---|---|---|
/clear |
nothing | clear-the-context |
/new [folder] |
a folder, or nothing | new-tab-command |
/resume, /sessions |
nothing | resume-a-session-from-disk |
/model [value] |
a model | switch-the-model |
/effort [value] |
an effort | set-the-effort |
/autocompact [mark] |
a token count, off, default |
auto-compact |
/compact |
nothing | auto-compact: codex and cursor tabs; VCode runs the compaction now |
/handoff [agent] (+ /vendor, /harness, /agent) |
an agent id | hand-a-tab-to-another-agent |
/rename, /r |
a name | rename-a-tab |
/colour, /color |
a colour name or none |
tab-colours: red, orange, yellow, green, cyan, blue, purple, pink, or none |
/exit, /quit |
nothing | close-and-reopen-tabs: the log stays on disk and the Closed list brings it back |
/mcp |
nothing | mcp-servers: claude, codex, devin and muse tabs only |
/login |
nothing | log-in-to-an-agent: claude, codex, cursor, devin and muse tabs; logged in, it offers Log in again |
/watch [pull request] |
a link or a number | watch-pull-request: bare, it lists the tab's watches |
/unwatch [number] |
a number, or nothing | watch-pull-request: bare, it stops every watch of the tab |
On claude and opencode /compact is listed as a pass-through instead: the menu
offers it, and the text is sent to the CLI exactly as typed.
Use counts stay on the device and are not synced. A use counts when a command
runs from the menu, when you pick a value from the list a typed /model,
/effort or /handoff opened, and when you send a line that starts with a
command or skill. A row that only writes /name into the box counts when you
send it. An alias counts for its command: /r is a use of /rename. Two rows
used the same number of times keep their usual order. Tab on a bare / takes
the top row.
Limits and known gaps
The device counts uses of 200 commands and skills at most. Past that, the least used of the others is forgotten to make room for the one just used. Clearing the site's data resets the counts.
The model, effort, approval and agent buttons beside the box are not slash commands, so picking from their lists counts nothing.
The list is capped at 40 rows. The search bar reports the true total and admits the cap.
The Models list shows this agent's catalogue. Saved favourites from other agents can be picked from Favourites, Models or the Agent slot.
A box on a release from before favourites refuses the star with
unknown setting: slash.The menu is Agent mode only. In Shell mode the composer is hidden, and
/usrtyped in the terminal is a path.A slash glued to the end of a word, or with a space or a second slash between it and the caret, is prose or a path, not a command.
Enter sends until an arrow has chosen a row, so a command typed in full is still one keypress. After a move it takes the row instead.
Tab runs a command only when there is nothing left to complete: a row the arrows chose, or the whole box already holding that command.
/clplus one press is/clear, not a cleared conversation.A skill is never run from the menu, by any of the three keys: skills resolve inside the agent, so the row writes its name and the message is sent. The same goes for
/compact, which the CLI answers itself.A command picked out of the middle of a longer message is written in as text even when it takes no argument. Running it there would empty the box and take the message with it.
Any keystroke that changes the list drops the selection, because the row it was on may not be in the new list.
The arrows belong to the menu while it is open, so they neither move the caret in a multi-line draft nor walk the prompt history. Escape gives them back.
A panel opened by a button takes the arrows in its search box, and in the composer once the focus is back there. On a phone the search box takes the focus only when you tap it.
On a claude tab the rows after VCode's own are the list claude itself reports: your skills, plugin skills such as
frontend-design:frontend-design, claude's bundled skills (/simplify,/code-review,/loop,/doctor) and its own commands that run here (/insights,/recap). A word VCode already answers, such as/clear,/modelor/color, shows once, as VCode's row; one VCode has a note for, such as/context, is left out.A claude tab also lists the skills in its project's own
.claude/skillsfolders, the way claude finds them: in the tab's folder and each folder above it, up to the root of its git repository. A tab in another folder gets that folder's skills.Until claude has answered (the first few seconds after the server starts, or when claude is not installed), a claude tab lists the skill folders directly under
~/.claude/skillsinstead, plus the project's. The page keeps whichever list it got first for that folder until it reloads.A codex tab lists the skills under
~/.codex/skills, up to five folders deep, its.systemskills included. Skills codex gets from its plugins are not listed.An opencode tab lists the skills under
~/.config/opencode/skills,~/.config/opencode/skill,~/.claude/skillsand~/.agents/skills, up to five folders deep. opencode's one built-in skill,customize-opencode, is not listed.A vendor built-in VCode cannot run is not in the menu; typing it gets an explanation instead. See vendor-slash-commands.
Related
- mention-a-file:
@opens the same panel on the tab's files - navigation-and-commands: every gesture, key and command, phone and desktop
- default-start: the house beside a model's star
- vendor-slash-commands: what the CLI's own commands do when typed here
- side-questions:
/btw, ask without interrupting the turn - clear-the-context, switch-the-model, set-the-effort
- agent-or-shell-mode: the mode the menu needs
- type-to-start-a-message: typing
/with the focus nowhere opens it too - new-tab-command: what
/newopens - resume-a-session-from-disk: the screen
/resumeopens - auto-compact: what
/autocompactsets - mcp-servers: what
/mcpopens on claude and codex - log-in-to-an-agent: what
/loginopens - clear-the-message-box: the second Escape, once the menu is closed
- watch-pull-request: what
/watchand/unwatchdo