Skip to main content
skill CX Codex

cwd-rollup — Claude Code skill: what it does, how to install

Aggregates Claude Code sessions by working directory using Agent Monitor data. It compares session counts, token totals, and dollar spend across active projects.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill cwd-rollup -a claude-code
Open on GitHub

What cwd-rollup does

The skill aggregates Claude Code activity across projects using data from Agent Monitor. It queries the /api/run/cwds, /api/sessions?limit=1000, and /api/pricing/cost endpoints. Everything groups by working directory. For each folder, it tallies session counts, total dollar cost, active models, and latest timestamps. Token sums separate billable text from cache reads and writes.

Output comes as a Markdown table sorted by cost descending. It shows each directory's share of total fleet spend. You can pass a path substring to filter rows or use top N to limit results. The skill requires an active Agent Monitor instance; if the local dashboard is down, start it with npm start in the repository root. Sessions missing usage_extras metadata are simply excluded from token sums.

What it helps with

  • Compare Claude Code spend across different working directories
  • Find projects with the highest token consumption and dollar cost
  • Check recent activity timestamps and model usage for a folder
  • Calculate each project's percentage share of total fleet spend

Example prompts for the agent

  • Roll up Claude Code sessions across all working directories
  • Show top 5 most expensive projects using cwd-rollup
  • Filter directory rollup for paths matching backend

How to install cwd-rollup

1Skills CLI (Vercel)

npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill cwd-rollup -a claude-code

2Manually: put the files in place

~/.claude/skills/cwd-rollup/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/cwd-rollup/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about cwd-rollup

How do I install cwd-rollup in Claude Code?

Run npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill cwd-rollup -a claude-code. The skill file can also be placed at ~/.claude/skills/cwd-rollup/SKILL.md.

What does cwd-rollup do?

It pulls session logs from Agent Monitor and rolls them up by working directory. The result is a Markdown table showing spend in USD, token counts, run counts, and fleet share per project.

What happens if the Agent Monitor dashboard is not running?

The skill cannot fetch data if the local API is unreachable. Start the dashboard by running npm start from the Agent Monitor repository root before invoking the skill.

Source text

SKILL.md · MIT
---
name: cwd-rollup
description: >
  Roll up Claude Code sessions by working directory (project) from Agent Monitor
  data — session count, total cost, total tokens, and last-active timestamp per cwd
  — so per-project activity can be compared at a glance. Use when summarizing where
  effort and spend went across projects.
---

# CWD Rollup

Aggregate session activity per working directory (project).

## Input

The user provides: **$ARGUMENTS**

- Empty → roll up **all** working directories.
- A path / project substring → restrict the rollup to matching cwds.
- `top N` → keep only the N highest-cost (or highest-count) projects.

## Data Sources

| Endpoint | Returns |
|----------|---------|
| `GET /api/run/cwds` | the distinct working directories that have sessions — the rollup key set |
| `GET /api/sessions?limit=N` | session list: id, status, model, cwd, started_at, ended_at, cost, metadata (usage_extras with token counts) |
| `GET /api/pricing/cost` | fleet cost: total_cost, breakdown[{ model, input_tokens, output_tokens, cache_read_tokens, cache_write_tokens, cost, matched_rule }] — for the fleet total to compute each cwd's share |

## Report Sections

### 1. Key set
`GET /api/run/cwds` for the canonical list of working directories. Apply the
`$ARGUMENTS` filter (substring match) if one was given.

### 2. Pull sessions
`GET /api/sessions?limit=1000`. Bucket sessions by `cwd`.

### 3. Aggregate per cwd
For each working directory compute:
- **sessions** — count.
- **cost** — sum of the inline `cost` field across the bucket.
- **tokens** — sum of input / output / cache-read / cache-write from each session's
  metadata `usage_extras` (sum the four into a total, and keep input + output as the
  "billable text" subtotal).
- **last active** — the max `started_at` (or `ended_at`) in the bucket.
- **models** — the distinct models seen.

### 4. Share of fleet
`GET /api/pricing/cost` for `total_cost`; show each cwd's cost as a percentage of the
fleet total.

### 5. Ranking
Sort by cost descending by default (or count if the user asked); apply `top N`.

## Output

Markdown table: `project (cwd basename) | sessions | total tokens | cost | % of fleet | last active | models`.
Currency as USD to 4 decimal places; token counts with thousands separators; sort
cost-descending. Add a final TOTAL row summing the columns. Only count tokens that
the session metadata actually carries — if `usage_extras` is absent for a session,
note it as excluded rather than guessing. If the dashboard is unreachable, tell the
user to start it with `npm start` from the repo root.

© hoangsonww · MIT · hoangsonww/Claude-Code-Agent-Monitor

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set60

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor