-
-
Notifications
You must be signed in to change notification settings - Fork 4
Slash Commands and Skills
This is the least obvious thing about the composer, and worth one page.
The harness's session.prompt does not inspect the content of what you send. A line beginning
with a slash reaches the model as ordinary user text — so if the app just sent everything as a
prompt, /permission full-access would be a sentence rather than a command.
So the app decides first:
- It reads the session's own command catalog from the harness.
- If your line names a registered command, it goes through the harness's command gateway and is executed as a command.
- If nothing in the catalog claims it, it is sent as an ordinary prompt.
That third branch is not a fallback for typos — it is load-bearing. A /name line the catalog does
not claim is how a skill gets invoked: the prompt reaches the harness, and the host's own pre-step
boundary resolves the name to a skill.
The catalog is the harness's, not the app's, so it depends on your build and your session. Some that the app's own controls also drive:
| Line | Effect |
|---|---|
/goal <text> |
Create or replace the session's goal — the same goal the dock and details panel show |
/plan |
Enter plan mode |
/plan off |
Leave plan mode. Entering and leaving are different lines; /plan alone only ever enters |
/permission <value> |
Change the permission preset. This is the write path — the picker in the app is read-only and sends this |
Tap Commands in the composer to browse the catalog for the current session rather than guessing.
- "This session has no commands" — the harness answered with an empty catalog.
-
"This harness does not expose a command list" — this build offers no command gateway at all. Typed
/lines will be sent as prompts, and the app hides the command browser rather than showing an empty one. - "Unknown command: …" / "Command failed: …" — the gateway accepted the line but the harness rejected or failed it.
Whether a given surface exists is a property of the harness build in front of it. A gateway path
nothing claims answers 404, and one the trust fence refuses answers 403 — both mean "this build does
not offer that", not "the connection is broken". The app maps them to capability unavailable and
forbidden, and hides the control. The precise mechanics are in
docs/PROTOCOL.md.
DSH Mobile — an unofficial, community-built Android remote for the
DeepSeek Harness. The harness and its brand belong
to their respective owners.
MIT ·
repository ·
canonical technical docs in
docs/.