refactor!: rebrand CCAM to AgentHub
Clean break, no compatibility alias. Renames the product name, the CLI binary (`ccam` -> `agenthub`), the env var prefix (`CCAM_` -> `AGENTHUB_`), the Prometheus metric namespace (`ccam_*` -> `agenthub_*`), the tmux session prefix (`ccam-lane-<id>` -> `agenthub-lane-<id>`), the per-repo runtime profile directory (`.ccam/profile` -> `.agenthub/profile`), the lanes state root (`~/.claude/ccam-lanes` -> `~/.claude/agenthub-lanes`), the bundled plugins (`plugins/ccam*` -> `plugins/agenthub*`) and their slash commands (`/ccam-doctor` -> `/agenthub-doctor`, `/ccam:*` -> `/agenthub:*`). Because there is no alias, an existing install has to be updated by hand: rename its `.ccam/profile` directory and any `CCAM_*` variables, and reinstall the plugin under its new name. Two other name families are deliberately left alone here, since they are not just strings: the `Claude-Code-Monitor` repository/marketplace name, and the `agent-dashboard` npm package plus its `~/.claude/agent-dashboard` runtime directory, which holds the live database and needs a migration rather than a rename. Verified: server 1406/1406, client 459/459, `grep -i ccam` clean across tracked files, `openapi.yaml` regenerated (95 paths, unchanged count).
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
---
|
||||
description: Show current Claude Code spend versus a budget number
|
||||
argument-hint: "[monthly-$]"
|
||||
---
|
||||
|
||||
Show current Claude Code spend against the budget **$ARGUMENTS** (a monthly dollar
|
||||
figure, e.g. `50`). If `$ARGUMENTS` is empty, just report spend-to-date and ask for a budget.
|
||||
|
||||
1. Fetch current spend:
|
||||
```
|
||||
curl -s http://localhost:4820/api/pricing/cost
|
||||
```
|
||||
Read `total_cost` (spend-to-date) and the per-model `breakdown`.
|
||||
|
||||
2. Print a concise budget status:
|
||||
- **Spend to date**: `total_cost` as USD to 4 decimals.
|
||||
- **Budget**: `$ARGUMENTS`/month.
|
||||
- **Consumed**: `total_cost / budget × 100`% — with a ▲/▼ vs. the linear pace expected for today's day-of-month (`budget × day_of_month / days_in_month`).
|
||||
- **Verdict**: under budget / on pace / over budget.
|
||||
- **Top 3 models by cost** from the breakdown (model, cost, % of total).
|
||||
|
||||
If the dashboard is unreachable (curl fails / empty), tell the user to start it with
|
||||
`npm start` from the repo root. Keep the output to a few lines plus one small table.
|
||||
Currency as USD to 4 decimal places. Read-only — do not modify anything.
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
description: Quick month-end spend projection from the daily trend
|
||||
argument-hint: "[week|month]"
|
||||
---
|
||||
|
||||
Give a quick spend projection for the end of the **$ARGUMENTS** period (`week` or
|
||||
`month`; default `month` if empty).
|
||||
|
||||
1. Fetch the trend and current spend in parallel:
|
||||
```
|
||||
curl -s http://localhost:4820/api/analytics
|
||||
curl -s http://localhost:4820/api/pricing/cost
|
||||
```
|
||||
From `/api/analytics` read `daily_sessions` (`[{ date, count }]`) and the session
|
||||
total; from `/api/pricing/cost` read `total_cost`.
|
||||
|
||||
2. Project:
|
||||
- `avg_cost_per_session = total_cost / total_session_count`.
|
||||
- `avg_daily_spend = mean(last 7 days of daily_sessions[].count) × avg_cost_per_session`.
|
||||
- `days_remaining` = days left until end of the chosen period (week → Sunday; month → last calendar day).
|
||||
- `projected_total = total_cost + avg_daily_spend × days_remaining`.
|
||||
|
||||
3. Print: spend-to-date, `avg_daily_spend`, `days_remaining`, and the **projected end-of-period total** (USD, 4 decimals), with a ▲/▼ note on whether the 7-day pace is above or below the trailing 14-day pace.
|
||||
|
||||
State that daily spend is approximated from session counts. If the dashboard is
|
||||
unreachable, tell the user to start it with `npm start` from the repo root. Keep it to
|
||||
a few lines. Read-only — do not modify anything.
|
||||
@@ -0,0 +1,21 @@
|
||||
---
|
||||
description: List the most expensive sessions pushing your spend up
|
||||
argument-hint: "[top-N]"
|
||||
---
|
||||
|
||||
List the sessions driving Claude Code spend up — the **top $ARGUMENTS** most expensive
|
||||
(default top 10 if empty).
|
||||
|
||||
1. Fetch a wide slice of sessions:
|
||||
```
|
||||
curl -s "http://localhost:4820/api/sessions?limit=200"
|
||||
```
|
||||
|
||||
2. Sort the returned sessions by inline `cost` **descending** and take the top N.
|
||||
|
||||
3. Print a table — rank, session id/name, `model`, `started_at`, `metadata.turn_count`, and `cost` (USD, 4 decimals). Below it:
|
||||
- **Sum of the top N** and what share of fleet spend they represent (sum top-N `cost` / sum of all `cost`).
|
||||
- Flag any Opus session with a low `turn_count` as a downshift candidate (point to the `model-savings` skill).
|
||||
|
||||
If the dashboard is unreachable, tell the user to start it with `npm start` from the
|
||||
repo root. Keep it to one table plus two summary lines. Read-only — do not modify anything.
|
||||
Reference in New Issue
Block a user