Skip to content

Releases: AlexGladkov/quickai

quickai v0.4.0 — live-capture proxy (experimental)

Choose a tag to compare

@AlexGladkov AlexGladkov released this 09 Jul 09:51

Live-capture proxy (experimental)

Analytics for harnesses that don't persist per-turn usage on disk — capture it live off the wire.

quickai proxy                       # transparent reverse-proxy on :8787
# point the agent's base_url at it, e.g. Codex ~/.codex/config.toml:
#   [model_providers.quickai] base_url = "http://localhost:8787/v1"
quickai index --source proxy        # ingest captured usage
quickai report

How it works

The proxy forwards every request to the real provider untouched — your API key passes straight through and is never stored. It tees the response, extracts usage, and appends one native JSONL line per turn (~/.quickai/proxy/). The source=proxy adapter ingests it over the same pipeline as the file adapters.

Reliability invariant: usage extraction is best-effort after your bytes are forwarded — a parse error can never break the agent.

  • OpenAI Chat + Responses APIs, streaming (SSE) and non-streaming
  • nets cached tokens out of input, captures reasoning tokens
  • new source=proxy in index/export

⚠️ Experimental — read this

  • Codex e2e not yet verified end-to-end (verified against a simulated OpenAI upstream). Real-Codex confirmation pending.
  • OpenAI prices are list-ballpark (flagged in code) — token counts are exact, cost is approximate until confirmed.
  • The proxy sits in the agent's critical path; autostart (launchd) is a follow-up. Run it yourself for now.
  • Principle: proxy is a fallback only for harnesses without their own logs — Claude/OpenCode keep using the zero-config file adapters.

Also

File adapters (Claude, OpenCode from 0.3.0) unchanged.

quickai v0.3.0 — pluggable data sources + OpenCode

Choose a tag to compare

@AlexGladkov AlexGladkov released this 08 Jul 10:37

Pluggable data sources

quickai now indexes more than Claude Code. A real source/adapter boundary lets other SWE-agents plug in as thin adapters, and this release ships OpenCode as the first one.

quickai index --source claude     # default, unchanged
quickai index --source opencode    # new

What's new

  • OpenCode adapter — reads ~/.local/share/opencode/storage (per-message JSON + parts + session), maps tokens/model/cost/tool-calls/prompt text into the same aggregates. Uses OpenCode's own cost (its models aren't in the Anthropic pricing table).
  • DataSource boundary — each adapter owns its traversal, incremental cursor and parsing, emitting a normalized event stream; the indexer just applies + aggregates. Adding a source no longer touches the indexer, schema or reports.
  • source column across sessions/tasks/turns/agent_runs/tool_calls; export gains a by_source breakdown.
  • In-place migration — existing DBs gain the new columns automatically (default claude), no reindex, no data loss.
  • Re-reading immutable source files can't duplicate turns (stable ext_id + unique index).

Notes

  • Claude Code indexing behaviour is unchanged; source-scoped rebuild keeps sources isolated.
  • Codex isn't supported yet — its local store only keeps a per-thread token aggregate, not the per-turn tokens/cache/cost quickai needs. Tracked in the pluggable-sources epic.

Thanks @keksmd for the export groundwork in 0.2.0.

quickai v0.2.0

Choose a tag to compare

@AlexGladkov AlexGladkov released this 08 Jul 09:35

export command — machine-readable JSON aggregate dump for external ingestion (quickai export [--project X] [--pretty] [--format json]). Thanks @keksmd for the initial implementation (#3).

  • summary + by_project/model/agent_type + tools + waste + latency in one stable JSON with schema_version
  • --format enum (json today; extensible)
  • pure serialization of existing query aggregates — no new SQL, backwards compatible

quickai v0.1.0

Choose a tag to compare

@AlexGladkov AlexGladkov released this 06 Jul 18:03

Initial release — Claude Code profiler (tokens, cost, time). CLI + HTML report + MCP.