Skip to content

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 — full okms.{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

python scripts/cli.py ping

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.