Discord Commands
Agent Queue gives you two ways to interact through Discord:
| Method |
How it works |
Best for |
| Slash commands |
Type / and pick from the autocomplete menu |
Structured operations with clear parameters |
| Natural language chat |
Just type a message in the bot's channel |
Quick requests, complex descriptions, multi-step workflows |
Both methods call the same underlying logic — slash commands are just a structured shortcut for what you can always ask the chat agent to do in plain English.
Example — creating a task both ways:
Slash: /add-task description: Fix the login timeout bug in auth.py
Chat: hey, can you add a task to fix the login timeout bug in auth.py?
the error is on line 47, JWT expires too early
The chat approach lets you include richer context naturally.
Getting Oriented
These commands give you a quick picture of what's happening across your system.
| Command |
Description |
/status |
System overview — active/ready/completed task counts, agent states, queued work |
/projects |
List all projects with their status, credit weight, and linked channels |
/agents |
List all agents and what they're currently working on |
/usage |
Show Claude Code usage — active sessions, tokens, rate limits |
/events |
Recent system events (task completions, failures, etc.) |
/menu |
Show an interactive control panel with clickable buttons |
/status
Shows a dashboard-style overview: task counts by state, each agent's current assignment, and the next tasks in queue. This is usually the first command you run.
/events
| Parameter |
Required |
Description |
limit |
No |
Number of events to show (default: 10) |
Opens an interactive embed with buttons for common operations — a quick way to navigate without remembering command names.
Managing Projects
Creating and editing
| Command |
Description |
/new-project |
Create a new project with an interactive wizard |
/edit-project |
Change a project's name, weight, max agents, budget, or channel |
/delete-project |
Delete a project and all its data |
/set-default-branch |
Set the default branch for a project (creates it if needed) |
/new-project
Opens an interactive wizard modal to walk you through project creation. No parameters needed — everything is configured through the wizard UI.
/edit-project
| Parameter |
Required |
Description |
project_id |
Yes |
Project ID |
name |
No |
New name |
credit_weight |
No |
New scheduling weight |
max_concurrent_agents |
No |
New max agents |
budget_limit |
No |
Token budget limit (0 to clear) |
channel |
No |
Discord channel to link to this project |
/delete-project
| Parameter |
Required |
Description |
project_id |
Yes |
Project ID to delete |
archive_channels |
No |
Archive the project's Discord channels instead of leaving them |
Deletion removes all associated tasks, workspaces, results, and token records. Cannot delete a project with tasks currently in progress.
/set-default-branch
| Parameter |
Required |
Description |
project_id |
Yes |
Project ID |
branch |
Yes |
Branch name to use as default (e.g. dev, main, master) |
Pausing and resuming
| Command |
Description |
/pause |
Pause a project — no new tasks will be scheduled |
/resume |
Resume a paused project |
Both commands auto-detect the project from the channel you're in.
Setting the active project
| Command |
Description |
/set-project |
Set or clear the active project for the chat agent |
When an active project is set, commands that need a project will default to it. Leave project_id empty to clear.
Channel setup
Each project can have a dedicated Discord channel. Commands run in that channel automatically target the right project — no need to specify project_id every time.
| Command |
Description |
/create-channel |
Create a new Discord channel and link it to a project |
/channel-map |
Show all project-to-channel mappings |
/create-channel
| Parameter |
Required |
Description |
project_id |
Yes |
Project ID |
channel_name |
No |
Name for the new channel (defaults to project ID) |
category |
No |
Category to create the channel in |
Working with Tasks
Creating tasks
/add-task
The quickest way to create a task from Discord.
| Parameter |
Required |
Description |
description |
Yes |
What the task should do |
The project is auto-detected from the channel, or falls back to the active project. Returns an error if no project can be resolved.
Via chat — you can provide much richer context:
Create a task for my-app to refactor the database connection pooling.
Currently it creates a new connection per request which is causing
timeouts under load. Use SQLAlchemy's built-in pool with max 20
connections. The relevant code is in src/db/connection.py.
Monitoring tasks
| Command |
Description |
/tasks |
List tasks grouped by status, with interactive expand/collapse |
/active-tasks |
List active tasks across ALL projects |
/task |
Show full details of a specific task |
/task-result |
View a task's output: summary, files changed, tokens used |
/task-diff |
Show the git diff for a task's branch |
/task-deps |
Show dependency graph for a task (what it needs and blocks) |
/agent-error |
Inspect the last error for a failed task |
/chain-health |
Check dependency chains for stuck tasks |
/tasks
Auto-detects the project from the channel. Returns an interactive view with collapsible status sections and a dropdown to inspect individual tasks.
/active-tasks
| Parameter |
Required |
Description |
show_completed |
No |
Include completed/failed/blocked tasks (default: hide) |
Shows active tasks across all projects — useful for a global view.
/task
| Parameter |
Required |
Description |
task_id |
Yes |
Task ID (e.g., bold-falcon) |
Shows title, status, project, priority, assigned agent, retry count, and description.
/task-result
| Parameter |
Required |
Description |
task_id |
Yes |
Task ID |
Shows the agent's summary, list of files changed, token usage, and any error messages.
/task-diff
| Parameter |
Required |
Description |
task_id |
Yes |
Task ID |
Shows the git diff of the task's branch against the base branch. Large diffs are attached as .patch files.
/task-deps
| Parameter |
Required |
Description |
task_id |
Yes |
Task ID to inspect |
Shows the dependency graph for a task — what it depends on and what depends on it.
/agent-error
| Parameter |
Required |
Description |
task_id |
Yes |
Task ID |
Shows error classification, error detail, suggested fix, and the agent's summary of what went wrong.
/chain-health
| Parameter |
Required |
Description |
task_id |
No |
Check a specific blocked task's downstream |
Auto-detects the project from the channel if no task is specified. Use this when tasks seem stuck in DEFINED — it reveals which blocked or failed task is holding up the chain.
Controlling tasks
| Command |
Description |
/edit-task |
Change a task's title, description, priority, type, status, and more |
/stop-task |
Cancel an in-progress task (marks it BLOCKED) |
/restart-task |
Reset a completed/failed/blocked task back to READY |
/reopen-with-feedback |
Reopen a completed/failed task with feedback for rework |
/delete-task |
Delete a task (can't delete in-progress tasks) |
/approve-task |
Approve a task that's AWAITING_APPROVAL |
/skip-task |
Skip a blocked/failed task to unblock its dependents |
/edit-task
| Parameter |
Required |
Description |
task_id |
Yes |
Task ID |
title |
No |
New title |
description |
No |
New description |
priority |
No |
New priority (lower number = higher priority) |
task_type |
No |
New task type: feature, bugfix, refactor, test, docs, chore, research, plan |
status |
No |
Admin status override: DEFINED, READY, IN_PROGRESS, COMPLETED, FAILED, BLOCKED |
max_retries |
No |
Max retry attempts |
verification_type |
No |
How to verify output: auto_test, qa_agent, human |
/stop-task
| Parameter |
Required |
Description |
task_id |
Yes |
Task ID |
Cancels the agent working on the task and marks it as BLOCKED.
/restart-task
| Parameter |
Required |
Description |
task_id |
Yes |
Task ID |
Resets the task to READY so it gets picked up by an agent again. Works on completed, failed, or blocked tasks.
/reopen-with-feedback
| Parameter |
Required |
Description |
task_id |
Yes |
Task ID to reopen |
feedback |
Yes |
QA feedback explaining what went wrong or needs fixing |
Reopens a completed or failed task and attaches feedback so the agent knows what to fix on the next attempt.
/approve-task
| Parameter |
Required |
Description |
task_id |
Yes |
Task ID |
For tasks in AWAITING_APPROVAL status — marks them as COMPLETED so downstream dependents can proceed.
/skip-task
| Parameter |
Required |
Description |
task_id |
Yes |
Task ID |
Marks a BLOCKED or FAILED task as COMPLETED without actually doing the work. Use this to unblock dependency chains when a task is no longer needed. Shows how many downstream tasks were unblocked.
Task Archiving
| Command |
Description |
/archive-tasks |
Archive completed tasks (DB + markdown notes in workspace) |
/archive-task |
Archive a single completed/failed/blocked task |
/list-archived |
View archived tasks |
/restore-task |
Restore an archived task back to active status |
/archive-settings |
View auto-archive configuration and status |
/archive-tasks
| Parameter |
Required |
Description |
project_id |
No |
Project to archive completed tasks from (omit for all projects) |
include_failed |
No |
Also archive FAILED and BLOCKED tasks (default: false) |
/archive-task
| Parameter |
Required |
Description |
task_id |
Yes |
Task ID to archive |
/list-archived
| Parameter |
Required |
Description |
project_id |
No |
Filter by project |
limit |
No |
Max tasks to show (default: 25) |
/restore-task
| Parameter |
Required |
Description |
task_id |
Yes |
Archived task ID to restore |
Task Dependencies
Dependencies control execution order — a task in DEFINED state won't promote to READY until all its dependencies are COMPLETED. The orchestrator checks dependencies every cycle (~5 seconds).
| Command |
Description |
/chain-health |
Diagnose stuck dependency chains |
/task-deps |
Show what a task depends on and what depends on it |
/skip-task |
Skip a blocked task to unblock its dependents |
Dependency workflow: skip to unblock
When a task in a dependency chain fails or gets blocked, all downstream tasks stay stuck in DEFINED. You have two options:
- Fix and retry — Use
/restart-task to re-queue the blocked task
- Skip and unblock — Use
/skip-task to mark it COMPLETED without doing the work, which unblocks all downstream dependents
The /chain-health command helps you diagnose these situations by showing which blocked or failed task is holding up the chain and how many downstream tasks are affected.
Example workflow:
task-A (BLOCKED) → task-B (DEFINED) → task-C (DEFINED)
/skip-task task_id: task-A
✓ Skipped task-A. 1 downstream task unblocked.
Next cycle: task-B promotes to READY → gets assigned → starts working
When task-B completes: task-C promotes to READY
Agents
| Command |
Description |
/agents |
List all agents and their states |
/create-agent |
Register a new agent |
/edit-agent |
Edit an agent's properties |
/delete-agent |
Delete an agent and its workspace mappings |
/pause-agent |
Pause an agent so it stops receiving new tasks |
/resume-agent |
Resume a paused agent so it can receive tasks again |
/create-agent
| Parameter |
Required |
Description |
name |
No |
Agent display name (leave empty for auto-generated creative name) |
agent_type |
No |
Agent type: claude, codex, cursor, or aider (default: claude) |
/edit-agent
| Parameter |
Required |
Description |
agent_id |
Yes |
Agent ID |
name |
No |
New display name |
agent_type |
No |
New agent type: claude, codex, cursor, or aider |
/delete-agent
| Parameter |
Required |
Description |
agent_id |
Yes |
Agent ID to delete |
/pause-agent
| Parameter |
Required |
Description |
agent_id |
Yes |
Agent ID to pause |
/resume-agent
| Parameter |
Required |
Description |
agent_id |
Yes |
Agent ID to resume |
Workspaces
Workspaces are directories where agents do their work. Each project can have multiple workspaces.
| Command |
Description |
/workspaces |
List project workspaces |
/add-workspace |
Add a workspace directory for a project |
/remove-workspace |
Delete a workspace from a project (must not be locked) |
/release-workspace |
Force-release a stuck workspace lock |
/sync-workspaces |
Sync all project workspaces to the latest main branch |
/add-workspace
| Parameter |
Required |
Description |
source |
Yes |
How to set up the workspace: clone or link |
path |
No |
Directory path (required for link, auto-generated for clone) |
name |
No |
Workspace name |
/remove-workspace
| Parameter |
Required |
Description |
workspace_id |
Yes |
Workspace ID or name to delete |
/release-workspace
| Parameter |
Required |
Description |
workspace_id |
Yes |
Workspace ID to release |
Git Operations
All git commands auto-detect the project from the channel and default to the project's first workspace. You can override with the workspace parameter.
Browsing
| Command |
Description |
/git-status |
Current branch, working tree status, recent commits |
/git-branches |
List branches, or create a new one by providing name |
/git-log |
Show recent commits |
/git-diff |
Show working tree diff, or diff against a base branch |
/git-files |
List files changed compared to a base branch |
/git-log
| Parameter |
Required |
Description |
count |
No |
Number of commits to show (default: 10) |
workspace |
No |
Workspace ID or name (defaults to first workspace) |
/git-diff
| Parameter |
Required |
Description |
base_branch |
No |
Branch to diff against (omit for working tree diff) |
workspace |
No |
Workspace ID or name (defaults to first workspace) |
/git-files
| Parameter |
Required |
Description |
base_branch |
No |
Branch to compare against (defaults to repo default) |
workspace |
No |
Workspace ID or name (defaults to first workspace) |
Branching
| Command |
Description |
Aliases |
/create-branch |
Create and switch to a new branch |
/git-branch, /project-create-branch |
/git-checkout |
Switch to an existing branch |
/checkout-branch |
All accept branch_name (required) and optional workspace.
Committing and pushing
| Command |
Description |
Aliases |
/commit |
Stage all changes and commit |
/project-commit, /git-commit |
/push |
Push a branch to the remote |
/project-push, /git-push |
/merge |
Merge a branch into the default branch |
/project-merge, /git-merge |
/git-pull |
Pull (fetch + merge) from remote origin |
— |
/git-pr |
Create a GitHub pull request |
— |
/commit
| Parameter |
Required |
Description |
message |
Yes |
Commit message |
workspace |
No |
Workspace ID or name (defaults to first workspace) |
/push
| Parameter |
Required |
Description |
branch_name |
No |
Branch to push (defaults to current branch) |
workspace |
No |
Workspace ID or name (defaults to first workspace) |
/git-pull
| Parameter |
Required |
Description |
branch |
No |
Branch name to pull (defaults to current branch) |
workspace |
No |
Workspace ID or name (defaults to first workspace) |
/merge
| Parameter |
Required |
Description |
branch_name |
Yes |
Branch to merge |
workspace |
No |
Workspace ID or name (defaults to first workspace) |
Note: The /git-merge alias also accepts a default_branch parameter to override the target branch.
/git-pr
| Parameter |
Required |
Description |
title |
Yes |
PR title |
body |
No |
PR description |
branch |
No |
Head branch (defaults to current) |
base |
No |
Base branch (defaults to repo default) |
workspace |
No |
Workspace ID or name (defaults to first workspace) |
Requires the gh CLI to be authenticated on the host machine.
File Browser & Editor
| Command |
Description |
/browse |
Browse project repository files and directories interactively |
/edit-file |
Open a text editor dialog for any file in the project |
/browse
| Parameter |
Required |
Description |
path |
No |
Subdirectory to start browsing from (default: root) |
workspace |
No |
Workspace name or ID to browse (default: first workspace) |
Shows an interactive embed with directory navigation via dropdown menus, file viewing, parent directory button, and pagination for large directories.
/edit-file
| Parameter |
Required |
Description |
path |
Yes |
Relative file path within the project workspace (e.g. src/main.py) |
Opens a Discord modal with the file's current content pre-filled. Edit and submit to save, or dismiss to discard.
Automation (Hooks)
Hooks run automated workflows — they trigger on events or schedules, gather context, and send prompts to an LLM.
| Command |
Description |
/hooks |
List configured hooks |
/create-hook |
Create an automation hook (interactive wizard) |
/add-hook |
Alias for /create-hook |
/edit-hook |
Edit a hook's settings (name, enable/disable, prompt, cooldown, token limit) |
/delete-hook |
Delete a hook and its run history |
/hook-runs |
Show recent execution history for a hook |
/fire-hook |
Manually trigger a hook immediately, ignoring cooldown |
/create-hook
Opens an interactive wizard modal to configure the hook. No inline parameters — everything is set through the wizard UI.
Via chat — managing hooks is often easier through natural language:
Create a hook for my-app that runs every 30 minutes
and checks if there are any failing tests. If tests
are failing, create a task to fix them.
Disable the test-monitor hook
Show me the last 5 runs of hook deploy-checker
/edit-hook
| Parameter |
Required |
Description |
hook_id |
Yes |
Hook ID |
name |
No |
New hook name |
enabled |
No |
Enable or disable the hook |
prompt_template |
No |
New prompt template |
cooldown_seconds |
No |
New cooldown in seconds |
max_tokens_per_run |
No |
Max tokens per run (0 to clear) |
/hook-runs
| Parameter |
Required |
Description |
hook_id |
Yes |
Hook ID |
limit |
No |
Number of runs to show (default: 10) |
Project Notes
Notes are markdown documents stored per-project.
| Command |
Description |
/notes |
List notes for a project (opens an interactive thread) |
/write-note |
Create or update a project note |
/delete-note |
Delete a project note |
/notes
Auto-detects the project from the channel. Lists all notes and opens a thread where you can ask the bot to read, create, or edit notes interactively.
/write-note
| Parameter |
Required |
Description |
title |
Yes |
Note title |
content |
Yes |
Note content (markdown) |
/delete-note
| Parameter |
Required |
Description |
title |
Yes |
Note title |
Memory
The memory system provides semantic search across project knowledge — task results, notes, and knowledge-base entries indexed by a vector database.
| Command |
Description |
/memory-stats |
Show memory index configuration and status for a project |
/memory-search |
Semantic search across a project's indexed memories |
/memory-stats
| Parameter |
Required |
Description |
project |
No |
Project ID (auto-detected from channel) |
Shows whether memory is enabled, the embedding provider, Milvus collection name, and auto-recall/remember settings. If memory is not enabled, shows instructions to enable it.
/memory-search
| Parameter |
Required |
Description |
query |
Yes |
Semantic search query |
project |
No |
Project ID (auto-detected from channel) |
top_k |
No |
Number of results to return (default: 5) |
Returns ranked results with source file, relevance score, heading, and a content preview. Uses the project's configured embedding provider for semantic matching.
System Control
| Command |
Description |
/orchestrator |
Pause, resume, or check status of task scheduling |
/restart |
Restart the agent-queue daemon (brief disconnect) |
/shutdown |
Shut down the bot and all running agents |
/update |
Pull latest source, install deps, and restart the daemon |
/clear |
Clear messages from the current channel |
/orchestrator
| Parameter |
Required |
Description |
action |
Yes |
pause, resume, or status |
When paused, no new tasks will be assigned to agents. Running tasks continue to completion.
/restart
| Parameter |
Required |
Description |
reason |
Yes |
Why are you restarting? |
/shutdown
| Parameter |
Required |
Description |
reason |
Yes |
Why are you shutting down? |
force |
No |
Force-stop all running agents immediately (default: graceful) |
/update
| Parameter |
Required |
Description |
reason |
No |
Why are you updating? (auto-filled if omitted) |
/clear
| Parameter |
Required |
Description |
count |
No |
Number of messages to delete (default: all, max: 1000) |
Chat-Only Capabilities
These features are only available through natural language chat:
File operations
Read the file src/auth.py in my-app
Search for "def connect" in the my-app workspace
Find all .yaml files in the config directory
Shell commands
Run "pytest tests/" in my-app
Run "npm test" in the frontend project
Commands run with a 30-second default timeout (max 120 seconds).
Token usage
How many tokens has my-app used?
What's the token breakdown for task bold-falcon?
Tips & Tricks
Channel context saves typing. Run commands from a project's dedicated channel and you won't need to specify project_id on every command. Use /channel-map to see which channels are linked.
Task IDs are human-readable. Tasks get names like bold-falcon or quiet-owl — easy to remember and type. Use them with any task command.
Dependency chains. When an agent produces a plan file, the orchestrator automatically creates chained subtasks with dependencies. Use /chain-health to diagnose stuck chains and /skip-task to unblock them.
Just ask. If you're not sure which command to use, just describe what you want in plain English. The chat agent has access to all the same operations as slash commands, plus file reading, shell commands, and more.
Git command aliases. Many git commands have multiple names: /commit and /project-commit and /git-commit all do the same thing. Use whichever feels natural.
Task archiving. Use /archive-tasks to clean up completed tasks and keep your task list focused. Archived tasks are preserved in markdown notes and can be restored with /restore-task.
Interactive controls. Use /menu for a button-based control panel, or /browse to navigate files with clickable dropdowns instead of typing paths.