{"data":{"slug":"vstorm-co-agentcanvas","name":"agentcanvas","tagline":"Visualize Pydantic AI agent workflows using Logfire traces","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":82,"forks":9,"topics":["agents","ai-agents","genai","llm","llm-observability","logfire","observability","opentelemetry","pydantic","pydantic-ai","python","tracing","visualization"],"archived":false,"github_pushed_at":"2026-08-01T20:26:47+00:00","maintenance_label":"Steady","stars_delta_30d":3,"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":"Generates interactive HTML diagrams from log traces for tools, sub-agents, tokens, and cost details of Pydantic AI agents.","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-09-20T04:25:33.808069+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":"evaluation-observability","name":"Evaluation & Observability","url":"https://www.graphcanon.com/categories/evaluation-observability","markdown_url":"https://www.graphcanon.com/categories/evaluation-observability.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/evaluation-observability"}],"tags":[{"slug":"agents","name":"agents"},{"slug":"ai-agents","name":"ai-agents"},{"slug":"genai","name":"genai"},{"slug":"llm","name":"llm"},{"slug":"logfire","name":"logfire"},{"slug":"observability","name":"observability"},{"slug":"opentelemetry","name":"opentelemetry"},{"slug":"pydantic","name":"pydantic"}],"trust":{"provenance":{"is_fork":false,"github_id":1267216518,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-09-11T06:00:08.506Z","maintenance":{"label":"Steady","score":60,"methodology":"github_public_v1","releases_90d":0,"days_since_push":40,"last_release_at":"2026-06-12T13:13:47Z","stars_delta_30d":3,"open_issues_delta_30d":0},"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-09-11T06:00:09.057Z"},"has_cli":{"value":true,"source":"pyproject.toml:[project.scripts]","observed_at":"2026-09-11T06:00:09.057Z"},"languages":{"value":["python"],"source":"github.language+pyproject.toml","observed_at":"2026-09-11T06:00:09.057Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-09-11T06:00:09.057Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":null,"constraints":null,"when_to_use":["To generate interactive HTML diagrams that provide visibility into the tools, sub-agents, tokens, and costs involved in running a Pydantic AI agent.","When assessing the exact financial implications of different components within an AI workflow executed by Pydantic agents, allowing for detailed cost analysis based on log traces."],"when_not_to_use":["If your AI agents are not built using Pydantic or do not utilize Logfire for tracing, as agentcanvas specifically works with these technologies.","When the level of detail provided in the HTML diagrams is unnecessary or when you lack access to the required Logfire traces and associated tokens."],"source":"enrich:decision_facts","observed_at":"2026-07-17T01:19:44.113Z"},"constraint_facets":null,"decision_summary":[{"label":"Adopt for","value":"agentcanvas is for developers and AI practitioners who require detailed visual representations of Pydantic AI agent workflows, including cost breakdowns, extracted from Logfire traces."}]}}