How GSD's Multi-Runtime Support Works Across Claude Code, Gemini, Codex, Copilot, and More
I switched between three different AI coding assistants last month. Claude Code for complex refactoring. Gemini CLI for quick prototyping. Codex for automated code generation.
Each time I switched, I had to reinstall my workflow tools. Configure agents. Set up templates. Remember different command syntaxes.
Then I discovered GSD’s multi-runtime support. One installer. Fifteen runtimes. Same agents, workflows, and references everywhere.
The Problem: Fragmented AI Coding Workflows
I was maintaining separate configurations for each AI assistant:
~/.claude/ commands/ gsd/ plan.md execute.md ...
~/.codex/ commands/ gsd/ plan.md execute.md ...
~/.gemini/ commands/ gsd/ plan.md execute.md ...Every update meant copying files across three locations. Every new runtime meant starting from scratch.
The Solution: Runtime Abstraction Layer
GSD’s installer handles the differences. I run one command:
npx get-shit-done-cc@latestThe installer presents an interactive menu. I select which runtimes I use. It handles the rest.
How Command Syntax Differs by Runtime
The first thing I noticed: each runtime has its own command convention.
| Runtime | Command Syntax | Example |
|---|---|---|
| Claude Code | /gsd-command | /gsd-plan |
| Gemini CLI | /gsd-command | /gsd-plan |
| Copilot | /gsd-command | /gsd-plan |
| Codex | $gsd-command | $gsd-plan |
| Cline | .clinerules | No slash commands |
At first I was confused. Why different syntaxes?
Then I understood: each runtime parses inputs differently. Claude Code recognizes slash commands. Codex expects dollar-sign prefixes. Cline uses a configuration file instead.
GSD’s abstraction layer generates the right format for each:
┌─────────────────────────────────────────────────────┐│ GSD Core Agents ││ (planner, executor, researcher, verifier...) │└─────────────────────┬───────────────────────────────┘ │ ▼┌─────────────────────────────────────────────────────┐│ Runtime Abstraction Layer ││ - Detects target runtime ││ - Adapts command format ││ - Places files in correct location │└─────────────────────┬───────────────────────────────┘ │ ┌─────────────┼─────────────┐ ▼ ▼ ▼ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ Claude │ │ Codex │ │ Cline │ │ /gsd-* │ │ $gsd-* │ │.clinerules│ └─────────┘ └─────────┘ └─────────┘Installation Locations by Runtime
Each AI assistant expects configuration in a specific directory:
| Runtime | Global Location | Local Location |
|---|---|---|
| Claude Code | ~/.claude/ | .claude/ |
| Gemini CLI | ~/.gemini/ | .gemini/ |
| Codex | ~/.codex/ | .codex/ |
| Copilot | ~/.github/ | .github/ |
| Cursor | ~/.cursor/ | .cursor/ |
| Windsurf | ~/.codeium/windsurf/ | .windsurf/ |
| Cline | ~/.cline/ | .clinerules |
I used global installation for tools I use everywhere. Local installation for project-specific configurations.
Non-Interactive Installation for Automation
For CI/CD pipelines or setup scripts, I use the flag-based approach:
# Single runtimenpx get-shit-done-cc --claude --globalnpx get-shit-done-cc --gemini --localnpx get-shit-done-cc --codex --global
# All runtimes at oncenpx get-shit-done-cc --all --globalThis skips the interactive menu entirely.
Verifying Installation
Each runtime requires a different verification method:
# Claude Code, Gemini, Copilot, Qwen Code> /gsd-help
# Codex> $gsd-help
# Cline> cat .clinerulesI accidentally tried /gsd-help in Codex once. Nothing happened. The dollar-sign prefix matters.
Skills vs Commands: A Format Evolution
Modern Claude Code (2.1.88+) and Codex use a newer “skills” format:
.claude/ skills/ gsd-planner/ SKILL.md gsd-executor/ SKILL.mdOlder versions use the “commands” format:
.claude/ commands/ gsd/ plan.md execute.mdThe installer detects the version and uses the appropriate format. I didn’t need to know which format my runtime expected.
What Remains Identical Across Runtimes
Despite syntax differences, every runtime gets the same core content:
- Agents: planner, executor, researcher, verifier
- Workflows: new-project, plan-phase, execute-phase
- References: checkpoints, gates, model-profiles
- Templates: PLAN.md, SUMMARY.md
This consistency means I can switch runtimes without relearning GSD’s workflow.
Supported Runtimes (As of v1.29)
Claude Code OpenCode Gemini CLIKilo Codex CopilotCursor Windsurf AntigravityAugment Trae Qwen CodeCline CodeBuddyFifteen runtimes. One command to install all.
Troubleshooting Common Issues
Issue: Commands not recognized after installation.
Cause: Wrong runtime directory.
Fix: Check the installation location table above. For Windsurf, the global location is ~/.codeium/windsurf/, not ~/.windsurf/.
Issue: Mixed syntax errors (using /gsd-* in Codex).
Cause: Muscle memory from another runtime.
Fix: Reference the syntax table. Codex uses $gsd-*, not /gsd-*.
Issue: Cline installation shows no slash commands.
Cause: Cline doesn’t support slash commands.
Fix: Check .clinerules file instead. GSD generates configuration directives there.
Internationalization
README translations exist for:
- Portuguese (README.pt-BR.md)
- Chinese (README.zh-CN.md)
- Japanese (README.ja-JP.md)
- Korean (README.ko-KR.md)
The installer output remains in English, but documentation covers major languages.
Final Words + More Resources
My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me
Here are also the most important links from this article along with some further resources that will help you in this scope:
Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!
Comments