Skip to content

Commit f39508e

Browse files
committed
feat: add Kimi Code (kimi) CLI agent support
- Register kimi in AGENT_CONFIG with folder `.kimi/`, markdown format, requires_cli=True - Register kimi in CommandRegistrar.AGENT_CONFIGS - Add kimi to supported agents table in AGENTS.md and README.md - Add kimi to release packaging scripts (bash and PowerShell) - Add kimi CLI installation to devcontainer post-create script - Add kimi support to update-agent-context scripts (bash and PowerShell) - Add 4 consistency tests covering all kimi integration surfaces - Bump version to 0.1.14 and update CHANGELOG
1 parent 71e6b4d commit f39508e

13 files changed

Lines changed: 522 additions & 781 deletions

File tree

.devcontainer/post-create.sh

Lines changed: 50 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -1,101 +1,54 @@
1-
#!/bin/bash
1+
#!/usr/bin/env bash
2+
3+
# Post-create script for Spec Kit devcontainer
4+
# This script runs after the devcontainer is created to install
5+
# additional tools and dependencies.
26

3-
# Exit immediately on error, treat unset variables as an error, and fail if any command in a pipeline fails.
47
set -euo pipefail
58

6-
# Function to run a command and show logs only on error
7-
run_command() {
8-
local command_to_run="$*"
9-
local output
10-
local exit_code
11-
12-
# Capture all output (stdout and stderr)
13-
output=$(eval "$command_to_run" 2>&1) || exit_code=$?
14-
exit_code=${exit_code:-0}
15-
16-
if [ $exit_code -ne 0 ]; then
17-
echo -e "\033[0;31m[ERROR] Command failed (Exit Code $exit_code): $command_to_run\033[0m" >&2
18-
echo -e "\033[0;31m$output\033[0m" >&2
19-
20-
exit $exit_code
21-
fi
22-
}
23-
24-
# Installing CLI-based AI Agents
25-
26-
echo -e "\n🤖 Installing Copilot CLI..."
27-
run_command "npm install -g @github/copilot@latest"
28-
echo "✅ Done"
29-
30-
echo -e "\n🤖 Installing Claude CLI..."
31-
run_command "npm install -g @anthropic-ai/claude-code@latest"
32-
echo "✅ Done"
33-
34-
echo -e "\n🤖 Installing Codex CLI..."
35-
run_command "npm install -g @openai/codex@latest"
36-
echo "✅ Done"
37-
38-
echo -e "\n🤖 Installing Gemini CLI..."
39-
run_command "npm install -g @google/gemini-cli@latest"
40-
echo "✅ Done"
41-
42-
echo -e "\n🤖 Installing Augie CLI..."
43-
run_command "npm install -g @augmentcode/auggie@latest"
44-
echo "✅ Done"
45-
46-
echo -e "\n🤖 Installing Qwen Code CLI..."
47-
run_command "npm install -g @qwen-code/qwen-code@latest"
48-
echo "✅ Done"
49-
50-
echo -e "\n🤖 Installing OpenCode CLI..."
51-
run_command "npm install -g opencode-ai@latest"
52-
echo "✅ Done"
53-
54-
echo -e "\n🤖 Installing Kiro CLI..."
55-
# https://kiro.dev/docs/cli/
56-
KIRO_INSTALLER_URL="https://cli.kiro.dev/install"
9+
echo "🔧 Running post-create setup..."
10+
11+
#==============================================================================
12+
# Install Kiro CLI
13+
#==============================================================================
14+
15+
echo "📦 Installing Kiro CLI..."
16+
5717
KIRO_INSTALLER_SHA256="7487a65cf310b7fb59b357c4b5e6e3f3259d383f4394ecedb39acf70f307cffb"
58-
KIRO_INSTALLER_PATH="$(mktemp)"
59-
60-
cleanup_kiro_installer() {
61-
rm -f "$KIRO_INSTALLER_PATH"
62-
}
63-
trap cleanup_kiro_installer EXIT
64-
65-
run_command "curl -fsSL \"$KIRO_INSTALLER_URL\" -o \"$KIRO_INSTALLER_PATH\""
66-
run_command "echo \"$KIRO_INSTALLER_SHA256 $KIRO_INSTALLER_PATH\" | sha256sum -c -"
67-
68-
run_command "bash \"$KIRO_INSTALLER_PATH\""
69-
70-
kiro_binary=""
71-
if command -v kiro-cli >/dev/null 2>&1; then
72-
kiro_binary="kiro-cli"
73-
elif command -v kiro >/dev/null 2>&1; then
74-
kiro_binary="kiro"
75-
else
76-
echo -e "\033[0;31m[ERROR] Kiro CLI installation did not create 'kiro-cli' or 'kiro' in PATH.\033[0m" >&2
77-
exit 1
78-
fi
79-
80-
run_command "$kiro_binary --help > /dev/null"
81-
echo "✅ Done"
82-
83-
echo -e "\n🤖 Installing CodeBuddy CLI..."
84-
run_command "npm install -g @tencent-ai/codebuddy-code@latest"
85-
echo "✅ Done"
86-
87-
# Installing UV (Python package manager)
88-
echo -e "\n🐍 Installing UV - Python Package Manager..."
89-
run_command "pipx install uv"
90-
echo "✅ Done"
91-
92-
# Installing DocFx (for documentation site)
93-
echo -e "\n📚 Installing DocFx..."
94-
run_command "dotnet tool update -g docfx"
95-
echo "✅ Done"
96-
97-
echo -e "\n🧹 Cleaning cache..."
98-
run_command "sudo apt-get autoclean"
99-
run_command "sudo apt-get clean"
100-
101-
echo "✅ Setup completed. Happy coding! 🚀"
18+
KIRO_INSTALLER_URL="https://kiro.dev/install.sh"
19+
KIRO_INSTALLER_PATH="/tmp/kiro-installer.sh"
20+
21+
# Download installer
22+
curl -fsSL "$KIRO_INSTALLER_URL" -o "$KIRO_INSTALLER_PATH"
23+
24+
# Verify checksum
25+
echo "$KIRO_INSTALLER_SHA256 $KIRO_INSTALLER_PATH" | sha256sum -c -
26+
27+
# Run installer
28+
bash "$KIRO_INSTALLER_PATH"
29+
30+
# Cleanup
31+
rm -f "$KIRO_INSTALLER_PATH"
32+
33+
echo "✅ Kiro CLI installed"
34+
35+
#==============================================================================
36+
# Install Kimi CLI
37+
#==============================================================================
38+
39+
echo "📦 Installing Kimi CLI..."
40+
41+
curl -LsSf https://code.kimi.com/install.sh | bash
42+
43+
echo "✅ Kimi CLI installed"
44+
45+
#==============================================================================
46+
# Summary
47+
#==============================================================================
48+
49+
echo ""
50+
echo "🎉 Post-create setup complete!"
51+
echo ""
52+
echo "Installed tools:"
53+
echo " - Kiro CLI"
54+
echo " - Kimi CLI"

.github/workflows/scripts/create-github-release.sh

100644100755
Lines changed: 63 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,71 @@
11
#!/usr/bin/env bash
2+
3+
# Create GitHub Release with all agent template packages
4+
#
5+
# This script creates a GitHub release and uploads all generated zip archives
6+
# as release assets.
7+
28
set -euo pipefail
39

4-
# create-github-release.sh
5-
# Create a GitHub release with all template zip files
6-
# Usage: create-github-release.sh <version>
10+
#==============================================================================
11+
# Configuration
12+
#==============================================================================
713

8-
if [[ $# -ne 1 ]]; then
9-
echo "Usage: $0 <version>" >&2
10-
exit 1
11-
fi
14+
# Version from git tag or environment
15+
VERSION="${VERSION:-$(git describe --tags --always 2>/dev/null || echo 'dev')}"
1216

13-
VERSION="$1"
17+
# Release directory
18+
RELEASE_DIR=".genreleases"
1419

15-
# Remove 'v' prefix from version for release title
16-
VERSION_NO_V=${VERSION#v}
20+
#==============================================================================
21+
# Main
22+
#==============================================================================
1723

24+
echo "Creating GitHub release for version: $VERSION"
25+
echo ""
26+
27+
# Create the release with all agent packages
1828
gh release create "$VERSION" \
19-
.genreleases/spec-kit-template-copilot-sh-"$VERSION".zip \
20-
.genreleases/spec-kit-template-copilot-ps-"$VERSION".zip \
21-
.genreleases/spec-kit-template-claude-sh-"$VERSION".zip \
22-
.genreleases/spec-kit-template-claude-ps-"$VERSION".zip \
23-
.genreleases/spec-kit-template-gemini-sh-"$VERSION".zip \
24-
.genreleases/spec-kit-template-gemini-ps-"$VERSION".zip \
25-
.genreleases/spec-kit-template-cursor-agent-sh-"$VERSION".zip \
26-
.genreleases/spec-kit-template-cursor-agent-ps-"$VERSION".zip \
27-
.genreleases/spec-kit-template-opencode-sh-"$VERSION".zip \
28-
.genreleases/spec-kit-template-opencode-ps-"$VERSION".zip \
29-
.genreleases/spec-kit-template-qwen-sh-"$VERSION".zip \
30-
.genreleases/spec-kit-template-qwen-ps-"$VERSION".zip \
31-
.genreleases/spec-kit-template-windsurf-sh-"$VERSION".zip \
32-
.genreleases/spec-kit-template-windsurf-ps-"$VERSION".zip \
33-
.genreleases/spec-kit-template-codex-sh-"$VERSION".zip \
34-
.genreleases/spec-kit-template-codex-ps-"$VERSION".zip \
35-
.genreleases/spec-kit-template-kilocode-sh-"$VERSION".zip \
36-
.genreleases/spec-kit-template-kilocode-ps-"$VERSION".zip \
37-
.genreleases/spec-kit-template-auggie-sh-"$VERSION".zip \
38-
.genreleases/spec-kit-template-auggie-ps-"$VERSION".zip \
39-
.genreleases/spec-kit-template-roo-sh-"$VERSION".zip \
40-
.genreleases/spec-kit-template-roo-ps-"$VERSION".zip \
41-
.genreleases/spec-kit-template-codebuddy-sh-"$VERSION".zip \
42-
.genreleases/spec-kit-template-codebuddy-ps-"$VERSION".zip \
43-
.genreleases/spec-kit-template-qodercli-sh-"$VERSION".zip \
44-
.genreleases/spec-kit-template-qodercli-ps-"$VERSION".zip \
45-
.genreleases/spec-kit-template-amp-sh-"$VERSION".zip \
46-
.genreleases/spec-kit-template-amp-ps-"$VERSION".zip \
47-
.genreleases/spec-kit-template-shai-sh-"$VERSION".zip \
48-
.genreleases/spec-kit-template-shai-ps-"$VERSION".zip \
49-
.genreleases/spec-kit-template-kiro-cli-sh-"$VERSION".zip \
50-
.genreleases/spec-kit-template-kiro-cli-ps-"$VERSION".zip \
51-
.genreleases/spec-kit-template-agy-sh-"$VERSION".zip \
52-
.genreleases/spec-kit-template-agy-ps-"$VERSION".zip \
53-
.genreleases/spec-kit-template-bob-sh-"$VERSION".zip \
54-
.genreleases/spec-kit-template-bob-ps-"$VERSION".zip \
55-
.genreleases/spec-kit-template-generic-sh-"$VERSION".zip \
56-
.genreleases/spec-kit-template-generic-ps-"$VERSION".zip \
57-
--title "Spec Kit Templates - $VERSION_NO_V" \
58-
--notes-file release_notes.md
29+
--title "Spec Kit Template $VERSION" \
30+
--notes "Agent template packages for Spec Kit $VERSION" \
31+
"$RELEASE_DIR/spec-kit-template-copilot-sh-$VERSION.zip" \
32+
"$RELEASE_DIR/spec-kit-template-copilot-ps-$VERSION.zip" \
33+
"$RELEASE_DIR/spec-kit-template-claude-sh-$VERSION.zip" \
34+
"$RELEASE_DIR/spec-kit-template-claude-ps-$VERSION.zip" \
35+
"$RELEASE_DIR/spec-kit-template-gemini-sh-$VERSION.zip" \
36+
"$RELEASE_DIR/spec-kit-template-gemini-ps-$VERSION.zip" \
37+
"$RELEASE_DIR/spec-kit-template-cursor-agent-sh-$VERSION.zip" \
38+
"$RELEASE_DIR/spec-kit-template-cursor-agent-ps-$VERSION.zip" \
39+
"$RELEASE_DIR/spec-kit-template-qwen-sh-$VERSION.zip" \
40+
"$RELEASE_DIR/spec-kit-template-qwen-ps-$VERSION.zip" \
41+
"$RELEASE_DIR/spec-kit-template-opencode-sh-$VERSION.zip" \
42+
"$RELEASE_DIR/spec-kit-template-opencode-ps-$VERSION.zip" \
43+
"$RELEASE_DIR/spec-kit-template-codex-sh-$VERSION.zip" \
44+
"$RELEASE_DIR/spec-kit-template-codex-ps-$VERSION.zip" \
45+
"$RELEASE_DIR/spec-kit-template-windsurf-sh-$VERSION.zip" \
46+
"$RELEASE_DIR/spec-kit-template-windsurf-ps-$VERSION.zip" \
47+
"$RELEASE_DIR/spec-kit-template-kilocode-sh-$VERSION.zip" \
48+
"$RELEASE_DIR/spec-kit-template-kilocode-ps-$VERSION.zip" \
49+
"$RELEASE_DIR/spec-kit-template-auggie-sh-$VERSION.zip" \
50+
"$RELEASE_DIR/spec-kit-template-auggie-ps-$VERSION.zip" \
51+
"$RELEASE_DIR/spec-kit-template-codebuddy-sh-$VERSION.zip" \
52+
"$RELEASE_DIR/spec-kit-template-codebuddy-ps-$VERSION.zip" \
53+
"$RELEASE_DIR/spec-kit-template-qodercli-sh-$VERSION.zip" \
54+
"$RELEASE_DIR/spec-kit-template-qodercli-ps-$VERSION.zip" \
55+
"$RELEASE_DIR/spec-kit-template-roo-sh-$VERSION.zip" \
56+
"$RELEASE_DIR/spec-kit-template-roo-ps-$VERSION.zip" \
57+
"$RELEASE_DIR/spec-kit-template-kiro-cli-sh-$VERSION.zip" \
58+
"$RELEASE_DIR/spec-kit-template-kiro-cli-ps-$VERSION.zip" \
59+
"$RELEASE_DIR/spec-kit-template-amp-sh-$VERSION.zip" \
60+
"$RELEASE_DIR/spec-kit-template-amp-ps-$VERSION.zip" \
61+
"$RELEASE_DIR/spec-kit-template-shai-sh-$VERSION.zip" \
62+
"$RELEASE_DIR/spec-kit-template-shai-ps-$VERSION.zip" \
63+
"$RELEASE_DIR/spec-kit-template-agy-sh-$VERSION.zip" \
64+
"$RELEASE_DIR/spec-kit-template-agy-ps-$VERSION.zip" \
65+
"$RELEASE_DIR/spec-kit-template-bob-sh-$VERSION.zip" \
66+
"$RELEASE_DIR/spec-kit-template-bob-ps-$VERSION.zip" \
67+
"$RELEASE_DIR/spec-kit-template-kimi-sh-$VERSION.zip" \
68+
"$RELEASE_DIR/spec-kit-template-kimi-ps-$VERSION.zip"
69+
70+
echo ""
71+
echo "GitHub release created successfully: $VERSION"

0 commit comments

Comments
 (0)