Skip to content

angristan/koliko

Repository files navigation

Koliko

Self-hostable usage analytics for coding agents.

Koliko shows where agent time and tokens go without collecting the work itself. It tracks sessions, models, token usage, provider-reported cost, tools, context compaction, goals, and delegated work. Pi is the first supported collector; the ingestion protocol is agent-agnostic.

Highlights

  • Usage, cost, cache, tool, session, and feature analytics
  • Breakdowns by model, thinking level, and repository folder name
  • Passkey-only dashboard access and revocable ingestion keys
  • Durable local spooling for offline and failed deliveries
  • Cloudflare Workers, Static Assets, and D1 deployment

Dashboard

Koliko overview dashboard showing usage, cost, cache, model, and repository analytics

Data boundary

Collected Never collected
Session and runtime identifiers Prompts or responses
Repository folder name Source code or file contents
Provider, model, and thinking level Reasoning content
Token counts and provider-reported cost Tool arguments, output, or command text
Tool name, duration, and error status File names or absolute paths
Compaction and lifecycle counters Git remotes

Unknown event fields are removed at the schema boundary. See Privacy for the complete contract and its operational limits.

How it works

Pi lifecycle events
        |
        v
0600 local JSONL spool
        |
        | HTTPS + bearer ingestion key
        v
Cloudflare Worker --- React dashboard
        |
        v
       D1

See Architecture for request flows, authentication boundaries, metric definitions, and the data model.

Deploy

Deploy to Cloudflare

Cloudflare creates a repository in your Git account, provisions D1, configures Workers Builds, and deploys Koliko. Choose the final hostname and generate the required secrets before registering the first passkey.

Read Self-hosting and operations for Deploy Button configuration, custom domains, manual deployment, upgrades, backups, and recovery.

Connect Pi

Create an ingestion key from the deployed dashboard's Settings page, then install the collector:

pi install git:github.com/angristan/koliko

Create ~/.pi/agent/koliko/config.json and protect it:

{
  "baseUrl": "https://koliko.example.com",
  "apiKey": "klk_..."
}
chmod 600 ~/.pi/agent/koliko/config.json

Reload Pi with /reload, then check delivery with /koliko-status and /koliko-flush. Tracking starts with the next session; Koliko does not backfill existing sessions.

See Pi collector for configuration, event mapping, queue behavior, updates, and troubleshooting.

Documentation

License

MIT

About

Privacy-first usage analytics for coding agents

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages