Commands
Complete reference for all Relay Telegram commands
All commands start with / and can be sent in any chat with your bot. Organized by category below.
Chat
No command needed — just send a message.
Supported input types:
- Text messages
- Voice notes (requires STT configuration)
- Photos (sent to vision-capable models)
- File attachments (text files are embedded, binary files referenced)
- Reply to a message (text, voice, or audio) to include it as context in your prompt
- Edit a sent message to re-prompt with the corrected text
Input limit: 32,000 characters. Send longer content as a file.
When the model provides reasoning/thinking, it appears in a collapsible blockquote above the answer.
Session Management
/new [title]
Create a new session. The new session becomes active immediately.
Examples: /new or /new Refactoring auth module
/sessions
List all sessions sorted by last modified date. Shows inline buttons to switch or delete each session.
/switch [id]
Switch to an existing session. Without an ID, shows an interactive session picker keyboard.
Examples: /switch (picker) or /switch abc123 (direct)
/delete [id]
Delete a session. Without an ID, shows a session picker. With an ID, shows a confirmation keyboard (Yes/No).
Examples: /delete (picker) or /delete abc123 (confirmation)
/current
Show the active session's ID and title.
/rename [title]
Rename the current session. Without a title, prompts for input interactively.
Examples: /rename (prompts) or /rename Auth refactor
/fork [messageId]
Fork the current session. Optionally fork from a specific message.
Examples: /fork or /fork msg_abc123
Monitor
/todo
View the AI's task checklist with status tags: [done], [wip], [pending], [cancelled].
/diff
Show a summary of code changes in the current session.
/diff full
Download the full diff as a text file.
File Operations
Commands without arguments prompt for input interactively via force_reply.
/ls [path]
List files and directories. Defaults to the project root.
Example: /ls src/
/read [path]
Read a file's contents. Without a path, prompts for input. Files larger than 15KB are sent as attachments.
Examples: /read (prompts) or /read src/index.ts
/find [query]
Find files by name pattern. Without a query, prompts for input. Shows up to 50 matches.
Examples: /find (prompts) or /find *.json
/search [pattern]
Search file contents (regex supported). Without a pattern, prompts for input. Shows up to 20 matches with file paths and line numbers.
Examples: /search (prompts) or /search TODO
/symbols [query]
Find code symbols by name. Without a query, prompts for input. Shows up to 30 matches.
Examples: /symbols (prompts) or /symbols authenticate
/status
Show git file status.
History
/history
View the last 10 messages in the current session. Includes "Fork after" buttons for assistant messages.
/summarize
Generate a session summary.
/revert
Undo the last AI change.
/unrevert
Redo a reverted change.
/abort
Cancel the currently running operation.
/share
Get a shareable URL for the current session.
/unshare
Revoke a previously shared session URL.
Shell
/shell [command]
Run a shell command natively on the OpenCode server. Without a command, prompts for input interactively.
Examples: /shell (prompts) or /shell ls -la or /shell npm test
Blocked commands: relay restart, relay stop, relay start, and relay update are blocked to prevent killing the bot process. Use /restart or /update instead.
/cmd [command]
Run an OpenCode-specific command. Without arguments, shows an interactive picker.
Available commands: init, review, stats, version, upgrade, sessions
/commands
List available OpenCode commands.
Models & Agents
/models
Display an interactive inline keyboard of available models with capability badges: [reasoning], [vision], [free]. The active model is shown with a ✓ prefix. Tap a button to select a model directly. Pagination buttons appear when there are more than 8 models.
/model [provider/model]
View or change the current model. Supports partial match.
Examples: /model to view current, /model sonnet or /model anthropic/claude-sonnet-4-20250514
/agent [name|clear]
View or change the current agent mode. Without arguments, shows an interactive picker.
Examples: /agent (picker), /agent build, /agent clear (reset to default)
/agents
List all available agents with descriptions.
/stt
View and switch the active speech-to-text provider via an interactive keyboard.
MCP
MCP servers extend the AI with additional tools. Relay includes 7 built-in tools (Browser, Fetch, Memory, Filesystem, GitHub, Context7, Relay) that can be enabled during setup. You can also add custom servers.
/mcp
Show MCP server status for all configured servers with action buttons.
/mcp add <name> local <cmd>
Add a local MCP server.
Example: /mcp add db local npx -y @modelcontextprotocol/server-sqlite
/mcp add <name> remote <url>
Add a remote MCP server.
Example: /mcp add api remote https://mcp.example.com/sse
/mcp remove [name]
Remove and disconnect a server. Without a name, prompts for input. Shows confirmation before removing.
/mcp connect [name]
Reconnect a disconnected or failed server. Without a name, prompts for input.
Cron (Scheduled Tasks)
Schedule recurring AI tasks that run automatically. All times use your configured timezone (set via /timezone). Results are delivered to your chat.
/cron
Show all scheduled jobs with action buttons: enable/disable, run now, and delete. Each job shows its schedule, next run time, last run status, and total run count. Includes an Add Job button for interactive creation.
/cron add daily <HH:MM> <Title: prompt>
Schedule a daily job. Example: /cron add daily 09:00 Git summary: Summarize recent git commits
/cron add every <interval> <Title: prompt>
Schedule a recurring job. Supports minutes (m) and hours (h). Minimum interval is 1 minute.
Examples: /cron add every 30m Health: Check server health or /cron add every 2h Status: Report system status
/cron add weekly <days> <HH:MM> <Title: prompt>
Schedule a weekly job on specific days. Days are comma-separated: mon, tue, wed, thu, fri, sat, sun.
Example: /cron add weekly mon,wed,fri 14:30 Review: Summarize open PRs
/cron add once <HH:MM> <Title: prompt>
Schedule a one-time job. It fires once at the specified time, then auto-disables (preserving run history). Toggle to re-enable for another run.
Example: /cron add once 14:30 Reminder: Time to review the open PR
How it works
- Jobs are persisted to
cron.jsonand survive restarts - The scheduler checks for due jobs every 30 seconds
- Each job runs in an isolated session (created fresh per run, deleted after) so cron output doesn't pollute your conversation
- An animated dots indicator cycles in the header during execution
- A pre-flight health check verifies the AI server is alive before executing
- If the bot restarts, missed jobs are skipped (no avalanche of past runs)
Interactive picker
Use /cron and tap Add Job to build a schedule step by step. The picker walks through schedule type, time, and days, then prompts for a job title and prompt text and creates the job automatically.
Web Monitoring
Monitor URLs for changes with AI-powered analysis. Relay fetches the page, detects changes via SHA-256 hash comparison, and sends AI-analyzed notifications when something relevant changes.
/watch
Show all watches with inline action buttons (Enable/Disable, Check Now, Delete) and an + Add Watch button to start the interactive creation flow.
/watch <url>
Start the interactive watch creation flow with the URL pre-filled. Skips straight to the interval picker.
Example: /watch https://example.com/pricing
/watch add <url> <intervalM> <Name: task>
Create a watch directly with all parameters.
Example: /watch add https://example.com/pricing 30 Pricing: Watch for price changes
Interactive creation flow
Both /watch → + Add Watch and /watch <url> lead to the same flow:
- URL — type the URL to monitor (skipped if provided via
/watch <url>) - Interval — pick check frequency from a keyboard (5m to 24h)
- Task — describe what changes matter
The watch name is auto-derived from the URL hostname.
Upfront validation
When creating a watch, Relay immediately fetches the URL:
- Fetch fails (timeout, HTTP error) → watch is not created, error shown
- Thin content (< 50 words) → watch is created with a warning (possible SPA or bot protection)
- Success → baseline snapshot captured, so the first scheduled check can detect changes immediately
How change detection works
- Plain HTTP fetch → HTML converted to readable text → SHA-256 hash comparison
- If content changed → AI analyzes old vs new in an isolated session, filtered by your task description
- Relevant changes are sent to Telegram; irrelevant ones (timestamps, ads) are silently ignored
- Error handling: notifies on errors #1 and #3, auto-disables after 5 consecutive errors
Deep Research
/research [topic]
Run deep multi-step research on a topic. Without arguments, prompts for the topic interactively.
Examples: /research (prompts) or /research quantum computing advances
The AI creates an isolated session, breaks the topic into sub-questions, gathers information from multiple sources, cross-references findings, and delivers a structured report with key findings, analysis, and sources. Results stream live to Telegram. The session is deleted after completion.
Settings & Info
/health
Server status dashboard: provider, model, voice, system prompt, project details.
/config
Show the full provider configuration (sensitive values masked).
/timezone [tz]
View the current timezone or set a new one. Without an argument, shows the current timezone and prompts for a new IANA timezone interactively.
Examples: /timezone (view/set) or /timezone America/New_York
/system
View the current system prompt (first 500 characters), its source, and character count.
/system reload
Force-reload the system prompt from file.
/project
Show current project information.
/git
Show git branch and changed files status.
/providers
Show configured AI providers with status and model count.
/tools
List all available tools (including MCP tools).
/restart
Restart the bot process via pm2.
/update
Update Relay to the latest npm version and restart.
/help
Compact command reference.
/start
Show the welcome message with quick-start instructions.