From 92621bca7d61565c301b1e0285855b2a36bde5b2 Mon Sep 17 00:00:00 2001 From: lispking Date: Mon, 22 Sep 2025 14:20:31 +0800 Subject: [PATCH] feat: support codebuddy ai --- README.md | 3 ++- src/specify_cli/__init__.py | 12 +++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d5b371b7..328ca4e3 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,7 @@ Want to see Spec Kit in action? Watch our [video overview](https://www.youtube.c | [Windsurf](https://windsurf.com/) | ✅ | | | [Kilo Code](https://github.com/Kilo-Org/kilocode) | ✅ | | | [Auggie CLI](https://docs.augmentcode.com/cli/overview) | ✅ | | +| [CodeBuddy Code](https://cnb.cool/codebuddy/codebuddy-code) | ✅ | | | [Codex CLI](https://github.com/openai/codex) | ⚠️ | Codex [does not support](https://github.com/openai/codex/issues/2890) custom arguments for slash commands. | ## 🔧 Specify CLI Reference @@ -124,7 +125,7 @@ The `specify` command supports the following options: | Argument/Option | Type | Description | |------------------------|----------|------------------------------------------------------------------------------| | `` | Argument | Name for your new project directory (optional if using `--here`) | -| `--ai` | Option | AI assistant to use: `claude`, `gemini`, `copilot`, `cursor`, `qwen`, `opencode`, `codex`, `windsurf`, `kilocode`, or `auggie` | +| `--ai` | Option | AI assistant to use: `claude`, `gemini`, `copilot`, `cursor`, `qwen`, `opencode`, `codex`, `windsurf`, `kilocode`, `auggie`, or `codebuddy` | | `--script` | Option | Script variant to use: `sh` (bash/zsh) or `ps` (PowerShell) | | `--ignore-agent-tools` | Flag | Skip checks for AI agent tools like Claude Code | | `--no-git` | Flag | Skip git repository initialization | diff --git a/src/specify_cli/__init__.py b/src/specify_cli/__init__.py index 8025dae7..58016e24 100644 --- a/src/specify_cli/__init__.py +++ b/src/specify_cli/__init__.py @@ -74,6 +74,7 @@ AI_CHOICES = { "windsurf": "Windsurf", "kilocode": "Kilo Code", "auggie": "Auggie CLI", + "codebuddy": "CodeBuddy Code", } # Add script type choices SCRIPT_TYPE_CHOICES = {"sh": "POSIX Shell (bash/zsh)", "ps": "PowerShell"} @@ -777,11 +778,13 @@ def init( specify init my-project --ai opencode specify init my-project --ai codex specify init my-project --ai windsurf + specify init my-project --ai kilocode specify init my-project --ai auggie + specify init my-project --ai codebuddy specify init --ignore-agent-tools my-project specify init --here --ai claude specify init --here --ai codex - specify init --here + specify init --here --ai codebuddy """ # Show banner first show_banner() @@ -892,6 +895,10 @@ def init( if not check_tool("auggie", "https://docs.augmentcode.com/cli/setup-auggie/install-auggie-cli"): install_url = "https://docs.augmentcode.com/cli/setup-auggie/install-auggie-cli" agent_tool_missing = True + elif selected_ai == "codebuddy": + if not check_tool("codebuddy", "https://cnb.cool/codebuddy/codebuddy-code"): + install_url = "https://cnb.cool/codebuddy/codebuddy-code" + agent_tool_missing = True # GitHub Copilot and Cursor checks are not needed as they're typically available in supported IDEs if agent_tool_missing: @@ -1015,6 +1022,7 @@ def init( "windsurf": ".windsurf/", "kilocode": ".kilocode/", "auggie": ".augment/", + "codebuddy": ".codebuddy/", "copilot": ".github/" } @@ -1093,6 +1101,7 @@ def check(): tracker.add("opencode", "opencode") tracker.add("codex", "Codex CLI") tracker.add("auggie", "Auggie CLI") + tracker.add("codebuddy", "CodeBuddy Code") git_ok = check_tool_for_tracker("git", tracker) claude_ok = check_tool_for_tracker("claude", tracker) @@ -1106,6 +1115,7 @@ def check(): opencode_ok = check_tool_for_tracker("opencode", tracker) codex_ok = check_tool_for_tracker("codex", tracker) auggie_ok = check_tool_for_tracker("auggie", tracker) + codebuddy_ok = check_tool_for_tracker("codebuddy", tracker) console.print(tracker.render())