Files
github-spec-kit/docs/reference/integrations.md
vishal-gandhi 237e918f11 feat(integrations): add Devin for Terminal skills-based integration (#2364)
* feat(integrations): add Devin for Terminal skills-based integration

- Register DevinIntegration as a SkillsIntegration with .devin/skills/ layout
- Add catalog entry, docs row, and supported-agents listing
- Display /speckit-<command> hyphen syntax in init "Next Steps" panel
  (matches Claude/Cursor/Copilot skills mode, since Devin invokes skills
  by directory name)

Closes #2346

* fix(devin): implement -p non-interactive dispatch; clarify skills comment

Addresses Copilot review on PR #2364:

- Override build_exec_args() in DevinIntegration to emit
  'devin -p <prompt> [--model X]' for non-interactive text dispatch
  (verified Devin CLI supports -p / --print). Returns None when
  output_json=True since Devin has no structured-output flag, so
  CommandStep workflows that require JSON cleanly raise
  NotImplementedError instead of crashing on an unknown CLI flag.
  requires_cli=True is retained for tool detection.

- Extend the skills-integrations enumeration comment in
  specify_cli/__init__.py to include copilot and devin so the
  comment matches the code below it.

* fix(devin): always return exec args; document plain-text stdout

Addresses third Copilot review comment on PR #2364.

Returning None from build_exec_args() when output_json=True
incorrectly used the codebase's IDE-only sentinel: workflow
CommandStep checks 'impl.build_exec_args("test") is None' to
detect non-dispatchable integrations (test_workflows.py exercises
this with WindsurfIntegration). The previous implementation made
Devin appear non-dispatchable to all command steps even though it
runs fine via 'devin -p'.

Always return the args list. When output_json is requested, Devin
is still dispatched and returns plain-text stdout instead of
structured JSON; the docstring documents this explicitly.

* docs(devin): include claude in skills-integrations enumeration comment

Addresses Copilot review on PR #2364: the comment listing skills
integrations omitted Claude, which is also a SkillsIntegration
subclass. Updated to keep the comment accurate for future readers.

* test(devin): add build_exec_args regression tests; bump catalog updated_at

Addresses Copilot review on PR #2364, per @mnriem's request to
'address the Copilot feedback, especially the testing ask':

- tests/integrations/test_integration_devin.py: add TestDevinBuildExecArgs
  with three regression assertions:
    * build_exec_args returns args (not the None IDE-only sentinel)
    * --output-format is never emitted, regardless of output_json
    * --model flag is passed through correctly
- integrations/catalog.json: bump top-level updated_at to reflect the
  Devin entry addition so downstream catalog consumers can detect the
  change reliably.
2026-04-29 16:22:06 -05:00

13 KiB

Supported AI Coding Agent Integrations

The Specify CLI supports a wide range of AI coding agents. When you run specify init, the CLI sets up the appropriate command files, context rules, and directory structures for your chosen AI coding agent — so you can start using Spec-Driven Development immediately, regardless of which tool you prefer.

Supported AI Coding Agents

Agent Key Notes
Amp amp
Antigravity (agy) agy Skills-based integration; skills are installed automatically
Auggie CLI auggie
Claude Code claude Skills-based integration; installs skills in .claude/skills
CodeBuddy CLI codebuddy
Codex CLI codex Skills-based integration; installs skills into .agents/skills and invokes them as $speckit-<command>
Cursor cursor-agent
Devin for Terminal devin Skills-based integration; installs skills into .devin/skills/ and invokes them as /speckit-<command>
Forge forge
Gemini CLI gemini
GitHub Copilot copilot
Goose goose Uses YAML recipe format in .goose/recipes/
IBM Bob bob IDE-based agent
iFlow CLI iflow
Junie junie
Kilo Code kilocode
Kimi Code kimi Skills-based integration; supports --migrate-legacy for dotted→hyphenated directory migration
Kiro CLI kiro-cli Alias: --integration kiro
Mistral Vibe vibe
opencode opencode
Pi Coding Agent pi Pi doesn't have MCP support out of the box, so taskstoissues won't work as intended. MCP support can be added via extensions
Qoder CLI qodercli
Qwen Code qwen
Roo Code roo
SHAI (OVHcloud) shai
Tabnine CLI tabnine
Trae trae Skills-based integration; skills are installed automatically
Windsurf windsurf
Generic generic Bring your own agent — use --integration generic --integration-options="--commands-dir <path>" for AI coding agents not listed above

List Available Integrations

specify integration list

Shows all available integrations, which one is currently installed, and whether each requires a CLI tool or is IDE-based.

Install an Integration

specify integration install <key>
Option Description
--script sh|ps Script type: sh (bash/zsh) or ps (PowerShell)
--integration-options Integration-specific options (e.g. --integration-options="--commands-dir .myagent/cmds")

Installs the specified integration into the current project. Fails if another integration is already installed — use switch instead. If the installation fails partway through, it automatically rolls back to a clean state.

Note: All integration management commands require a project already initialized with specify init. To start a new project with a specific agent, use specify init <project> --integration <key> instead.

Uninstall an Integration

specify integration uninstall [<key>]
Option Description
--force Remove files even if they have been modified

Uninstalls the current integration (or the specified one). Spec Kit tracks every file created during install along with a SHA-256 hash of the original content:

  • Unmodified files are removed automatically.
  • Modified files (where you've made manual edits) are preserved so your customizations are not lost.
  • Use --force to remove all integration files regardless of modifications.

Switch to a Different Integration

specify integration switch <key>
Option Description
--script sh|ps Script type: sh (bash/zsh) or ps (PowerShell)
--force Force removal of modified files during uninstall
--integration-options Options for the target integration

Equivalent to running uninstall followed by install in a single step.

Upgrade an Integration

specify integration upgrade [<key>]
Option Description
--force Overwrite files even if they have been modified
--script sh|ps Script type: sh (bash/zsh) or ps (PowerShell)
--integration-options Options for the integration

Reinstalls the current integration with updated templates and commands (e.g., after upgrading Spec Kit). Defaults to the currently installed integration; if a key is provided, it must match the installed one — otherwise the command fails and suggests using switch instead. Detects locally modified files and blocks the upgrade unless --force is used. Stale files from the previous install that are no longer needed are removed automatically.

Integration-Specific Options

Some integrations accept additional options via --integration-options:

Integration Option Description
generic --commands-dir Required. Directory for command files
kimi --migrate-legacy Migrate legacy dotted skill directories to hyphenated format

Example:

specify integration install generic --integration-options="--commands-dir .myagent/cmds"

FAQ

Can I use multiple integrations at the same time?

No. Only one AI coding agent integration can be installed per project. Use specify integration switch <key> to change to a different AI coding agent.

What happens to my changes when I uninstall or switch?

Files you've modified are preserved automatically. Only unmodified files (matching their original SHA-256 hash) are removed. Use --force to override this.

How do I know which key to use?

Run specify integration list to see all available integrations with their keys, or check the Supported AI Coding Agents table above.

Do I need the AI coding agent installed to use an integration?

CLI-based integrations (like Claude Code, Gemini CLI) require the tool to be installed. IDE-based integrations (like Windsurf, Cursor) work through the IDE itself. Some agents like GitHub Copilot support both IDE and CLI usage. specify integration list shows which type each integration is.

When should I use upgrade vs switch?

Use upgrade when you've upgraded Spec Kit and want to refresh the same integration's templates. Use switch when you want to change to a different AI coding agent.