Skip to main content
Kite ships two clients for the Platform API:
  • kite, a command-line tool for your terminal and scripts.
  • The Kite MCP server, which gives AI agents such as Claude Code, Claude, and Cursor the same actions as native tools.
Both call https://api.kiteml.com/v1 with your account, so anything you start from one shows up in the other and in the dashboard.

Install the CLI

The CLI is published on PyPI as kiteml-cli and needs Python 3.10 or later.
This installs two commands: kite, the CLI, and kite-mcp, the MCP server for running it locally. Drop [mcp] if you only want the CLI.

Sign in

This opens the dashboard in your browser. Click Authorize CLI and the CLI receives an API key named CLI on <your machine>. It’s valid for 90 days and stored in ~/.kite/credentials.json. You can revoke it any time from Platform API → API keys. On a server or in CI, skip the browser and set an API key instead:
KITE_API_KEY takes precedence over a stored login. To check your setup, run kite doctor. It confirms the API is reachable and your key is valid, and exits non-zero if either check fails.

Use the CLI

Every command prints JSON: {"ok": true, "data": …} on success, or {"ok": false, "error": …} with exit code 1 on failure. Pipe it to jq in scripts. Commands that start long-running work take --wait to poll until the work finishes. Run kite --help or kite <command> --help to see every option.

Augmentations

download writes the dataset to disk with its LeRobot layout intact. To deliver to Hugging Face instead, pass --output huggingface --hf-repo your-org/pusht-marble. --model relight forces relighting, and --reference-image gives Kite a photo of the look to match. See Augmentations for when to use each.

Twins

Twins are in private beta and enabled per account. See Twins.
A twin takes about 100 minutes. With --out, the command waits, then downloads the archive, verifies its checksum, and unpacks it to ./twins/<twin id>/scene.xml.

RL runs

Describe the behavior in plain words, check the spec for free, then train:
plan writes a task spec you can edit. validate compiles it and reports what each reward term pays three canned policies, at no cost. --budget probe trains for 300 iterations to give a first signal in minutes. download unpacks the bundle to ./kiteml_<run id>/, with the policy at policy/policy.onnx. See RL runs for the spec and the bundle.

Connect the MCP server

The MCP server lets an AI agent drive Kite for you. Ask Claude to “relight lerobot/pusht to match this photo” or “train the Open Duck to walk and tell me when it passes”, and it calls Kite’s tools, polls the work, and reports back. Kite hosts the server at https://mcp.kiteml.com/mcp, so there’s nothing to install.
The first time Claude uses a Kite tool, your browser opens to sign in to Kite. To authenticate with an API key instead, for example in CI:

Run it locally

The hosted server can’t read or write files on your machine. When a twin or RL run finishes, its tools return the exact curl command to download the output, and your agent runs it. To give the server direct access to local files, for example to pass a reference photo by path, run it on your machine with the CLI installed:
The local server reads KITE_API_KEY from its environment and runs over stdio.

Tools

Every tool returns {"ok": true, "data": …} or {"ok": false, "error": …}. Status tools for twins and RL runs add a next field that tells the agent what to do now: wait and check again, read the report, or run the download command. Tools that only read are marked read-only, and tools that cancel work are marked destructive, so your client can ask before running them. Work the agent starts is charged to your account like any other request.
Need help? Reach out at raul@kiteml.com.