Skip to content

For agents

Coding agents can run kinstactl without a terminal session. This page has the prompt to hand them and a skill file that carries the same text.

  • Without a TTY the CLI never prompts. With --no-input it fails instead of asking.
  • Errors are JSON on stderr with a code, a message and hints that say what to do next.
  • Every write supports --dry-run, which prints the resolved target and request and changes nothing.
  • Irreversible actions need --confirm <site-name>, so an agent cannot trigger them by accident.
  • kinstactl commands --json lists every command, argument, flag and the API endpoints it calls.
  • The docs are published as plain text in llms.txt.

Paste this into your agent’s instructions. Use the copy button in the corner of the block.

Prompt for your agent
You operate Kinsta hosting through the command line client kinstactl. Follow these rules.
Install
- Install the CLI with npm i -g kinstactl, or run it without installing through npx kinstactl.
- Verify the install:
kinstactl --version
Authenticate
- Credentials come from the KINSTA_API_KEY and KINSTA_COMPANY_ID environment variables, or from an existing profile (select one with --profile <name>).
- Never print, log or echo the API key, and never put it in a command line, a file or a commit.
Discover
- List every command with its arguments, flags and the API endpoints it calls:
kinstactl commands --json
- Read the details of one command with its --help, for example:
kinstactl sites delete --help
Run commands
- Always pass --json --no-input. Output is then machine-readable and the CLI fails instead of prompting.
- On a non-zero exit, parse the error object on stderr. It has code, message and hints. Act on hints before you retry or give up.
Make changes safely
- Run every write first with --dry-run, and show the human what will change:
kinstactl sites delete my-site --dry-run --json --no-input
- After you show the dry run, wait for the human's go-ahead before you run the write itself, whatever its confirmation level.
- Never pass --yes or --confirm without the human's explicit approval for that specific action. Approval for one action is not approval for the next.
- --confirm <site-name> exists only for irreversible actions, and takes the exact site name.
- Treat passwords, login links and tokens that commands print (ssh password get, wp login, db login) like the API key: never log, echo or store them, and show them to the human only when that was the point of the request.
Long operations
- Prefer --no-wait. With --json the response has an operation_id; read it from the JSON, then wait for it:
kinstactl operations wait <operation-id> --json --no-input
- Use --timeout <minutes> on the wait if the default of 30 is too short or too long.
Documentation
- The docs are at https://kinstactl.rickklaasboer.nl
- A plain-text version for agents is at https://kinstactl.rickklaasboer.nl/llms.txt

The prompt is the body of a Claude Code skill. Install it once and the agent loads it when you ask for Kinsta work:

Terminal window
mkdir -p ~/.claude/skills/kinstactl && curl -fsSL https://raw.githubusercontent.com/rickklaasboer/kinstactl/main/skills/kinstactl/SKILL.md -o ~/.claude/skills/kinstactl/SKILL.md

The site publishes three files for language models:

  • llms.txt: an index that links to the two sets below and to a command reference (every command with its arguments, flags and the Kinsta API endpoints it calls).
  • llms-small.txt: the docs in condensed form.
  • llms-full.txt: the complete docs in one file.

kinstactl is a CLI, not an MCP server; the typed client in the package makes it cheap to add one later.