# Clone and install
git clone https://github.com/acailic/agent_debugger.git
cd agent_debugger
pip install -e ".[dev]"
# Install frontend dependencies
cd frontend && npm install && cd ..
# Run tests
python3 -m pytest -q
# Lint
ruff check .
# Build frontend
cd frontend && npm run buildagent_debugger_sdk/— Python SDK for instrumenting AI agentsapi/— FastAPI server (query, replay, streaming, auth)frontend/— React + TypeScript + Vite UIcollector/— Event ingestion and pipelinestorage/— Database engine, migrations, repositoriesauth/— API key authenticationredaction/— Security/privacy filterstests/— Python test suite
See CLAUDE.md for the full repo map and high-risk boundaries.
- Branch off
mainfor any non-trivial change - Make targeted changes — read the smallest set of files needed first
- Validate after changes:
ruff check .for Python changespython3 -m pytest -qfor backend/SDK changescd frontend && npm run buildfor frontend changes
- Check boundaries before changing shared shapes:
- API ↔ frontend:
api/schemas.py,frontend/src/types/index.ts,frontend/src/api/client.ts - SDK ↔ API:
agent_debugger_sdk/core/,api/schemas.py - Auto-instrumentation:
agent_debugger_sdk/auto_patch/,agent_debugger_sdk/adapters/
- API ↔ frontend:
- Python: Ruff with line length 120, rules E/F/I
- TypeScript: Vite/ESLint defaults
- Prefer targeted reads over broad scans
- Use
python3, notpython
# Start the backend
make server
# Start the frontend dev server
make frontend
# Seed demo data
make demo-seedTests use pytest-asyncio with asyncio_mode = "auto". Integration tests are deselected by default (-m 'not integration').
# Run all tests
python3 -m pytest -q
# Run specific test file
python3 -m pytest -q tests/test_api_contract.py
# Run with verbose output
python3 -m pytest -v tests/sdk/core/test_session_manager.pyUse conventional commits: feat:, fix:, refactor:, docs:, test:, chore:.
Use GitHub Issues with:
- Minimal reproduction steps
- Expected vs actual behavior
- Relevant logs or error messages