feat(kimi): add Kimi Code CLI integration support
Add complete support for Kimi Code CLI agent format. - Add convert_kimi() function to generate YAML agent specs - Add install_kimi() function to install agents to ~/.config/kimi/agents/ - Add Kimi to tool detection and installer UI - Add integrations/kimi/ directory (generated files gitignored) - Update integrations/README.md with Kimi documentation - Add generated agent directories to .gitignore Users can generate agents with: ./scripts/convert.sh --tool kimi
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
# windsurf — Single .windsurfrules for Windsurf
|
||||
# openclaw — OpenClaw SOUL.md files (openclaw_workspace/<agent>/SOUL.md)
|
||||
# qwen — Qwen Code SubAgent files (~/.qwen/agents/*.md)
|
||||
# kimi — Kimi Code CLI agent files (~/.config/kimi/agents/)
|
||||
# all — All tools (default)
|
||||
#
|
||||
# Output is written to integrations/<tool>/ relative to the repo root.
|
||||
@@ -348,6 +349,53 @@ HEREDOC
|
||||
fi
|
||||
}
|
||||
|
||||
convert_kimi() {
|
||||
local file="$1"
|
||||
local name description slug outdir agent_file body
|
||||
|
||||
name="$(get_field "name" "$file")"
|
||||
description="$(get_field "description" "$file")"
|
||||
slug="$(slugify "$name")"
|
||||
body="$(get_body "$file")"
|
||||
|
||||
outdir="$OUT_DIR/kimi/$slug"
|
||||
agent_file="$outdir/agent.yaml"
|
||||
mkdir -p "$outdir"
|
||||
|
||||
# Kimi Code CLI agent format: YAML with separate system prompt file
|
||||
cat > "$agent_file" <<HEREDOC
|
||||
version: 1
|
||||
agent:
|
||||
name: ${slug}
|
||||
extend: default
|
||||
system_prompt_path: ./system.md
|
||||
tools:
|
||||
- "kimi_cli.tools.multiagent:Task"
|
||||
- "kimi_cli.tools.ask_user:AskUserQuestion"
|
||||
- "kimi_cli.tools.todo:SetTodoList"
|
||||
- "kimi_cli.tools.shell:Shell"
|
||||
- "kimi_cli.tools.file:ReadFile"
|
||||
- "kimi_cli.tools.file:ReadMediaFile"
|
||||
- "kimi_cli.tools.file:Glob"
|
||||
- "kimi_cli.tools.file:Grep"
|
||||
- "kimi_cli.tools.file:WriteFile"
|
||||
- "kimi_cli.tools.file:StrReplaceFile"
|
||||
- "kimi_cli.tools.web:SearchWeb"
|
||||
- "kimi_cli.tools.web:FetchURL"
|
||||
- "kimi_cli.tools.plan:ExitPlanMode"
|
||||
- "kimi_cli.tools.plan.enter:EnterPlanMode"
|
||||
HEREDOC
|
||||
|
||||
# Write system prompt to separate file
|
||||
cat > "$outdir/system.md" <<HEREDOC
|
||||
# ${name}
|
||||
|
||||
${description}
|
||||
|
||||
${body}
|
||||
HEREDOC
|
||||
}
|
||||
|
||||
# Aider and Windsurf are single-file formats — accumulate into temp files
|
||||
# then write at the end.
|
||||
AIDER_TMP="$(mktemp)"
|
||||
@@ -445,6 +493,7 @@ run_conversions() {
|
||||
cursor) convert_cursor "$file" ;;
|
||||
openclaw) convert_openclaw "$file" ;;
|
||||
qwen) convert_qwen "$file" ;;
|
||||
kimi) convert_kimi "$file" ;;
|
||||
aider) accumulate_aider "$file" ;;
|
||||
windsurf) accumulate_windsurf "$file" ;;
|
||||
esac
|
||||
@@ -470,7 +519,7 @@ main() {
|
||||
esac
|
||||
done
|
||||
|
||||
local valid_tools=("antigravity" "gemini-cli" "opencode" "cursor" "aider" "windsurf" "openclaw" "qwen" "all")
|
||||
local valid_tools=("antigravity" "gemini-cli" "opencode" "cursor" "aider" "windsurf" "openclaw" "qwen" "kimi" "all")
|
||||
local valid=false
|
||||
for t in "${valid_tools[@]}"; do [[ "$t" == "$tool" ]] && valid=true && break; done
|
||||
if ! $valid; then
|
||||
@@ -486,7 +535,7 @@ main() {
|
||||
|
||||
local tools_to_run=()
|
||||
if [[ "$tool" == "all" ]]; then
|
||||
tools_to_run=("antigravity" "gemini-cli" "opencode" "cursor" "aider" "windsurf" "openclaw" "qwen")
|
||||
tools_to_run=("antigravity" "gemini-cli" "opencode" "cursor" "aider" "windsurf" "openclaw" "qwen" "kimi")
|
||||
else
|
||||
tools_to_run=("$tool")
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user