github.com/tobilg/ai-observer
v0.5.0
#3052 most downloaded on Go modules
tobilg/ai-observer
What this package is like to depend on
Last release 2 months ago
18 Jun 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 7 of 7 stable releases
Nothing withdrawn
no release was ever pulled
7 months old
7 releases · first in 2026
7 releases in the last 12 months
see the full history below
Release timeline
7 releases · Jan 2026 to Jun 2026Releases
latest 7-
v0.5.018 Jun 2026Release notes
Open source →Added
- Added OpenCode as an OTLP-only provider via the
@devtheops/opencode-plugin-otelplugin. - Added
ai-observer setup opencodeinstructions with AI Observer-compatible OTLP HTTP/protobuf configuration. - Added export and delete filtering support for the
opencodeservice. - Added OpenCode frontend provider metadata, service labels, icons, metric grouping, and dashboard widget catalog support.
- Added OpenCode metric metadata for sessions, token usage, cost, lines of code, commits, tool duration, cache activity, session duration, messages, model usage, and retries.
- Added OpenCode session and transcript support for plugin log events and OpenInference-style model, token, cost, tool input, and tool output attributes.
- Added OpenCode setup, usage, architecture, export, import, pricing, and metric availability documentation in README, docs, and the in-app documentation page.
- Added backend and frontend tests for OpenCode provider registration, export behavior, setup output, transcript helpers, and metric metadata.
Changed
- Extended frontend metric filtering so OpenCode services show provider-specific metrics and shared
gen_ai.*metrics when selected. - Updated top-level CLI help to include OpenCode OTLP plugin environment variables.
- Kept
import allandwatch allscoped to file-backed providers while allowing OpenCode as a recognized OTLP service.
Fixed
- Fixed file-import source discovery so adding OpenCode to the shared tool registry does not make
import allexpect an OpenCode file parser.
- Added OpenCode as an OTLP-only provider via the
-
v0.4.014 Jun 2026Release notes
Open source →Added
- Added GitHub Copilot as an OTLP provider, including setup instructions for the VS Code extension and environment-variable based exporters.
- Added GitHub Copilot metric support for token usage, cost, tool calls, agent turns, edit outcomes, lines of code, cloud sessions, pull request events, and generic GenAI metrics.
- Added derived GitHub Copilot token and cost metrics from Copilot chat spans.
- Added GitHub Copilot pricing data, GitHub Models catalog alias matching, and support for dated/versioned model aliases emitted by Copilot telemetry.
- Added
watchmode for real-time incremental ingestion from local Claude Code, Codex CLI, and Gemini CLI session files, with optional initial backfill. - Added import-state tracking for file watcher offsets, message counts, and parser state.
- Added export filtering for GitHub Copilot VS Code Extension (
copilot-chat) and GitHub Copilot CLI (github-copilot) services. - Added frontend metric metadata, service labels, provider icons, dashboard widget catalog entries, and documentation for GitHub Copilot.
Changed
- Updated DuckDB to v1.5.3.
- Reworked trace list and detail handling around explicit trace row
idandkindvalues so normal OTLP traces and Codex operation rows can be opened consistently. - Simplified recent trace queries by using a unified OTLP trace overview path instead of separate Codex and non-Codex query paths.
- Updated Codex trace handling to use raw session trace rows in the list and grouped Codex operation spans in trace detail.
- Expanded pricing data and aliases for Claude, Codex/OpenAI, and Gemini models, including long-context pricing support.
- Improved metric series aggregation by preserving both token type and model labels.
- Updated README and in-app documentation for watch mode, GitHub Copilot telemetry, trace row semantics, and metric availability by ingestion mode.
Fixed
- Fixed GitHub Copilot trace detail loading returning 404 for traces that appeared in the trace list.
- Rebuilt stale DuckDB trace indexes under versioned names and added an index for span-id lookups.
- Fixed dashboard widget persistence and error handling for missing dashboards, missing widgets, widget position updates, and empty widget lists.
- Fixed Copilot sessions and transcripts by recognizing GenAI conversation IDs, models, tool names, tool arguments, and tool results in logs.
- Fixed frontend trace expansion to load one selected trace row at a time and to route trace detail pages with the correct trace kind.
- Fixed frontend metric selection so GitHub Copilot services show their token and cost metrics even before derived rows exist for every metric.
- Fixed repeated abort-error handling with shared frontend helpers.
- Fixed Codex per-event token and cost metrics so they are not treated as cumulative series.
Security
- Hardened storage queries by replacing manual
LIMIT/OFFSETstring formatting with parameterized query helpers. - Validated metric JSON attribute keys before building DuckDB JSONPath expressions for breakdown and latest-value queries.
-
v0.3.229 Mar 2026 -
v0.3.129 Mar 2026Release notes
Open source →Added
- Added
.tool-versionsfor local Go, Node.js, and pnpm toolchain pinning.
Changed
- Updated the backend Go target and dependencies, including DuckDB Go bindings, OpenTelemetry protobufs, protobuf, gRPC, and related transitive packages.
- Updated CI to use Go 1.26, pnpm 10, newer pnpm setup, and newer artifact upload actions.
- Updated frontend package metadata for version 0.3.1 and pnpm 10 engine requirements.
- Updated Claude, Codex/OpenAI, and Gemini pricing datasets with newer model entries.
Fixed
- Removed the old Gemini CLI root-endpoint OTLP workaround and documented the minimum Gemini CLI version expected for standard OTLP paths.
- Added
-
v0.3.026 Jan 2026Release notes
Open source →Added
- Added Sessions and Session Transcript pages for browsing imported AI assistant conversations.
- Added backend query APIs for listing sessions and retrieving session transcripts.
- Added transcript rendering components for timeline, chat bubble, markdown, code block, and tool call views.
- Added transcript log extraction for Claude Code, Codex CLI, and Gemini CLI imports.
- Added shared time-selection state handling for telemetry pages.
- Added helper scripts for generating release notes and social posts.
Changed
- Updated frontend version to 0.3.0.
- Improved charts and telemetry pages to use the shared time-selection behavior.
- Improved importer parsing for Claude, Codex, and Gemini session files to preserve conversation content for transcripts.
Fixed
- Fixed several frontend and import-related issues around logs, metrics, traces, and session transcript display.
-
v0.2.004 Jan 2026Release notes
Open source →AI Observer v0.2.0 Release Notes
Highlights
This release transforms AI Observer from a real-time telemetry receiver into a complete observability solution with historical data import, data export to Parquet, and embedded pricing for 67+ AI models. You can now import past sessions from Claude Code, Gemini CLI, and Codex CLI local files, calculate accurate costs retroactively, and export your telemetry data in portable formats for archiving or sharing.
New Features
Historical Session Import (
ai-observer import)Import past session data from local AI tool files directly into AI Observer with automatic cost calculation:
ai-observer import claude-code --from 2025-01-01 --to 2025-12-31 ai-observer import all # Import from all supported tools- Claude Code: Reads
~/.claude/projects/**/*.jsonlfiles - Codex CLI: Reads
~/.codex/sessions/*.jsonlfiles - Gemini CLI: Reads
~/.gemini/tmp/**/session-*.jsonfiles
Features include:
- Date range filtering with
--fromand--to - Dry-run mode to preview imports without changes
- Force re-import of already-processed files
- Purge existing data in time range before importing
- State tracking to avoid duplicate imports
Data Export to Parquet (
ai-observer export)Export telemetry data to portable Parquet files with an optional DuckDB views database:
ai-observer export all --output ./export ai-observer export claude-code --output ./export --zip # Create ZIP archive ai-observer export all --output ./export --from-files # Export directly from raw files
Generates:
traces.parquet,logs.parquet,metrics.parquetfiles- A DuckDB views database for easy querying with relative paths
- Optional ZIP archive for sharing
Data Deletion (
ai-observer delete)Delete telemetry data by time range and optionally by service:
ai-observer delete all --from 2025-01-01 --to 2025-01-31 ai-observer delete logs --from 2025-01-01 --to 2025-01-31 --service claude-code
Embedded Pricing System
Cost calculation for 67+ models across three providers with embedded JSON pricing data:
- Claude: 21 models including claude-sonnet-4, claude-opus-4, claude-3.5-sonnet, haiku variants
- Codex/OpenAI: 28 models including gpt-4.1, o3, o4-mini, codex-mini
- Gemini: 18 models including gemini-2.5-pro, gemini-2.0-flash, gemini-exp series
The pricing system handles:
- Per-million token pricing for input, output, cache creation, and cache read
- Model name normalization (maps variants like
claude-3-5-sonnet-20241022to canonical names) - Automatic cost calculation during import
User-Facing Token Metrics for Claude Code
New derived metrics that filter out internal tool-routing API calls to match what users see in billing:
claude_code.token.usage_user_facing- Tokens from user-facing API calls onlyclaude_code.cost.usage_user_facing- Cost from user-facing API calls only
These metrics exclude API calls that have no cache tokens (tool-routing calls), providing counts that match tools like ccusage.
Dashboard Export & Import
Export and import dashboard configurations via the UI:
- Export dashboards to JSON files for backup or sharing
- Import dashboards from JSON files or URLs
- Preserves widget configurations, positions, and settings
Enhanced Date Range Picker
New date range picker component in the UI with:
- Calendar-based date selection
- Preset ranges (Last 24h, Last 7d, Last 30d, etc.)
- Custom date range support
- Applied across Traces, Metrics, and Logs pages
Setup Command
New
ai-observer setupcommand to display configuration instructions:ai-observer setup claude-code # Show Claude Code setup ai-observer setup gemini # Show Gemini CLI setup ai-observer setup codex # Show Codex CLI setup
Improvements
CLI Architecture Overhaul
The CLI now uses a subcommand architecture instead of flags:
ai-observer serve- Start the OTLP server (default when no command)ai-observer import- Import historical dataai-observer export- Export to Parquetai-observer delete- Delete data by time rangeai-observer setup- Show tool setup instructions
Configurable Log Level
New
AI_OBSERVER_LOG_LEVELenvironment variable to control logging verbosity:- Supports
DEBUG,INFO,WARN,ERROR - Defaults to
INFO
Metric Chart Improvements
- Line charts now support area fill display
- Bar charts show proper stacking for multi-series data
- Improved legend and tooltip formatting
- Better handling of sparse time series data
Dashboard Widget Enhancements
- Metric chart widgets now support configurable intervals and aggregation modes
- Widget titles properly reflect the selected metric and configuration
- Improved responsive grid layout
Bug Fixes
Gemini Metrics Delta Calculation
Fixed delta metric computation for Gemini CLI cumulative counters. The backend now properly tracks previous values per metric name and attributes to compute per-interval deltas.
Codex Metrics Extraction
Improved token and cost metric extraction from Codex CLI logs, properly parsing the
usagefield fromapi_requestevents.Technical Changes
New Backend Packages
internal/importer/- Historical data import logic with parsers for each AI toolinternal/exporter/- Parquet export, views database generation, and ZIP creationinternal/deleter/- Time-range based data deletioninternal/pricing/- Embedded pricing data and cost calculationinternal/tools/- Service name normalization utilities
Storage Layer Extensions
import_statetable tracks imported files to prevent duplicatesDeleteByTimeRangemethods on all stores (traces, logs, metrics)CreateParquetExportmethod for direct Parquet file generation
Frontend Dependencies
- Added
date-fnsfor date manipulation - Added
react-day-pickerfor calendar components - New shadcn/ui components:
calendar,date-range-picker,popover
Test Coverage
Comprehensive test suites added for:
- CLI command parsing and validation
- Import/export functionality
- Pricing calculations
- Delete operations
- Dashboard export/import logic
Full Changelog: v0.1.0...v0.2.0
Release notes
Open source →Added
- Added
importcommand for historical Claude Code, Codex CLI, and Gemini CLI local session files. - Added
exportcommand for writing telemetry data to Parquet files, optional DuckDB views, and ZIP archives. - Added
deletecommand for removing traces, logs, and metrics by date range. - Added
setupcommand for printing AI tool telemetry configuration instructions. - Added dashboard export and import support in the frontend.
- Added embedded pricing data and cost calculation for Claude, Codex/OpenAI, and Gemini models.
- Added Claude user-facing token and cost metrics derived from OTLP data.
- Added import state tracking to avoid re-importing unchanged local files.
- Added frontend date range picker, calendar, and time utility helpers.
- Added documentation for import, export, pricing, and token analysis workflows.
Changed
- Refactored CLI command parsing around subcommands and shared flag handling.
- Improved metric charts, dashboard widgets, dashboard dialogs, and telemetry page filtering.
- Expanded README coverage for CLI commands, pricing, import/export, and dashboard workflows.
Fixed
- Fixed command parsing behavior for CLI subcommands and options.
- Fixed import/export/delete storage behavior with expanded test coverage.
- Claude Code: Reads
-
v0.1.001 Jan 2026Release notes
Open source →This is the first release! Happy for any feedback!
Full Changelog: https://github.com/tobilg/ai-observer/commits/v0.1.0
Release notes
Open source →Added
- Initial release of AI Observer
- OpenTelemetry-compatible OTLP ingestion (HTTP/JSON and HTTP/Protobuf)
- Support for traces, metrics, and logs
- DuckDB-powered storage for fast analytics
- Real-time dashboard with WebSocket updates
- Customizable drag-and-drop dashboard widgets
- Multi-tool support:
- Claude Code
- Gemini CLI
- OpenAI Codex CLI
- Query API for traces, metrics, logs, and dashboards
- Single binary with embedded React frontend
- Multi-arch Docker images (linux/amd64, linux/arm64)
- Homebrew formula for macOS (Apple Silicon)
Technical Details
- Backend: Go 1.24, chi router, DuckDB, gorilla/websocket
- Frontend: React 19, TypeScript, Vite, Tailwind CSS v4, Zustand, Recharts
- OTLP ingestion on port 4318
- API/Dashboard on port 8080