{"data":{"slug":"vstorm-co-agentcanvas","name":"agentcanvas","tagline":"Visualize Pydantic AI agent workflows from Logfire traces as an interactive HTML diagram, tools, nested sub-agents, tokens and exact cost.","github_url":"https://github.com/vstorm-co/agentcanvas","owner":"vstorm-co","repo":"agentcanvas","owner_avatar_url":"https://avatars.githubusercontent.com/u/80465946?v=4","primary_language":"Python","stars":73,"forks":8,"topics":["agents","ai-agents","genai","llm","llm-observability","logfire","observability","opentelemetry","pydantic","pydantic-ai","python","tracing","visualization"],"archived":false,"github_pushed_at":"2026-06-17T14:06:50+00:00","maintenance_label":"Active","url":"https://www.graphcanon.com/tools/vstorm-co-agentcanvas","markdown_url":"https://www.graphcanon.com/tools/vstorm-co-agentcanvas.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/vstorm-co-agentcanvas","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=vstorm-co-agentcanvas","description":"Visualize Pydantic AI agent workflows from Logfire traces as an interactive HTML diagram — tools, nested sub-agents, tokens and exact cost.","homepage_url":"https://vstorm.co","license":"MIT","open_issues":0,"watchers":0,"ai_summary":null,"readme_excerpt":"## 🚀 Quick start\n\n```bash\npip install agentcanvas\n```\n\nSet `LOGFIRE_READ_TOKEN` in your environment (or a `.env` file), then build the\nreport from your latest agent run:\n\n```bash\nagentcanvas                       # latest run → agent_flow.html (opens in browser)\nagentcanvas --list                # list recent runs\nagentcanvas --trace-id <id>       # a specific run\nagentcanvas -o report.html --no-open\n```\n\nOr use it as a library:\n\n```python\nfrom agentcanvas import LogfireClient, parse_run, render_html\n\nclient = LogfireClient()                       # reads LOGFIRE_READ_TOKEN\ntrace_id = client.latest_trace_id()\nreport = parse_run(client.fetch_trace(trace_id), trace_id)\nopen(\"report.html\", \"w\").write(render_html(report))\n```\n\n| Variable | Used for |\n|----------|----------|\n| `LOGFIRE_READ_TOKEN` | reading traces via the Logfire Query API (required) |\n| `LOGFIRE_BASE_URL` | optional region override (default US; EU: `https://logfire-eu.pydantic.dev`) |\n| `LOGFIRE_WRITE_TOKEN` | the example agent sending telemetry to Logfire |\n| `OPENROUTER_API_KEY` | the example agent (model via OpenRouter) |\n\n---\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n\n---\n\n<div align=\"center\">","github_created_at":"2026-06-12T10:31:06+00:00","created_at":"2026-07-15T10:41:40.731704+00:00","updated_at":"2026-07-15T10:41:43.584434+00:00","categories":[{"slug":"ai-agents","name":"AI Agents","url":"https://www.graphcanon.com/categories/ai-agents","markdown_url":"https://www.graphcanon.com/categories/ai-agents.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/ai-agents"},{"slug":"developer-tools","name":"Developer Tools","url":"https://www.graphcanon.com/categories/developer-tools","markdown_url":"https://www.graphcanon.com/categories/developer-tools.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/developer-tools"},{"slug":"llm-frameworks","name":"LLM Frameworks","url":"https://www.graphcanon.com/categories/llm-frameworks","markdown_url":"https://www.graphcanon.com/categories/llm-frameworks.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/llm-frameworks"}],"tags":[{"slug":"agents","name":"agents"},{"slug":"ai-agents","name":"ai-agents"},{"slug":"genai","name":"genai"},{"slug":"llm","name":"llm"},{"slug":"llm-observability","name":"llm-observability"},{"slug":"logfire","name":"logfire"},{"slug":"observability","name":"observability"},{"slug":"opentelemetry","name":"opentelemetry"}],"trust":{"provenance":{"is_fork":false,"github_id":1267216518,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-07-15T10:41:41.747Z","maintenance":{"label":"Active","score":82,"methodology":"github_public_v1","releases_90d":2,"days_since_push":27,"last_release_at":"2026-06-12T13:13:47Z"},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-15T10:41:42.231Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-07-15T10:41:41.532Z"},"has_cli":{"value":true,"source":"pyproject.toml:[project.scripts]","observed_at":"2026-07-15T10:41:41.532Z"},"languages":{"value":["python"],"source":"github.language+pyproject.toml","observed_at":"2026-07-15T10:41:41.532Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-07-15T10:41:41.532Z"}}}}