Slash Commands

Messages starting with / are intercepted before reaching the LLM. Use them inline from any channel โ€” CLI, Telegram, Slack, Discord, WebSocket.

Available commands

CommandEffect
/helpList commands
/newStart a fresh session (resets messages)
/resetClear current session messages
/statusShow session info: agent, message count, run state, queue mode
/agent <mode>Switch active agent for this session
/queue <mode>Set queue mode: steer / followup / collect / default
/compact [hint]Summarize old messages to free context
/stopAbort the current run

From the CLI

vesper -q "/status"
vesper -q "/agent bags-hunter"
vesper -q "/reset"

From Telegram

Just send the message as text. The bot relays to the gateway which intercepts.

From the API

curl -X POST http://127.0.0.1:18789/agent \
  -d '{"sessionKey":"user-123","message":"/status","channel":"rest"}'

# โ†’ {"reply":"๐ŸŒ’ Session status\n\n   Session: ...","status":"command"}

How interception works

The first thing the agent loop does (after intake) is call tryHandleCommand(). If the message starts with / and matches a known command, the handler returns a reply directly โ€” skipping LLM, lane acquisition, and tools entirely.

Source

Implementation: apps/gateway/src/commands.ts