{"repo":"pella-labs/pellametric","free":true,"listed":false,"github":"https://github.com/pella-labs/pellametric","clone":"git clone https://github.com/pella-labs/pellametric.git","description":"Open-source, self-hostable AI-engineering analytics platform","language":"TypeScript","stars":45,"topics":[],"license":null,"category":"analytics","readme_excerpt":"pella-metric Per-dev productivity metrics from Claude Code + Codex sessions, org-scoped via GitHub. Architecture Flow 1. Manager signs in with GitHub → picks org → becomes org admin. 2. Manager invites devs by GitHub login. 3. Dev accepts invite, goes to /setup/collector , issues a token, pastes the install one-liner. 4. The collector runs as a per-user background service (launchd / systemd --user / Scheduled Task). It streams new session data every 10 s and re-starts automatically at every login. 5. Dashboard shows per-dev + org-rolled views. Install the collector (as a dev) One command. Downloads the binary, verifies SHA-256, writes /.pella/config.env (mode 0600), installs + starts the OS service, and detaches. After install: The curl … /collector.mjs node - --token pm … fallback still works for one-shot backfills on machines where a service can't be installed. Develop the web app Build the collector binaries bun build --compile cross-compiles from any host (Bun downloads each target runtime on demand). In CI, .github/workflows/release.yml builds all 5 targets on v tag push, attaches them + SHA256SUMS to a GitHub Release. Scopes required on the GitHub OAuth app - read:org — list orgs the user belongs to - repo — read private repos (to resolve local git remote → owner/repo ) - read:user , user:email — basic profile Tables See apps/web/lib/db/schema.ts for the full Drizzle schema.","default_branch":null,"files":null,"tree":[],"storefront":"/r/pella-labs","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/pella-labs/pellametric/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}