Skip to main content

Crate tokenburn_core

Crate tokenburn_core 

Source
Expand description

TokenBurn core — UI-agnostic logic shared by the CLI, TUI and GUI front-ends.

Reads local logs only (no network):

  • pi session files, ~/.pi/agent/sessions/**/*.jsonl — one row per assistant turn.
  • Zed’s agent thread database (threads.db, sqlite + zstd JSON blobs) — one row per thread (input/output tokens only, no $ cost).
  • Claude Code, Codex CLI, Copilot CLI, Gemini CLI, OpenCode and Amp — see Tool and features/<tool>/.

§Typical flow

use tokenburn_core::{collect, build_report, Query};

let query = Query::default();
let now = chrono::Local::now();
let collected = collect(query.tool, query.window.start(now));
let report = build_report(&collected.rows, &query);
println!("{} rows", report.len());

Re-exports§

pub use features::report::axis_label;
pub use features::report::axis_tokens;
pub use features::report::bucket_at;
pub use features::report::bucket_label_of;
pub use features::report::build_report;
pub use features::report::by_project;
pub use features::report::chart_bucket;
pub use features::report::drill;
pub use features::report::drill;
pub use features::report::nice_max;
pub use features::report::pie;
pub use features::report::project_key;
pub use features::report::short_label;
pub use features::report::short_name;
pub use features::report::slice_angles;
pub use features::report::time_series;
pub use features::report::Bucket;
pub use features::report::Drill;
pub use features::report::Metric;
pub use features::report::Pie;
pub use features::report::Query;
pub use features::report::ReportRow;
pub use features::report::RowFilter;
pub use features::report::Selection;
pub use features::report::Slice;
pub use features::report::TimeSeries;
pub use features::report::ToolFilter;
pub use features::report::Window;
pub use features::settings;
pub use features::settings::Settings;
pub use features::theme::find_theme;
pub use features::theme::theme_by_index;
pub use features::theme::theme_index_by_name;
pub use features::theme::AppTheme;
pub use features::theme::Rgb;
pub use features::theme::THEME_COUNT;
pub use features::theme::THEME_NAMES;
pub use features::usage::Row;
pub use features::usage::Summary;
pub use features::usage::Tool;

Modules§

features
Feature modules — one per concern, mirroring the front-end crates.
utils

Structs§

Collected
Result of reading every enabled source.

Functions§

collect
Collect rows for tool from the default on-disk locations, keeping only rows whose timestamp is >= start.