Skip to main content

development

Guides ccusage monorepo development. Use when editing packages, docs, shared configuration, bundled CLI packaging, dependencies, exports, or validation commands.

Source facts

Repository
ryoppippi/ccusage
Last source activity
June 8, 2026 at 23:29
Detected SKILL.md language
English
Stars
15,907
Forks
638

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
3 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
development
description
Guides ccusage monorepo development. Use when editing packages, docs, shared configuration, bundled CLI packaging, dependencies, exports, or validation commands.
# ccusage Development ## Repository Shape This is a monorepo. Check the nearest package-specific `AGENTS.md` before editing a package: - `apps/ccusage/AGENTS.md` - main Claude Code usage CLI and library - `docs/AGENTS.md` - VitePress documentation site The production CLI implementation is Rust-first under `rust/crates/ccusage`. The `apps/ccusage` package now mainly provides npm metadata, a TypeScript bin launcher, generated schema artifacts, benchmarks, and release packaging. The canonical user-facing command is `ccusage` with agent subcommands: ```sh ccusage daily ccusage codex daily ccusage opencode daily ccusage amp daily ccusage pi daily ``` Standalone agent wrapper packages have been removed. Prefer `ccusage <agent> ...` in docs, tests, examples, and new behavior, and do not reintroduce wrapper commands such as `ccusage-codex`, `ccusage-opencode`, `ccusage-amp`, or `ccusage-pi`. Agent implementations live in the Rust CLI unless the work is specifically about the remaining TypeScript package surface. Treat package runtime libraries as bundled assets: add dependencies to each package's `devDependencies` unless the user explicitly asks otherwise. ## Common Commands Use root commands unless a narrower package command is more appropriate. Read `references/commands.md` for root and main CLI command examples. `LOG_LEVEL` controls logging verbosity from `0` silent through `5` trace. ## Environment and Tooling Read `references/environment-and-validation.md` for direnv, tool management, generated skill target rules, and post-change checks. ## Code Style - For Rust CLI work, use the `rust` skill before editing `rust/crates/**`, native packaging behavior, or Rust pricing embedding. Use `profile` for Rust performance work. - Keep Rust modules small and responsibility-focused. Prefer `pub(crate)` over broader visibility, avoid unnecessary `String` cloning in hot paths, and put unit tests beside the module they exercise. - For TypeScript package/tooling code, use the `typescript` skill before editing. Keep `satisfies` and `as const satisfies` guidance there instead of mixing TypeScript details into Rust workflow rules. - Only export constants, functions, and types used by other modules. - Keep internal-only files and helpers private where possible. - Dependency additions go in `devDependencies` for bundled/private packages. ## Post-Change Workflow Read `references/environment-and-validation.md` for formatting, typecheck, and test commands. ## Performance and CLI Output Use `profile` for native CLI performance optimization, Rust profiling, hyperfine A/B comparisons, branch-vs-main profiling, TypeScript launchers, benchmarks, and packaging scripts. Use the `cmux-debug` skill when validating terminal rendering, responsive tables, long-running CLI output, or output that depends on real terminal geometry. ## Commit and PR Names Use the `commit` skill for commit structure, Conventional Commits, scope selection, and detailed commit message requirements. Use the `create-pr` skill after opening a PR or pushing follow-up commits so AI and human review comments are requested, inspected, answered, and incorporated through small revertible commits.
View on GitHub