Skip to main content

Setup & Deployment

Karate Agent requires only Java 21+ and Docker — both are likely already on your machine. The dashboard is a single jar; everything else lives next to it.

Quick Setup​

# 1. Download the latest release
# https://github.com/karatelabs/karate-addons/releases
unzip karate-agent-<version>.zip # extracts to ./karate-agent/
cd karate-agent

# 2. Place your karate.lic in this directory
# Request: https://karatelabs.io/contact-us#demo

# 3. (Autonomous only) export OPENROUTER_API_KEY=... or ANTHROPIC_API_KEY=...

# 4. Start
./start.sh

That's it. One jar, one Docker image, one directory. No microservices, no databases, no message queues. The dashboard validates the license, pre-pulls the worker image, and (if configured) pings the LLM at boot.

Requirements​

ComponentRequirement
Java21 or later
DockerDocker Desktop (macOS/Windows) or Docker Engine (Linux)
Disk~2GB for the karate-agent Docker image
RAM~1GB per concurrent browser session
NetworkDocker socket access (/var/run/docker.sock)

Configuration — karate-agent.json​

The bundled karate-agent.json carries dashboard settings:

{
"port": 4444,
"maxSessions": 10,
"models": [
"openrouter/anthropic/claude-sonnet-4-6"
]
}
KeyPurposeDefault
portDashboard HTTP port4444
maxSessionsConcurrent worker containers allowed10
modelsAllowed LLM models. First entry is the default. BYO LLM.(empty)

CLI flags (--port, --max-sessions) override the JSON. See Configuration for details.

API Keys​

API keys live in environment variables — never in karate-agent.json. Live mode does not need an LLM.

# OpenRouter (recommended — 100+ models)
export OPENROUTER_API_KEY=sk-or-...

# Anthropic (direct)
export ANTHROPIC_API_KEY=sk-ant-...

The dashboard pings the first model at startup and warns if the key is missing or invalid — autonomous jobs will fail until it's set.

Testing Against Localhost​

On a developer machine, worker containers reach your local apps via host.docker.internal:

agent.go('http://host.docker.internal:3000')

Run the dashboard alongside your dev server — test your changes before pushing.

Team Server Deployment​

For a shared team setup:

  1. Run the dashboard on a persistent machine (Mac Mini, EC2 instance, etc.)
  2. Share the dashboard URL with the team
  3. Point the flows/ directory at a git repository for collaboration
  4. Configure LLM credentials centrally (env vars on the host)
# Custom data directory + env keys
KARATE_AGENT_HOME=/opt/karate-agent \
OPENROUTER_API_KEY=sk-or-... \
java -jar /opt/karate-agent/karate-agent.jar

DevOps/admin: install the dashboard as a systemd unit (Linux), launchd plist (macOS), or a service-managed process on AWS. Use KARATE_AGENT_HOME to point the jar at a persistent install directory.

CI/CD Integration​

The REST API integrates with any pipeline that can run curl:

# GitHub Actions
- name: Run browser tests
run: |
JOB=$(curl -s -X POST $DASHBOARD_URL/api/sessions \
-H "Content-Type: application/json" \
-d '{"mode":"auto","prompt":"Run smoke test","flowFiles":["e2e/smoke.js"]}')
JOB_ID=$(echo $JOB | jq -r .id)
while true; do
STATE=$(curl -s $DASHBOARD_URL/api/sessions/$JOB_ID | jq -r .state)
[ "$STATE" = "stopped" ] && break
sleep 10
done

Upgrading​

The ZIP extracts to an unversioned karate-agent/ folder by design. Upgrades are a drop-in jar replacement:

lsof -ti:4444 | xargs kill 2>/dev/null
unzip -j karate-agent-<new-version>.zip karate-agent/karate-agent.jar \
-d /path/to/karate-agent/
cd /path/to/karate-agent && ./start.sh
java -jar karate-agent.jar --version

karate.lic, karate-agent.json, flows/, and sessions/ are preserved. Check release notes for karate-agent.json schema changes before upgrading.

For team servers running under systemd / launchd, drop the jar in, then restart the service unit.

Session Recording​

Enable video recording for audit trails. Recordings are H.264 at 8fps with seeking support. Stored alongside session data.

Data Persistence​

Everything lives in one self-contained directory:

karate-agent/                  ← cd here to run
├── karate-agent.jar ← the binary
├── karate-agent.json ← configuration
├── karate.lic ← license file
├── start.sh / start.bat ← launchers
├── sessions/
│ ├── abc123/
│ │ ├── report.html
│ │ ├── transcript.md
│ │ └── screenshots/
│ └── def456/
│ └── ...
└── flows/
├── login.js
└── hints.md

This directory survives dashboard restarts. Portable — tar it up and move to another machine. Back it up as needed.