This repo is a pnpm monorepo fork of ryoppippi/ccusage, with an added hourly usage report (see apps/ccusage).
For deeper, package-specific guidance, also read:
CLAUDE.md(repo-wide)apps/*/CLAUDE.mdandpackages/*/CLAUDE.md(package-level)
- Install deps:
pnpm -w install - Run all tests:
pnpm -w test - Typecheck:
pnpm -w typecheck - Lint:
pnpm -w lint - Format (writes):
pnpm -w format
If you merged/upgraded dependencies and commands fail with missing binaries, refresh workspace links:
pnpm -r install --force
apps/ccusage/: main Claude Code usage CLI + library (includeshourly)apps/codex/: OpenAI Codex usage CLIapps/mcp/: MCP server exposing usage reportsapps/opencode/,apps/pi/,apps/amp/: additional CLIspackages/internal/: shared pricing/logging/format utilitiespackages/terminal/: table + terminal formatting utilitiesdocs/: VitePress documentation site
- Apps are bundled CLIs: keep runtime deps in each app’s
devDependenciesso the bundler owns the runtime payload. - No
console.log: use the package logger modules instead (seeapps/*/src/logger.ts). - Local imports use
.ts: e.g.import { x } from "./util.ts". - Vitest is in-source: tests live in
if (import.meta.vitest != null)blocks; globals are enabled (describe/it/expect). - Never use dynamic
await import()(especially in tests).
Remotes typically use:
origin: the forkupstream:ryoppippi/ccusage
Common update flow:
git fetch upstreamgit merge upstream/main