Add Coval OTel tracing to your AI agent with one command.
The wizard reads your Python agent code, uses an LLM to figure out exactly where to inject tracing, and writes the changes for you — with diffs, backups, and validation.
npx @coval/wizardThat's it. Run it from your agent's project directory and follow the prompts.
- Detects your Python project and framework (Pipecat, LiveKit Agents, or generic)
- Analyzes your entry point with an LLM (Anthropic, OpenAI, or Gemini) to determine the minimal changes needed
- Shows a colored diff of proposed changes and asks for confirmation
- Creates
coval_tracing.py— a self-contained OpenTelemetry module for Coval - Modifies your entry point to initialize tracing (original backed up to
.bak) - Validates by sending a test span to
api.coval.dev
| Framework | Detection | Sim ID Extraction |
|---|---|---|
| Pipecat | pipecat-ai in deps |
args.body dialin settings |
| LiveKit Agents | livekit-agents in deps |
SIP participant attributes |
| Generic Python | Any .py project |
Manual (TODO added) |
npx @coval/wizard [directory] [options]
Options:
--yes, -y Skip confirmation prompts (for CI/automation)
| Variable | Required | Description |
|---|---|---|
COVAL_API_KEY |
Yes | Your Coval API key (prompted if not set) |
WIZARD_LLM_KEY |
No | LLM API key for local dev (bypasses Coval proxy) |
WIZARD_LLM_PROVIDER |
No | anthropic (default), openai, or gemini |
WIZARD_LLM_MODEL |
No | Override the default model (e.g. gpt-4o, gemini-2.5-flash) |
git clone https://github.com/coval-ai/wizard
cd wizard
npm install
npm run dev -- /path/to/your/agentnpm run dev # Run wizard locally via tsx
npm run build # Build for distribution
npm run test # Run tests
npm run lint # Lint with ESLint
npm run format # Format with Prettier
npm run check # Run all checks (typecheck + lint + format + test)# Anthropic (default)
COVAL_API_KEY=your-key WIZARD_LLM_KEY=sk-ant-... npm run dev -- ../your-agent/
# OpenAI
COVAL_API_KEY=your-key WIZARD_LLM_KEY=sk-... WIZARD_LLM_PROVIDER=openai npm run dev -- ../your-agent/
# Gemini
COVAL_API_KEY=your-key WIZARD_LLM_KEY=AIza... WIZARD_LLM_PROVIDER=gemini npm run dev -- ../your-agent/The wizard sends your entry point code to the configured LLM with a detailed system prompt containing:
- The complete
coval_tracing.pyreference implementation - Framework-specific injection rules (where to place imports, setup calls, sim ID extraction)
- Strict output format (JSON with the generated files)
The LLM returns the modified entry point and a coval_tracing.py tailored to your agent. The wizard shows the diff, asks for confirmation, then writes the files.
Releases are fully automatic on every merge to main. No manual version bumps or tags needed.
-
Merge a PR with a conventional commit title — the squash-merge commit message determines the version bump:
Commit prefix Bump Example feat:minor ( 1.x.0)feat: add gemini supportfix:/perf:patch ( 1.0.x)fix: handle 403 as invalid keyfeat!:/fix!:major ( x.0.0)feat!: redesign CLIchore:/ci:/docs:no release — -
Linear ticket prefixes are stripped automatically. A PR titled
[SIM-123] feat: add somethingis treated identically tofeat: add something. -
A GitHub Release is created with auto-generated notes.
-
The GitHub Release triggers npm publish — the package is built and published with the release tag as the version.
MIT
