Local-first analytics for AI agent skills — track usage, token spend, and context budget across multiple coding agents
SkillKit is a local-first observability tool for AI coding agent users, addressing two core pain points: context window waste and invisible token spending.
For skill usage analytics, SkillKit automatically discovers installed AI agent skills, parses local session data, tracks call counts with sparkline trends, and renders a 52-week GitHub-style contribution heatmap filterable by agent. For token spend tracking, it aggregates token consumption across Claude Code, Cursor, Codex, Gemini CLI, OpenCode and more, showing model distribution and plan utilization with configurable time windows via --days N.
Context budget management is SkillKit's differentiator: it measures per-skill token cost and context window occupancy, flags skills unused for 30+ days via health checks, and supports one-click pruning to reclaim space. Session tracking records cost, tokens in/out, and model per session, with streak tracking and week-over-week cost changes.
Architected as a monorepo (apps/web landing page + packages/cli CLI tool + packages/skill skill definition), the CLI runs on Bun with zero external dependencies, primarily written in TypeScript. All data persists to local SQLite (~/.skillkit/analytics.db) — no account, no telemetry, no cloud. Supports installing a Claude Code SessionEnd hook for zero-touch auto-indexing, and can itself be installed as a skill so agents can directly execute analysis commands.
Core CLI commands: stats (usage analytics), burn (token spend), sessions (session list), graph (heatmap), list (skill inventory), health (health check), prune (remove unused skills), auto (install auto-scan hook), scan (force rescan).
Supported agents: Claude Code, Cursor, Codex, Gemini CLI, OpenCode. Planned: Windsurf, Cline, Roo Code, GitHub Copilot, OpenHands, Goose, Kilo Code, Trae.
Caveats: Full discrete tool call tracking is available for Claude Code and OpenCode only; Cursor, Windsurf etc. inject skills as context rules into prompts without discrete calls, limiting tracking granularity. Burn rate cost calculation uses token count × model pricing, but pricing table sync mechanism is unconfirmed.