Documentation menu

Quickstart

One path, about ten minutes, from a fresh account to a runbook running in a managed sandbox. This is written for builders: no framework to stand up, no infrastructure to provision. Get a token, add a provider key, connect your tool, and run.

1. Get a token

Sign up at jetty.io, then go to Settings → API keys and create one. The token looks like mlc_….

If you use Claude Code, skip the dashboard: run /jetty-setup and it writes the token to ~/.config/jetty/token for you.

Either way, export it in your shell so the CLI and SDK can find it:

export JETTY_API_TOKEN="mlc_…"

2. Add a provider key

The agent that runs your runbook needs a model to think with, so it needs at least one model provider key. Go to Settings → AI providers and add one: Anthropic, OpenAI, Google, Bedrock, or OpenRouter. One is enough to start.

Your provider key stays on Jetty and is injected into the sandbox at run time. The agent uses it; you never paste it into a runbook.

3. Connect your tool

The fastest on-ramp is the Claude Code plugin. From Claude Code:

claude plugin marketplace add jettyio/jettyio-skills
claude plugin install jetty@jetty
/jetty-setup

That bundles the /jetty commands, the setup wizard, and the runbook skills. See the plugin guide for what ships with it.

On Cursor, VS Code, Windsurf, Zed, Codex, or Gemini CLI instead? Add the MCP server for the same tools with one line of config.

4. Run your first runbook

You have two ways to get a runbook to run. Either fork one that already works from the public directory, or create one from scratch with the create-runbook skill in Claude Code.

From Claude Code, the shortest run is one line:

/jetty run <task> in <collection>

To run a runbook over the API, point the chat-completions endpoint at its raw URL with the jetty block:

curl https://flows-api.jetty.io/v1/chat/completions \
  -H "Authorization: Bearer $JETTY_API_TOKEN" \
  -d '{
    "model": "claude-sonnet-4-6",
    "messages": [{"role": "user", "content": "Run the evaluation suite"}],
    "jetty": { "collection": "my-evals", "runbook_url": "https://raw.githubusercontent.com/org/repo/main/RUNBOOK.md" }
  }'

5. See the trajectory

Every run is recorded as a trajectory: the full sequence of step inputs and outputs, so you can replay exactly what happened and where it went right or wrong. View it in the app, or fetch it through the SDK or the MCP get-trajectory tool.

You read the trajectory to confirm the runbook worked, and to find where it failed when it didn't. More on that in trajectories & evaluation.


Next