Contents
Quickstart
Deploy an agent from one file, chat with it from the terminal, and watch it in the console. You need Node.js 22 or later, an API key from a model provider (this guide uses Anthropic), and an E2B API key for the agent's sandbox (get one at e2b.dev).
# 1. Create a workspace
Open the console and sign up or sign in. The first time, you create a workspace or pick one you were invited to. Agents, sessions, keys, and billing belong to the workspace; a new workspace starts on the Free plan.
# 2. Install the CLI
The CLI needs Node.js 22 or later.
npm install -g @parel/cli parel --version
# 3. Log in
In the console, open Settings → API keys and create a key. The default access, Write, is enough for this guide. Then run:
parel login # API key: <paste your pk_... key> # Logged in. https://api.parel.sh pk_3f9c...7a1b
The key is saved in ~/.parel/config.json. In CI, set PAREL_API_KEY instead.
# 4. Add your model key
PAREL doesn't sell model calls: agents use your own provider key, and the provider bills you directly. In the console, open Settings → Model providers and add an Anthropic or OpenAI key, or connect OpenRouter. The example below uses Anthropic.
You can set the model key from the CLI instead, but parel provider-keys set needs an API key with Admin access (new keys are Write). The sandbox key works differently: agent.yaml refers to it as ${E2B_API_KEY}. Export it in your shell before you deploy, and parel deploy uploads it, encrypted, with the agent; a Write key is enough for that. You can also save it once in Settings → Secrets.
# Optional, instead of the console (needs an Admin key):
export ANTHROPIC_API_KEY=sk-ant-...
parel provider-keys set anthropic --from-env ANTHROPIC_API_KEY
# The sandbox key, referenced as ${E2B_API_KEY} in agent.yaml below:
export E2B_API_KEY=e2b_...# 5. Create agent.yaml
This is the only file you write. It gives the agent a name, a model, a system prompt, an E2B sandbox (a shell the agent can use), rolling-summary memory, a $10 budget per session, and a limit of 100 steps per turn. Secret values never go in this file; write only ${NAME} references.
version: "1"
agent:
name: my-first-agent
model:
provider: anthropic
model: claude-sonnet-5
plugins:
- system-static:
prompt: "You are a helpful research assistant."
- sandbox-e2b:
apiKey: ${E2B_API_KEY}
- memory-rolling-summary
- budget-cap:
max_usd: 10
runtime:
maxSteps: 100# 6. Deploy
parel capabilities doctor checks that the model key and every secret reference can be found. parel deploy uploads the file as version v1 and makes it live. Deploying again with the same agent.name adds v2, v3, and so on.
parel capabilities doctor agent.yaml # Ready: 5 capabilities checked. # Secret references # ✓ E2B_API_KEY local env (uploads on deploy) parel deploy agent.yaml # Secrets # ✓ E2B_API_KEY from local env → agent-level (e2b_***) # Deployed: my-first-agent v1 agt_a1B2c3D4e5F6
# 7. Chat
Start a session with the agent's name (its id works too). /help lists the agent's slash commands. /quit leaves the chat but the session stays; parel chat --session picks it up again.
parel chat --agent my-first-agent
PAREL Chat
session: ssn_x1Y2z3A4b5C6
/quit to exit, /messages for log, /help for the agent's commands
$ How many entries are in /etc?
▸ Let me check in the sandbox.
[tool] bash({"command":"ls /etc | wc -l"})
[result] 74
▸ There are 74 entries in /etc.
$ /help
[/help] Available commands:
/help — List the commands available in this session
/compact <focus> — Fold older history into the running summary now
$ /quit# 8. Watch it in the console
Open Sessions in the console and pick your session. Conversation shows the chat; Trace shows each turn and step with its time, tokens, and estimated model cost; Events lists the raw events. You can keep chatting from there too.