Slash Commands
Slash commands are shortcuts that help you work faster with Tarsk. Type / in the chat to bring up a menu of commands, then select one to insert a pre-written prompt or instruction.
Think of slash commands like text snippets or templates that save you from typing the same requests over and over.
Quick Start
Section titled “Quick Start”- Type
/in the chat input - Select a command from the dropdown menu
- The command text is inserted into your message
- Customize and send your message
Using Slash Commands
Section titled “Using Slash Commands”- Click in the chat input.
- Type
/— an autocomplete dropdown appears listing all available commands. - Continue typing to filter by name (e.g.
/reviewnarrows to commands with “review” in the name). - Click a command or press Enter to insert it.
The command’s content is inserted into the input. You can edit it before sending, or send it immediately if no modification is needed.
Creating a Slash Command
Section titled “Creating a Slash Command”Slash commands can be created from within Tarsk or by creating files manually.
Via the UI
Section titled “Via the UI”- Select a project and thread, then open Settings → Slash Commands.
- Browse the marketplace to install community commands, or click Add Command to create your own.
- Set a name (becomes the
/nametrigger). - Add an optional description and argument hint.
- Choose Default or Plan mode and click Continue.
- Edit the new Markdown file in
.agents/commands/to add the command body.
Commands you create or install from this settings page belong to the selected thread. To share a command across projects, create its file in ~/.agents/commands/.
Manually
Section titled “Manually”Slash commands are Markdown files with YAML frontmatter stored at:
| Scope | Location |
|---|---|
| Global | ~/.agents/commands/ |
| Project | <threadPath>/.agents/commands/ |
Example: ~/.agents/commands/review.md
---description: Review the latest changes and suggest improvementsargument-hint: focus area (optional)mode: default---
Please review the recent changes in this thread. Look for:
- Logic errors or edge cases- Missing error handling- Performance concerns- Code style inconsistencies
Summarise findings and suggest specific improvements.Frontmatter Fields
Section titled “Frontmatter Fields”| Field | Required | Description |
|---|---|---|
description | No | Short description shown in the autocomplete dropdown |
argument-hint | No | Hint text shown after the command name, suggesting what the user might type (e.g. “branch name”) |
mode | No | default (standard chat), plan, ralph, or orchestrate (activates that chat mode when this command is used) |
Built-in commands include /ralph, /orchestrate, /compact, /send-event, /workspace, and /chat-title. /orchestrate keeps the /orchestrate token in the prompt and switches to Orchestrate mode (requires a Cheap model alias). /workspace is recognised only as a standalone word — at the start of the message or between spaces (/workspace implement login, implement login in a new /workspace). A /workspace glued to other characters is plain text, so paths and URLs such as app/workspace.ts, ~/workspace/tarsk, or http://host/workspace stay in this chat instead of forking it; a real command creates an isolated clone and branch, then runs the leftover prompt there. If the current chat already has history, Tarsk writes a silent handoff brief so the new workspace still knows what “login” means. /chat-title can also appear anywhere in the message: it asks the agent to title this chat from the task (Set /chat-title to the title of the task), and the agent names both the chat pane you sent from and its conversation in the Chats list.
Examples
Section titled “Examples”Code Review
Section titled “Code Review”---description: Structured code review of recent changes---
Review the changes made in this thread. For each file modified, evaluate:
1. Correctness and logic2. Error handling completeness3. Test coverage4. Naming and readability
List any issues with line references and suggested fixes.Write Tests
Section titled “Write Tests”---description: Generate tests for the current implementationargument-hint: file or function name---
Write comprehensive tests for the implementation. Include:
- Happy path tests- Edge cases and boundary conditions- Error/exception scenarios- Use the existing test framework and conventions in this project.Commit and PR
Section titled “Commit and PR”---description: Commit changes and create a pull request---
1. Review the current git diff.2. Generate a clear, conventional commit message.3. Commit all staged changes.4. Push to the remote branch.5. Create a pull request with a descriptive title and summary.Global vs Project Scope
Section titled “Global vs Project Scope”| Global | Project | |
|---|---|---|
| Available in | All projects, all threads | The thread containing the file |
| Stored at | ~/.agents/commands/ | <threadPath>/.agents/commands/ |
| Override | Project commands override global commands with the same name | — |
Use global commands for workflows that apply everywhere (review, test, commit). Use project commands for project-specific instructions that reference internal modules, APIs, or conventions.
Managing Commands
Section titled “Managing Commands”In the slash command UI:
- Open (
Open /<name> in Files) — opens the command file in the Files explorer, where you can edit its frontmatter and body - Delete — removes the file from disk; the command disappears from autocomplete immediately
Changes take effect in the next message — no restart required.