Skip to main content

Terminal AI agent with built-in execution tracing and observability

Project description

BlueClaw

Understand, debug, and control AI agent behavior.
Structured tracing, context management, and reproducible runs — all from the terminal.

Quickstart · Features · Models · Configuration · Roadmap · Contributing · License

PyPI Version License Python Version GitHub Issues CI Downloads Awesome Strands Agents


  • Structured traces — every run writes a structured JSON trace, queryable from the terminal with no external service
  • Regression testing — define expected behavior in YAML; run as CI with TAP or JUnit output and Wilson CI scoring
  • Context management — observation masking keeps token cost low across long sessions without losing quality
  • Trace replay — step through any recorded run interactively
  • Trace diff — compare steps, tokens, and cost between any two runs
  • HTTP APIblueclaw serve exposes the agent over HTTP with bearer auth, SSE streaming, and a concurrency cap

Quickstart

pip install blueclaw
blueclaw init
echo "ANTHROPIC_API_KEY=sk-ant-..." > .env
blueclaw

Features

Tracing & Observability — docs/tracing.md

Every run produces a structured JSON trace. Ten CLI commands let you inspect, compare, and replay runs without a hosted dashboard.

$ blueclaw trace graph 20260315-054426

search for Python 3.13 new features
├── web_search (1ms) ✓  query: Python 3.13 new features
├── web_search (1ms) ✓  query: Python 3.13 new features list 2024
└── http_request (366ms) ✓  url: https://docs.python.org/3.13/whatsnew/3.13.html

trace list · trace show · trace graph · trace timeline · trace diff · trace explain · trace replay · trace stats · trace ui · trace purge

Regression Testing — docs/testing.md

Define expected behavior in YAML, run as a CI test suite with TAP or JUnit output. Multi-run Wilson CI scoring handles non-determinism.

blueclaw test spec.yaml
blueclaw test spec.yaml --format junit -o results.xml

11 deterministic assertions: tools called, output content, file existence, cost, step count, duration, tool order.

Context Management

Tool outputs from older turns are automatically masked to keep token cost low across long sessions without losing model reasoning quality. A hybrid summarization mode is available for very long conversations.

HTTP API — docs/api.md

Expose the agent over HTTP for programmatic access or tool integration.

blueclaw serve                          # http://127.0.0.1:8420
curl -X POST http://127.0.0.1:8420/message \
  -d '{"message": "what is in the workspace?"}' | jq .

# Stream tokens as they're generated:
curl -N -X POST http://127.0.0.1:8420/message/stream \
  -d '{"message": "what is in the workspace?"}'

Bearer token auth (BLUECLAW_API_KEY), 1 MB body cap, 300 s timeout, CORS for localhost. A shared asyncio.Semaphore (default 4, configurable via --max-concurrent) caps simultaneous agent runs. Every API request writes a trace visible in blueclaw trace ui.

Model Support

blueclaw                                    # Anthropic (default)
blueclaw --model ollama/llama3              # Ollama (local)
blueclaw --model openai/gpt-4.1-mini       # OpenAI
blueclaw --model litellm/gemini/gemini-2.0-flash  # Gemini via LiteLLM

Set API keys in .env:

ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...

Configuration

blueclaw.yaml in your project root:

model:
  provider: anthropic
  model_id: claude-sonnet-4-6

workspace:
  path: ~/blueclaw/workspace/
  trace_retention_days: 30

tools:
  - web
  - shell
  - pdf
  - mcp:https://localhost:8080/sse

allowlist_domains:
  - github.com
  - docs.python.org

Architecture

BlueClaw Architecture

Module Purpose
cli.py Typer entrypoints, welcome banner, trace tooling
session.py Config, model factory, agent, chat loop, background context updater
server.py HTTP API gateway (blueclaw serve) — POST /message, auth, CORS
workspace.py Sandbox enforcement, context/history/trace I/O
observer.py Structured tool tracing + output truncation
context.py Observation masking and hybrid summarization for context management
lessons.py Extracts behavioral hints from past traces and injects into system prompt
models.py Pydantic models, trace schema, cost calculation, error classification
testing.py Test spec loading, runner, assertions, formatters, stub replay
tools/ Web, shell, MCP wiring (factory pattern)
approval.py Shell command + domain allowlist hooks

Built on Strands Agents SDK.

Roadmap

See docs/roadmap.md for the full roadmap with milestone details.

Contributing

pip install -e ".[dev]"
pytest
flake8 blueclaw/ tests/
black --check blueclaw/ tests/

Bug reports and pull requests are welcome. See docs/contributing.md for the full guide.

Links

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blueclaw-2.1.0.tar.gz (272.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

blueclaw-2.1.0-py3-none-any.whl (234.6 kB view details)

Uploaded Python 3

File details

Details for the file blueclaw-2.1.0.tar.gz.

File metadata

  • Download URL: blueclaw-2.1.0.tar.gz
  • Upload date:
  • Size: 272.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for blueclaw-2.1.0.tar.gz
Algorithm Hash digest
SHA256 a2bbd1a2978ae7bbbd1a5a99af4d99e8d8cdae0d3e0c21c7e7ab2ad6c36371ff
MD5 00386b13addf2cf2a4b8cf818b6d0517
BLAKE2b-256 9e4116b93537b71627fc80d62a77bd387977e664813a3b9603ff8b9458fb9a2f

See more details on using hashes here.

File details

Details for the file blueclaw-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: blueclaw-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 234.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for blueclaw-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3582b77c3a1dd486561d0d06b4b06835902df0c2ae8d51aafb1ea28d621774de
MD5 df2522d5d088c1d37cd3475d0c5de9ad
BLAKE2b-256 8c2f4e715b26531ff794b94fad49aedd3c67a3fffe7f30b1cc7f766352210c29

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page