ankra skills
Install the curated Ankra Agent Skills into a Cursor/Claude Code skills directory. The skills teach your agent to follow Ankra’s recommended practices for the CLI, ImportCluster YAML, stacks/addons, GitOps, CI/CD, SOPS secrets, Helm registries, observability, alerts, Terraform, and cloud clusters. Because skills are only picked up when they match the conversation, install also writes a small always-applied rule (Cursor rule / CLAUDE.md block) that tells the agent Kubernetes here is managed by Ankra and to route changes through the GitOps repo or the ankra CLI instead of raw kubectl/helm. Skip it with —no-rules. Add —with-hooks to also install an agent hook that pauses direct kubectl/helm cluster mutations for confirmation. Skills are embedded in the CLI, so installation works offline. ankra skills list ankra skills install ankra skills install —editor claude-code ankra skills install —project . ankra skills install —with-hooks ankra skills install ankra-cli ankra-gitopsankra skills guard
Read an agent hook event (JSON) from stdin and print a permission decision. Wired by ‘ankra skills install —with-hooks’ into Cursor’s beforeShellExecution hook and Claude Code’s PreToolUse hook. Shell commands that would mutate a Kubernetes cluster out-of-band (kubectl apply, helm upgrade, …) return an “ask” decision explaining the Ankra GitOps workflow; read-only commands and anything unparseable pass through unchanged.| Flag | Default | Description |
|---|---|---|
--format | cursor | hook event format: cursor or claude |
ankra skills install
Install all skills (default) or only the named ones. By default skills install into ~/.cursor/skills/ (personal, available in every project). Use —editor claude-code to install into ~/.claude/skills/ instead. Use —project <DIR> to install into the selected editor’s project skills directory (—project . for the current directory). Install also writes an always-applied rule so the agent treats Ankra as the default route for Kubernetes work (skip with —no-rules): a local Cursor plugin rule or project .cursor/rules/ankra.mdc for Cursor, a managed CLAUDE.md block for Claude Code. With —with-hooks it additionally installs an agent hook (‘ankra skills guard’) that intercepts direct kubectl/helm cluster mutations and asks for confirmation, pointing back at the Ankra workflow.| Flag | Default | Description |
|---|---|---|
--editor | cursor | skills app to target: cursor or claude-code |
--force | false | overwrite existing skills without prompting |
--no-rules | false | skip installing the always-applied agent rule |
--personal | false | install into the selected editor’s personal skills directory (default) |
--project | install into <DIR>/<editor config>/skills (use ”.” for the current directory) | |
--source | read skills from a local directory instead of the embedded copy | |
--with-hooks | false | also install the agent hook that gates direct kubectl/helm cluster mutations |
ankra skills list
List the available Ankra skills| Flag | Default | Description |
|---|---|---|
--editor | cursor | skills app to target: cursor or claude-code |
-o, --output | Output format: json or yaml (default: human-readable) | |
--personal | false | install into the selected editor’s personal skills directory (default) |
--project | install into <DIR>/<editor config>/skills (use ”.” for the current directory) | |
--source | read skills from a local directory instead of the embedded copy |
ankra skills uninstall
Remove the named skills, or all Ankra skills when none are given. A full uninstall (no skill names) also removes the always-applied agent rule and the ‘ankra skills guard’ hook that install added for this editor and scope; uninstalling named skills leaves them in place.| Flag | Default | Description |
|---|---|---|
--editor | cursor | skills app to target: cursor or claude-code |
--personal | false | install into the selected editor’s personal skills directory (default) |
--project | install into <DIR>/<editor config>/skills (use ”.” for the current directory) | |
--source | read skills from a local directory instead of the embedded copy |