Acadmi Platform
// acadmi · the academy for AI

Level up how your teamuses AI.

Acadmi is the academy for AI. It turns the usage data your AI tools already emit — starting with Claude Code and Codex — into levels, streaks and a live leaderboard for everyone on the team, and an adoption & ROI view for managers, so people get better at AI — without storing a single prompt, line of code, or tool argument.

1 binary
~18 MB Go container, no sidecars
0 API keys
subscription-compatible ingest
100% local
raw data never leaves the laptop
12 views
analytics + admin dashboards
// one platform, three products

A telemetry platform with products plugged on top.

Acadmi is a modular monolith: one backend, one agent. A reusable core handles ingest, storage, auth and the data API — and self-contained consumer modules turn that raw telemetry into something people use. New stakeholders plug in without touching the core.

📊

Manager analytics

Org-wide adoption & output across connected sources — trends, teams, locations, productivity, quality and ROI. The default landing for leads.

→ /analytics
🏆

The academy board

The fun layer: XP, levels, 15 trophy families, streaks, seasons and teams — everyday work scored automatically, no busywork.

→ the board
🛰️

Telemetry core

A config-driven signals registry parses OpenTelemetry into clean facts, stores them in Postgres, and serves a generic data API. Add a source, get a consumer.

→ ingest + API
// for leads & managers

Org-wide AI adoption, at a glance.

The /analytics site is a manager-gated dashboard that answers the questions leadership actually asks — who's adopting AI tooling, what it's producing, and whether quality holds — over rolling 7 / 30 / 90-day windows.

  • ✓Adoption & output — active people, sessions, tokens and imputed cost, trended over time and broken down by team and location.
  • ✓Productivity & quality — commits, PRs, reviews and active days alongside quality signals, so output never gets read in a vacuum.
  • ✓Per-person drill-down — a searchable roster filtered by name, email or team.
  • ✓Admin: Impact & ROI and Reach — value rollups and how far Acadmi itself has spread, for the people who run the program.

Illustrative figures — your numbers come from live telemetry.

01

Overview

Headline adoption & output KPIs across all connected sources.

02

Trends

How usage and output move over the selected window.

03

Teams

Adoption and output rolled up per team.

04

Locations

The same picture sliced by office / region.

05

Members

Searchable per-person roster with drill-down.

06

Productivity

Commits, PRs, reviews and active days.

07

Quality

Quality signals to read output honestly.

08

Usage mix

Where the activity is going — models, skills, repos.

09

Users

Admin · manage the roster & ingest tokens.

10

Teams & groups

Admin · org structure & project mapping.

11

Impact & ROI

Admin · value rollups for the program.

12

Reach

Admin · how far Acadmi itself has spread.

Managers only  The analytics site sits behind a sign-in; the dashed views are revealed only for admin sessions.

// for everyone

The same data, turned into a game.

Every session, commit, PR, review, skill and streak scores XP automatically — no check-ins, no manual logging. Climb levels, chase 15 trophy families, and reset the board each season for a fresh shot at the crown.

🌱 First Steps🔨 Builder🚢 Shipper🔍 Reviewer 🧪 Skill Explorer🔥 On Fire🧠 Deep Work🤖 Orchestrator 🗣️ Linguist🚀 Lift-off+5 more
Season · livethis week
01a.rivera architect · lv.1448,200 XP
02j.okonkwo shipper · lv.1344,910 XP
03m.feldman prompt-smith · lv.1341,003 XP
07you shipper · lv.12 · 🔥 9-day33,540 XP
08s.haddad architect · lv.1232,118 XP
// privacy by design

Volume & metadata only — everything else is dropped server-side.

The agent runs on each person's own computer and reads the AI tools' own telemetry. Only counts and metadata are forwarded; anything sensitive is discarded at the source and again at the backend.

What's collected

  • Token counts (input / output / cache) & imputed cost
  • Identity — git/OAuth email, else an anonymous device ID
  • Model name & session ID
  • Activity counters: sessions, commits, PRs, reviews, active days
  • Skill / agent / plugin names, repo name (owner/repo), configured MCP server names

Never collected

  • Prompt text or completions
  • Your code or file contents
  • Tool arguments / inputs & outputs
  • Anything from /v1/traces — discarded entirely
// how it works

Agent → backend → consumers. One way, one binary.

A strict one-directional dependency rule keeps the platform core free of any product logic. The leaderboard and analytics are registered modules compiled into the same backend — not separate services.

everyone's AI tools (Claude Code, Codex, …) │ OTLP/HTTP ▼ acadmi-agent (127.0.0.1:4318) · receiver → sanitize → durable FIFO queue → forward │ POST /v1/metrics · /v1/logs (/v1/traces accepted & discarded) ▼ acadmi backend · signals registry → Postgres → generic data API + web UI │ ├─▶ consumer: leaderboard (XP · levels · trophies · seasons · teams) └─▶ consumer: analytics (manager site · impact · quality)

Config-driven ingest

A signals registry maps OpenTelemetry to stored facts. Extending to a non-Claude source is configuration, not a rewrite — and connectors/ pull from external APIs (e.g. Sonar).

Subscription-compatible

Ingests Claude Code's own OTLP exports directly, so no upstream Anthropic API key is required. Complementary to the AI gateway, not dependent on it.

Deploy your way

One ~18 MB distroless image. docker compose for local, Kubernetes for production — minimal or HA, with a DevOps sizing spec tuned for ~200 people.

Two minutes to your first data point.

Managers open the analytics site. Everyone else runs one install line, fires a prompt, and lands on the board. Raw data stays on the laptop — always.