Limits & Retention

Khaos is local-first - you can always run evaluations locally without limits. Cloud sync and storage are subject to plan limits enforced at upload time.

Plan Comparison

Choose the plan that fits your evaluation needs:

FeatureFreeProTeamEnterprise
Projects110UnlimitedUnlimited
Monthly Runs (Cloud)305002,500Custom
Storage1 GB10 GB50 GBCustom
Retention30 days90 days1 yearCustom
Team Members1125Unlimited
API Tokens15UnlimitedUnlimited
Baselines1 per project5 per projectUnlimitedUnlimited
Custom Scenarios325UnlimitedUnlimited
Priority Support-EmailEmail + ChatDedicated
SSO/SAML---Yes
Local Runs Are Unlimited
All plans include unlimited local evaluations. Limits only apply to cloud-synced runs and stored artifacts.

See Pricing for detailed pricing information.

What Counts as a Run?

A "run" is counted when you upload evaluation results to the cloud:

  • Eval runs - One run per khaos run <agent-name> --eval X --sync
  • CI runs - One run per khaos ci <agent-name> --sync

Local-only runs (without --sync) do not count against your quota.

Terminal
# Does NOT count against quota (local only)
khaos run <agent-name> --eval quickstart

# Counts as 1 run (synced to cloud)
khaos run <agent-name> --eval quickstart --sync

Storage Calculation

Storage is calculated based on uploaded artifacts:

  • Trace files - Full execution traces with LLM events
  • Metrics files - Evaluation results and scores
  • Manifest files - Run metadata and provenance
  • Comparison reports - Cached comparison results

Typical storage per run:

PackTypical Size
baseline~100 KB
quickstart~500 KB
full-eval~2-5 MB
security~1-2 MB

Retention Policies

Retention periods determine how long artifacts are stored before automatic cleanup:

Artifact TypeFreeProTeam
Run traces30 days90 days1 year
Metrics history30 days90 days1 year
Comparison reports7 days30 days90 days
BaselinesNever expiresNever expiresNever expires
Export Before Expiry
Download important run artifacts before they expire using khaos export <run-id>.

Error Codes

When you hit a limit, Khaos returns actionable error codes:

Error CodeHTTP StatusMeaningSolution
runs_cap403Monthly run limit exceededWait for monthly reset or upgrade plan
storage_cap403Storage quota exceededDelete old runs or upgrade plan
projects_cap403Project limit reachedDelete a project or upgrade plan
team_cap403Team member limit reachedRemove a member or upgrade plan
plan_limit403Feature requires higher planUpgrade to access feature
Terminal
# Check your current usage
khaos sync --status

# Delete old runs to free storage
khaos runs delete <run-id>

# Clean up local synced runs
khaos sync --cleanup

Rate Limits

API endpoints have rate limits to ensure fair usage:

EndpointRate Limit
Run upload60/hour
Comparison requests120/hour
Project management30/hour
Token generation10/hour

Rate limit headers are included in API responses. If you hit a rate limit, wait for the Retry-After period before retrying.

Managing Usage

Tips for staying within your plan limits:

  • Use quickstart for development - Save full-eval for pre-release
  • Sync selectively - Only sync runs you want to keep
  • Clean up regularly - Delete runs you no longer need
  • Use baselines efficiently - One baseline per release milestone
  • Monitor usage - Check khaos sync --status regularly