openkms-skill¶
Portable Agent Skill + thin Python CLI that calls the openKMS HTTP API with a personal API key (Settings → API keys).
Works with any Agent Skills–compatible host, including:
| Host | How it is installed |
|---|---|
| openKMS Agents (in-product) | Upload zip on Agents → Skills, install under a project’s Agent settings |
| Claude Code | ./install.sh --target claude-code → ~/.claude/skills/openkms/ |
| OpenCode | ./install.sh --target opencode → ~/.config/opencode/skills/openkms/ |
| Pi | ./install.sh --target pi → ~/.pi/agent/skills/openkms/ |
| Other / manual | Copy the skill tree; set config.yml or env vars |
Repo path: openkms-skill/. Distinct from openkms-cli (worker/pipeline tooling).
Layout (agentskills.io)¶
openkms-skill/
SKILL.md # short entry: iron rules + routing
references/ # load on demand (progressive disclosure)
setup.md / pitfalls.md / workflows.md / research-report.md
commands-content.md / commands-ontology.md / commands-ops.md
functions-authoring.md / actions-authoring.md
app-builder.md / kubernetes.md
REFERENCE.md # CLI ↔ HTTP (operators / review)
assets/report-examples/ # Reveal + Plotly sample decks (business + product intro)
scripts/cli.py # only supported access path for agents
README.md / requirements.txt / install.sh / package.sh
Install¶
cd openkms-skill
./install.sh # auto: OpenCode / Claude Code / Pi if present
./install.sh --target pi
./install.sh --target all
./package.sh --version 1.0.0 # zip for Agents → Skills upload
install.sh preserves an existing config.yml at the destination.
Standalone / first-time deps: pip install -r requirements.txt once in the skill tree (project Agents install runs this when the skill is installed).
Configure¶
External hosts (Claude Code, OpenCode, …): copy config.yml.example → config.yml:
api_base_url— backend origin (e.g.http://127.0.0.1:8102)api_key— fullokms.{uuid}.{secret}from Settings → API keys
In-product Agents: the runner injects (no key required on disk):
OPENKMS_API_KEY,OPENKMS_API_BASE_URL,OPENKMS_SKILL_ROOT
scripts/openkms/config.py prefers these env vars over config.yml.
Use¶
Agents must use only python scripts/cli.py … (see SKILL.md). Do not hand-roll curl against /api/…; extend the skill in-repo if a workflow is missing. Always run <command> --help before inventing flags.
Coverage spans content, ontology, connectors/jobs, module Apps, and Kubernetes on registered clusters. For research / analysis deliverables, open references/research-report.md (recommended Reveal.js + Plotly static HTML; adapt assets/report-examples/). Agents follow SKILL.md routing into references/commands-*.md and mandatory authoring guides (functions-authoring, actions-authoring, app-builder, kubernetes). Prefer kubernetes register-app for Apps. CLI↔HTTP for operators: references/REFERENCE.md. Control-plane APIs (feature toggles, schedules hub, Console admin) are not wrapped.
Domain ontologies (e.g. Tushare → Stock → read-only Functions) are tenant DIY via references/workflows.md G — not platform seeds. Hosted UIs: workflow H. Concepts: Understanding the ontology. Lab: Tushare DIY. Action execute applies create / modify / delete edits on Explorer-created instances; dataset/Neo4j synthetic ids remain deferred — Manager alignment.
Mutations require -y/--yes or --dry-run (non-TTY without --yes exits 2). Optional default_document_channel_id / default_article_channel_id in config.yml.