The Grammar of Coding Agents OpenAI Codex, Claude Code, OpenCode, Cursor, and GitHub Copilot increasingly share building blocks like slash commands, skills, and subagents but expose them through different command languages, according to a comparative analysis verified June 19, 2026. The analysis details how each product handles persistent objectives, planning, parallel subagents, and code review, with Claude Code offering the broadest built-in command catalog and Codex using a distinct $ prefix for skills. The Grammar of Coding Agents OpenAI Codex, Claude Code, OpenCode, Cursor, and GitHub Copilot Snapshot verified: June 19, 2026 Scope: Interactive command languages, context sigils, skills, subagents, planning, review, insights, and differences between terminal, desktop, IDE, and cloud harnesses. This is a living reference. Command availability can vary by version, operating system, plan, experimental flags, and connected extensions. In every harness, typing / in the active composer is the best final check for what is available in that exact installation. Executive summary The five product families increasingly share the same building blocks - slash commands, reusable skills, project instructions, MCP, custom agents, shell execution, and context management - but they expose them through different command languages. Codex has the clearest use of $ : $skill-name explicitly invokes a skill, while $app-slug attaches an app/connector. @ is primarily workspace/file context, though recent Codex releases are moving toward a unified mentions menu. Codex has /goal , but parallel subagents are requested in natural language rather than through /fleet . Claude Code has the broadest built-in command catalog and the richest collection of packaged workflows. Skills are invoked as /skill-name , not with $ . Its stand-out commands include /insights , /batch , /code-review , /loop , /ultraplan , and /workflows . OpenCode has a smaller built-in slash-command surface but a very flexible customization model. @ can reference both files and agents; custom commands support $ARGUMENTS , $1 , $2 , shell-output injection, file references, agent selection, and forced subtask execution. Cursor combines an IDE, terminal CLI, and Cloud Agents around one rules, skills, MCP, and subagent system. Skills and custom subagents use /name ; @ attaches files, folders, docs, terminals, prior chats, diffs, browser state, and manual rules. Cursor CLI uses /shell rather than a documented shortcut, and & prompt hands a local CLI task to a Cloud Agent. GitHub Copilot must be split by harness. Copilot CLI and the Copilot app use a modern agent runtime with /fleet , /chronicle , /research , skills, plugins, and custom agents. VS Code Chat uses a different interaction model centered on /explain , /fix , file , and @workspace . GitHub.com Chat has another, smaller set of conversation commands and @ attachments. How to read the comparison The closest equivalents are: | Intent | Codex | Claude Code | OpenCode | Cursor | GitHub Copilot CLI | |---|---|---|---|---|---| | Persistent objective | /goal | Natural language, plan/workflow; no direct equivalent | Natural language; no direct equivalent | Plan/checkpoints; no persistent /goal object | Plan/autopilot; no direct /goal equivalent | | Plan before editing | /plan | /plan or /ultraplan | Switch to Plan agent | Plan mode: Shift+Tab , /plan , or --mode=plan | /plan ; Shift+Tab can select plan mode | | Parallel subagents | Ask explicitly: “spawn agents in parallel” | /batch , subagents, agent teams, workflows | @subagent , automatic delegation, or subtask: true | Automatic or /subagent-name ; ask for parallel work; /best-of-n uses worktrees | /fleet | | Inspect agent workers | /agent | /agents , /tasks , claude agents | Child-session navigation | Agent UI; background output under ~/.cursor/subagents/ ; Cloud Agents dashboard | /tasks , /agents , /subagents | | Session insights | /usage , /status ; no /insights equivalent | /insights , /usage , /team-onboarding | No built-in equivalent | /context ; team analytics, but no personal /insights equivalent | /chronicle , /usage | | Code review | /review , /diff | /code-review , /review , /security-review , /simplify | Plan/review agent or custom command | CLI Ctrl+R ; Agent /review or /review-bugbot ; Bugbot PR review | /review , /security-review , /diff , /pr | | Explicit skill | $skill-name or /skills picker | /skill-name | Agent loads through the skill tool | /skill-name | /skill-name ; manage with /skills | | File context | @path , /mention | @path | @path | @file , @folder , @Docs , @Terminals , @Past Chats , diffs, browser | CLI: @path ; VS Code: file ; GitHub.com: @ attachment | | Direct shell | command | command | command | CLI /shell command , /sh , or /run ; no documented shortcut | command ; alone enters shell mode | 1. The sigils: what / , @ , $ , , and mean | Sigil | Codex | Claude Code | OpenCode | Cursor | GitHub Copilot | |---|---|---|---|---|---| / | Built-in session commands; enabled skills also appear in the list | Built-in commands, bundled skills, user skills, plugin skills, MCP prompts | Built-in and user-defined custom commands | CLI commands, Agent Skills, custom subagents, and product workflows such as /worktree and /review | CLI: full runtime commands and skills. VS Code/GitHub.com: surface-specific chat commands | @ | Stable docs: fuzzy workspace/file mention. Recent releases also expose a broader unified mention menu | File mention in normal sessions; in agent view it can target a custom agent or sibling repository | File/reference mention and subagent mention | Files/folders, docs, terminals, past chats, Git diffs, browser context, and manually applied rules | CLI: file context. VS Code: chat participants such as @workspace . GitHub.com: attach repos, issues, PRs, files, and extensions. Fleet prompts can name @custom-agent | $ | First-class interactive syntax: $skill-name and $app-slug | Not the normal invocation sigil. $ARGUMENTS and positional variables are used inside skill/command definitions | Not the normal invocation sigil. $ARGUMENTS , $1 , $2 , and so on are custom-command template variables | No primary interactive $ convention; ordinary shell environment variables still use $VAR | No primary interactive $ convention. Skills use /skill-name ; shell/environment configuration may still contain ordinary $VAR syntax | | No primary interactive context convention | In agent view, 123 can identify an existing PR session | No primary interactive context convention | No primary interactive context convention documented | CLI: 123 attaches a GitHub issue or PR. VS Code: file , selection , project , and other chat variables | | Run a local shell command and add the result to context, subject to sandbox/approval rules | Enter shell mode for one command; output enters context | Run a shell command; output enters context | No documented shortcut; Cursor CLI uses /shell , /sh , or /run | Run a local shell command bypassing Copilot. alone enters multi-command shell mode | Sigil portability at a glance Practical consequence The most dangerous portability mistake is assuming the same sigil means the same thing: @workspace is a Copilot VS Code participant, not a portable way to request repository context elsewhere. $frontend-design is a Codex skill invocation, but Claude Code and Copilot normally expect /frontend-design . $ARGUMENTS in Claude Code and OpenCode belongs inside the reusable command definition; it is not how an end user invokes the command. file is Copilot vocabulary. Codex, Claude Code, and OpenCode normally use @file .- Cursor uses /skill-name and /subagent-name ; its @ menu is for context and manual rules, not the primary custom-agent selector. 2. Capability comparison Legend: Yes = directly documented; Partial = available through another mechanism or only some surfaces; No = no close built-in equivalent documented. | Capability | Codex | Claude Code | OpenCode | Cursor | Copilot CLI | Copilot VS Code Chat | |---|---|---|---|---|---|---| | Rich built-in slash-command catalog | Yes | Yes - largest catalog | Partial - compact built-in set | Yes in CLI; editor also exposes skills and workflow commands | Yes | Partial - task shortcuts | | User-defined slash commands | Legacy custom prompts are deprecated in favor of skills | Yes; custom commands merged into skills | Yes; highly configurable command templates | Skills replace older commands; /migrate-to-skills converts them | Yes through skills/plugins | Yes through .prompt.md prompt files | Agent Skills SKILL.md | Yes | Yes | Yes | Yes; reads Cursor, Agent, Claude, and Codex skill directories | Yes | Yes in agent mode | | Explicit skill syntax | $skill-name | /skill-name | No dedicated user sigil documented; agent uses skill tool | /skill-name | /skill-name | Prompt files use /name ; Agent Skills can be selected/invoked by the agent | | Implicit skill selection | Yes | Yes | Yes | Yes unless disable-model-invocation: true | Yes | Yes in agent mode | | Project instructions | AGENTS.md | CLAUDE.md | AGENTS.md | .cursor/rules/ .mdc , AGENTS.md ; CLI also reads root CLAUDE.md | .github/copilot-instructions.md , AGENTS.md , and related instruction files | Same Copilot instruction system | | Custom agents | Yes | Yes | Yes | Yes: .cursor/agents , with Claude/Codex-compatible locations | Yes | Yes | | Named agent selection | Configure agents; ask in prompt; /agent switches spawned threads | /agents , --agent , agent view @agent | Tab for primary agents; @subagent | /subagent-name or natural language; automatic delegation | /agent , --agent , natural language | Agent picker/custom agents | | Parallel worker command | No dedicated /fleet ; ask explicitly | /batch ; also teams/workflows | No dedicated fleet command; delegation and subtasks | Ask for parallel work; multiple Task calls; /best-of-n for parallel worktrees | /fleet | Agent mode supports subagents, but not the CLI /fleet vocabulary | | Persistent goal object | /goal | No direct equivalent | No direct equivalent | No direct equivalent | No direct equivalent | No direct equivalent | | Planning mode | /plan | /plan , /ultraplan | Built-in Plan agent | Editor Plan mode; CLI /plan , --plan , --mode=plan | /plan , plan mode | Plan mode | | Side question without polluting main history | /side or /btw | /btw | Start/switch session | Ask mode: /ask or --mode=ask | /ask experimental | Start a new chat or use another chat surface | | Built-in insights from history | No dedicated /insights | /insights | No | /context ; team analytics only | /chronicle | Synced agent-session search; no equivalent VS Code slash command | | Built-in deep research | Web search/tools; no dedicated slash command in core catalog | /deep-research | Tools/custom agents | Explore subagent and web search tools; no dedicated research slash command documented | /research | @github web for web-enabled questions | | Built-in code review | /review | Multiple review workflows | Custom/review agent pattern | CLI Ctrl+R ; /review , /review-bugbot , and Bugbot PR review | /review , /security-review | Review actions and Copilot code review | | Scheduled prompts | Codex app automations | /loop , routines/workflows | Plugins/external scheduling | No comparable built-in scheduler documented | /every , /after experimental | Not the same interactive mechanism | | Session rollback with file restoration | Git-based inspection; no general /undo in the app catalog | /rewind / /undo | /undo and /redo require Git | Editor checkpoints; CLI /rewind | /undo / /rewind , tool-layer tracking | Checkpoints in supported agent modes | | MCP | Yes | Yes | Yes | Yes across editor, CLI, and Cloud Agents | Yes, GitHub MCP built in | Yes | | Plugins | Yes | Yes | Yes | Yes; CLI /plugin and marketplaces | Yes | Extensions/customizations, but not identical to CLI plugins | | Local sandbox/permissions | Yes | Yes | Yes | Yes; CLI /sandbox , permissions and approval modes | Yes | Workspace trust and agent tool approvals | | Cloud delegation | Codex Cloud | Claude Code on the web | Self-hosted server/web; provider-dependent | Cloud Agents; CLI & prompt ; local /in-cloud subagent | /delegate , --cloud , cloud agent | Can delegate to Copilot cloud agent | 3.OpenAI Codex Harnesses | Harness | Best use | Command-language notes | |---|---|---| Codex CLI | Terminal-native local work, scripting, shell-heavy debugging, subagents | Richest Codex slash catalog; @ , $ , and are all meaningful | Codex app | Parallel threads, worktrees, automations, Git review, artifacts | Smaller slash list, visual project/session management, shared skills | Codex IDE extension | Editor context, selections, local/cloud handoff | Surface-specific /local , /cloud , /auto-context ; shared config with CLI | Codex Cloud/web | Background work in configured cloud environments | Usually delegated from app, IDE, CLI, or web rather than controlled through the full local slash catalog | High-value Codex CLI commands | Category | Commands | |---|---| | Project/session | /init , /new , /resume , /fork , /archive , /delete , /clear , /title | | Context | /compact , /status , /usage , /memories , /mention | | Work control | /plan , /goal , /side , /btw , /ps , /stop | | Agents/extensions | /agent , /skills , /apps , /plugins , /hooks , /mcp , /import | | Model/behavior | /model , /fast , /personality , /permissions , /experimental | | Review/output | /diff , /review , /copy , /raw , /theme , /statusline | | Account/support | /feedback , /logout , /debug-config , /exit , /quit | Codex app slash commands /feedback , /goal , /init , /mcp , /plan , /review , /status Codex IDE extension slash commands /auto-context , /cloud , /cloud-environment , /feedback , /goal , /local , /review , /status Skills, apps, and context - Use $skill-name to explicitly invoke a skill. - Use /skills to browse available skills; enabled skills also appear in the slash menu. /apps inserts a connector as $app-slug .- Use @path or /mention for file context. - Use command for a local shell command. Subagent behavior Codex supports parallel subagents in the CLI and app, but the trigger is an explicit natural-language request rather than /fleet . For example: Spawn three subagents in parallel: one for security, one for test gaps, and one for maintainability. Wait for all three and merge the findings. /agent does not itself mean “start a fleet”; it switches between already spawned agent threads. Distinctive strengths - Persistent /goal state with pause/resume/clear behavior. - First-class $ syntax for skills and apps. - Tight local/cloud handoff across CLI, app, and IDE. - App-centric parallel threads, worktrees, automations, artifact previews, and Git review. 4.Claude Code Harnesses Claude Code is available in the terminal, IDE, desktop app, and browser. Anthropic describes the CLI as the most complete surface; desktop and IDE trade some CLI-only capabilities for visual review and tighter editor integration. High-value Claude Code commands | Category | Commands | |---|---| | Setup/config | /init , /memory , /mcp , /permissions , /agents , /skills , /config , /model , /effort | | Planning | /plan , /ultraplan , /advisor | | Parallel work | /agents , /tasks , /background , /batch , /fork , /workflows | | Context/session | /context , /compact , /btw , /clear , /resume , /branch , /teleport , /remote-control | | Review/verification | /diff , /code-review , /review , /security-review , /simplify , /verify | | Research/diagnosis | /deep-research , /debug , /doctor | | Automation | /loop , /workflows , /autofix-pr | | Insights/usage | /insights , /usage , /stats , /team-onboarding | Commands that are especially distinctive /insights analyzes Claude Code sessions for project areas, interaction patterns, and friction points. /batch decomposes a large change into roughly 5-30 worktree-isolated subagents, each expected to implement, test, and open a pull request. /code-review can review, fix, comment on a PR, or run an ultra cloud review. /simplify runs multiple cleanup-oriented review agents. /loop runs a repeated or self-paced task. /ultraplan and /ultrareview connect terminal work to deeper cloud planning/review. /team-onboarding analyzes recent usage and generates a teammate onboarding guide. Skills and custom commands - Invoke a skill as /skill-name . - User skills live under .claude/skills/