Skip to content

Commit 0a6337d

Browse files
kevinelliottclaude
andcommitted
Add Crush CLI support (v0.4.9)
Crush CLI Integration: - Add Crush agent to registry (charmbracelet/crush) - Create pkg/adapters/crush.go with full Agent implementation - Install via Homebrew (macOS) or go install (Linux/Windows) - Terminal-first AI coding assistant with beautiful TUI - Multi-provider support (Anthropic, OpenAI, Groq, Gemini, etc.) Implementation: - Follows established stdin-based message passing pattern - Three-part prompt structure (identity/role, task, conversation) - Message filtering to prevent echo in multi-agent conversations - Output cleaning for system messages and prompts - Health check via --version flag - Version detection via GitHub releases API - Supports both SendMessage and StreamMessage modes Testing: - Updated registry test to expect 14 agents - All tests pass with race detector Documentation: - Updated README with Crush in supported agents list - Added comprehensive v0.4.9 release notes to CHANGELOG - Installation instructions for all platforms 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 48d1e8b commit 0a6337d

File tree

5 files changed

+433
-17
lines changed

5 files changed

+433
-17
lines changed

CHANGELOG.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [v0.4.9] - 2025-10-25
11+
12+
### Added
13+
- **Crush CLI Agent Support (Charmbracelet)**
14+
- New adapter for Crush CLI (`crush` command)
15+
- Terminal-first AI coding assistant with beautiful TUI
16+
- Installation via Homebrew: `brew install charmbracelet/tap/crush`
17+
- Installation via Go: `go install github.com/charmbracelet/crush@latest`
18+
- Supports stdin-based message passing
19+
- Complete integration with standardized three-part prompt system
20+
- Comprehensive logging and error handling
21+
- Registry entry with install/uninstall/upgrade commands for all platforms
22+
- Multi-provider authentication support:
23+
- Anthropic (ANTHROPIC_API_KEY)
24+
- OpenAI (OPENAI_API_KEY)
25+
- Groq (GROQ_API_KEY)
26+
- Google Gemini (GEMINI_API_KEY)
27+
- AWS Bedrock, Azure OpenAI, and others
28+
29+
### Technical Details
30+
- Implements all required Agent interface methods
31+
- Follows established patterns from Claude and Groq adapters
32+
- Message filtering to prevent echo in multi-agent conversations
33+
- Output cleaning to remove system messages and prompts
34+
- Health check via `--version` flag
35+
- Version detection via GitHub releases API (charmbracelet/crush)
36+
- Supports both SendMessage and StreamMessage modes
37+
- Current latest version: v0.12.3
38+
39+
### Benefits
40+
- Adds another high-quality terminal-first agent option
41+
- Multi-provider support allows flexibility in LLM choice
42+
- Beautiful TUI experience from Charmbracelet
43+
- MCP (Model Context Protocol) and LSP integration support
44+
1045
## [v0.4.8] - 2025-10-25
1146

1247
### Fixed

README.md

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ All agents now use a **standardized interaction pattern** with structured three-
3030
-**Claude** (Anthropic) - Advanced reasoning and coding
3131
-**Codex** (OpenAI) - Code generation specialist (non-interactive exec mode)
3232
-**Copilot** (GitHub) - Terminal-based coding agent with multiple model support
33+
-**Crush** (Charm/Charmbracelet) - Terminal-first AI coding assistant with multi-provider support
3334
-**Cursor** (Cursor AI) - IDE-integrated AI assistance
3435
-**Factory** (Factory.ai) - Agent-native software development with Droid (non-interactive exec mode)
3536
-**Gemini** (Google) - Multimodal understanding
@@ -96,27 +97,24 @@ All agents now use a **standardized interaction pattern** with structured three-
9697

9798
See [CHANGELOG.md](CHANGELOG.md) for detailed version history and release notes.
9899

99-
**Latest Release**: v0.4.8 - Fixed GitHub API rate limiting
100+
**Latest Release**: v0.4.9 - Crush CLI support
100101

101-
**What's New in v0.4.8**:
102+
**What's New in v0.4.9**:
102103

103-
🚀 **Fixed GitHub API Rate Limiting**:
104-
- **PyPI Integration for Kimi**: Now uses PyPI API instead of GitHub releases
105-
- No more 403 rate limit errors
106-
- Fetches from `https://pypi.org/pypi/kimi-cli/json`
107-
- More reliable and aligns with actual installation method (uv/pip)
108-
- **npm Registry for Qwen**: Uses npm registry instead of GitHub releases
109-
- Direct API access without rate limiting
110-
- Package: `@qwen-code/qwen-code`
111-
- Aligns with actual installation method
112-
- **Benefits**: Faster, more reliable version checking with no rate limits
104+
💘 **Crush CLI Support (Charmbracelet)**:
105+
- **New Agent Adapter**: Full support for Charm's Crush CLI
106+
- Install: `brew install charmbracelet/tap/crush` (macOS) or `go install github.com/charmbracelet/crush@latest`
107+
- Terminal-first AI coding assistant with beautiful TUI
108+
- Multi-provider support (Anthropic, OpenAI, Groq, Gemini, and more)
109+
- Supports stdin-based message passing
110+
- Complete integration with AgentPipe's multi-agent conversation system
113111

114-
**Previous Release - v0.4.7** (2025-10-25): Improved Kimi version detection
115-
- Initial attempt using GitHub releases (now superseded by PyPI)
112+
**Previous Release - v0.4.8** (2025-10-25): Fixed GitHub API rate limiting
113+
- PyPI integration for Kimi, npm registry for Qwen
114+
- No more 403 rate limit errors
116115

116+
**Previous Release - v0.4.7** (2025-10-25): Improved Kimi version detection
117117
**Previous Release - v0.4.6** (2025-10-25): Groq Code CLI support
118-
- Full support for Groq Code CLI powered by Groq LPUs
119-
- Fast inference with temperature configuration support
120118
- Dedicated security workflows (Trivy and CodeQL)
121119
- Enhanced README badges with downloads and stars metrics
122120
- Fixed Windows test failures for platform-specific installations

internal/registry/agents.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,30 @@
9696
},
9797
"requires_auth": true
9898
},
99+
{
100+
"name": "Crush",
101+
"command": "crush",
102+
"description": "Charm's Crush CLI - Terminal-first AI coding assistant",
103+
"docs": "https://github.com/charmbracelet/crush",
104+
"package_manager": "github",
105+
"package_name": "charmbracelet/crush",
106+
"install": {
107+
"darwin": "brew install charmbracelet/tap/crush",
108+
"linux": "go install github.com/charmbracelet/crush@latest",
109+
"windows": "go install github.com/charmbracelet/crush@latest"
110+
},
111+
"uninstall": {
112+
"darwin": "brew uninstall crush",
113+
"linux": "See https://github.com/charmbracelet/crush for uninstall instructions",
114+
"windows": "See https://github.com/charmbracelet/crush for uninstall instructions"
115+
},
116+
"upgrade": {
117+
"darwin": "brew upgrade crush",
118+
"linux": "go install github.com/charmbracelet/crush@latest",
119+
"windows": "go install github.com/charmbracelet/crush@latest"
120+
},
121+
"requires_auth": true
122+
},
99123
{
100124
"name": "Cursor",
101125
"command": "cursor-agent",

internal/registry/registry_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func TestGetAll(t *testing.T) {
2828
}
2929

3030
// Verify we have the expected agents
31-
expectedCount := 13 // Amp, Claude, Codex, Copilot, Cursor, Factory, Gemini, Groq, Kimi, OpenCode, Qoder, Qwen, Ollama
31+
expectedCount := 14 // Amp, Claude, Codex, Copilot, Crush, Cursor, Factory, Gemini, Groq, Kimi, OpenCode, Qoder, Qwen, Ollama
3232
if len(agents) != expectedCount {
3333
t.Errorf("Expected %d agents, got %d", expectedCount, len(agents))
3434
}

0 commit comments

Comments
 (0)