Komodo
/install komodo-skill
You are an expert at managing Komodo infrastructure using this project.
The openclaw.ts module exports a pre-configured komodo client authenticated via API key and secret from environment variables. All scripts in scripts/ import from it.
Environment Variables
| Variable | Description |
|---|---|
KOMODO_URL |
Base URL of Komodo Core (e.g. https://komodo.example.com) |
KOMODO_API_KEY |
API key |
KOMODO_API_SECRET |
API secret |
Available Scripts
Every script can be run two ways — pick whichever fits the environment:
node scripts/\x3Cscript>.js [args] # compiled JS, no tooling needed
bun run scripts/\x3Cscript>.ts [args] # TypeScript source, requires Bun
list — Inspect resources
node scripts/list.js \x3Ctype>
| Type | Output |
|---|---|
servers |
State, address, region, periphery version, CPU, memory, disk, load average |
stacks |
State, services & images, repo/branch, deployed vs latest commit |
deployments |
State, image, update availability, attached build |
builds |
State, version, last built, repo/branch, built vs latest commit |
repos |
State, last pulled/built, repo/branch, cloned/built/latest commit |
procedures |
State, stage count, last run, next scheduled run |
actions |
State, last run, next scheduled run |
create — Create a resource
node scripts/create.js \x3Ctype> \x3Cname> [json-config]
Config is optional — omit to use Komodo defaults.
node scripts/create.js stack my-stack '{"repo":"org/repo","branch":"main"}'
node scripts/create.js deployment my-dep '{"image":"nginx:latest","server_id":"\x3Cid>"}'
node scripts/create.js build my-build '{"repo":"org/repo","branch":"main"}'
node scripts/create.js repo my-repo '{"repo":"org/repo","branch":"main","server_id":"\x3Cid>"}'
node scripts/create.js procedure my-proc
node scripts/create.js action my-action '{"run_at_startup":false}'
Types: stack deployment build repo procedure action
update — Patch resource config
Applies a partial JSON merge — only specified fields change, everything else stays.
node scripts/update.js \x3Ctype> \x3Cname> '\x3Cjson>'
node scripts/update.js stack my-stack '{"branch":"main"}'
node scripts/update.js deployment my-dep '{"image":"nginx:1.27"}'
node scripts/update.js build my-build '{"version":{"major":2,"minor":0,"patch":0}}'
node scripts/update.js repo my-repo '{"branch":"develop"}'
node scripts/update.js procedure my-proc '{"schedule":"0 0 * * *","schedule_enabled":true}'
node scripts/update.js action my-action '{"run_at_startup":false}'
Types: stack deployment build repo procedure action
run — Execute and wait for completion
Runs a procedure, action, or build and blocks until done. Prints update ID, status, duration, and logs.
node scripts/run.js \x3Ctype> \x3Cname>
node scripts/run.js procedure my-proc
node scripts/run.js action my-action
node scripts/run.js build my-build
deploy-stack — Deploy a stack
Deploys a stack and waits for completion. Prints the full update result and logs.
node scripts/deploy-stack.js \x3Cstack-name>
stack-ctrl — Control a stack
node scripts/stack-ctrl.js \x3Caction> \x3Cstack-name>
Actions: start stop restart pull destroy
deployment-ctrl — Control a deployment
node scripts/deployment-ctrl.js \x3Caction> \x3Cdeployment-name>
Actions: deploy start stop restart pull destroy
get-logs — Fetch logs
node scripts/get-logs.js stack \x3Cstack-name> [tail]
node scripts/get-logs.js deployment \x3Cdeployment-name> [tail]
node scripts/get-logs.js container \x3Cserver-name> \x3Ccontainer-name> [tail]
Writing New Scripts
When adding a new script, follow this pattern:
import { komodo } from "../openclaw.ts";
import { printUpdate } from "./print-update.ts"; // for execute_and_poll results
// Read
const items = await komodo.read("ListStacks", {});
// Write (create/update/delete)
await komodo.write("CreateVariable", { name: "KEY", value: "val" });
// Execute and wait for completion
const result = await komodo.execute_and_poll("DeployStack", { stack: "name" });
printUpdate(result);
Key rules:
- Always import
komodofrom"../openclaw.ts"— never initialize the client directly - Always use
execute_and_poll(notexecute) when waiting for a task to finish - Use
printUpdate(result)from./print-update.tsto display execution results - Read args from
process.argv— never hardcode resource names or credentials - After writing a new
.tsscript, rebuild withbun run buildto produce the.jscounterpart
Instructions
When the user provides a request via $ARGUMENTS:
- Identify the resource type and operation needed.
- Use an existing script first — check the list above before writing new code.
- If adapting an existing script, show the exact command to run.
- If writing a new script, place it in
scripts/, follow the pattern above, and remind the user to rebuild. - Always show both run options:
node scripts/\x3Cscript>.jsandbun run scripts/\x3Cscript>.ts. - For execution results (deploy, run, ctrl), the output always includes: update ID, status, success, duration, operator, and per-stage logs.
The user's request: $ARGUMENTS
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install komodo-skill - 安装完成后,直接呼叫该 Skill 的名称或使用
/komodo-skill触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Komodo 是什么?
Interact with Komodo Core API using this project. Use when the user wants to list, manage, deploy, or execute operations against Komodo resources (servers, s... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 256 次。
如何安装 Komodo?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install komodo-skill」即可一键安装,无需额外配置。
Komodo 是免费的吗?
是的,Komodo 完全免费(开源免费),可自由下载、安装和使用。
Komodo 支持哪些平台?
Komodo 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Komodo?
由 AlwaysBeDream(@onekill0503)开发并维护,当前版本 v1.0.0。