Skip to content

Commands and permissions

These two have no standard place yet, so the config does not read them from a file. A tool declares them in its manifest or code, and you can declare them in the config the same way. Claude Code’s own .claude/commands and permissions stay where they are.

A prompt the user runs as /<name>. Each agent with commands gets it in its own format: .claude/commands/<name>.md, .gemini/commands/<name>.toml, .cursor/commands, .opencode/commands, .pi/prompts, … Codex, Copilot and Devin have none (unsupported: commands).

Commands (by prefix) and MCP tools the agent may run without asking, in each agent’s permission list: Bash(mytool *) in Claude Code and Qwen Code, run_shell_command(mytool) in Gemini CLI, Shell(mytool) in Cursor, "mytool *": "allow" in OpenCode, Exec(mytool) in Devin. Agents with no such list report unsupported: permissions.

allow_commands = ["mytool"]
allow_mcp_tools = [{ server = "mytool", tool = "check" }]
[[commands]]
name = "check"
description = "Run mytool check."
prompt = "Run `mytool check` and summarise the findings."