---
title: Kumo Usage CLI Bar
description: Панель расхода и остатка под промптом Claude Code и Codex — ставится одной командой, находит ваш ключ сама и показывает, сколько осталось: пакет, баланс или ваш лимит.
keywords: cli, статуслайн, statusline, claude code, codex, расход, остаток, пакет, баланс, лимит, tree cost
group: integrations
---

## Что это {#what keywords="панель, статуслайн, остаток, расход"}

Строка под промптом вашего CLI-агента. В шапке — имя панели и две цены: **Session Cost** —
сколько стоила эта сессия, и **Tree Cost** — сколько стоила рабочая ветка целиком, по всем
сессиям, которые на ней работали. Слева — папка, ветка, ключ, который платит, и модель с
уровнем рассуждения. По центру — расход токенов по минутам, итог `Σ` и тонкая линия
остатка. Справа — занятый контекст.

```text
———— Kumo Router Usage ————          Session Cost $1.84   Tree Cost $12.4
my-project (main)                 │ ▂▃█▇▆▅▆▆██▇▆▃▃▃  Σ 12.9M │   session ctx
key Example Key  Opus (1M) High │ ━━━━── package 18.4M left cache 95%  46%
```

**Tree Cost** считается по паре «рабочее дерево + ветка»: панель держит в
`~/.claude/statusline-state/` реестр последних известных сумм каждой сессии этой ветки и
показывает их итог. Переключились на другую ветку — цена другая; вернулись — прежняя. Это
ответ на вопрос «во что мне обошлась эта задача», а не «во что обошёлся этот чат».

Работает на Claude Code (панель под промптом) и на Codex (встроенная строка в подвале).
Зависимостей нет — нужны только `python3` (3.8+) и `curl`.

## Установка {#install keywords="curl, установщик, install.sh, агент"}

Одна строка в терминале:

```bash
curl -fsSL https://kumorouter.com/tools/kumo-usage/install.sh | bash
```

Установщик **ничего не спрашивает**. Он сам находит ваш ключ Kumo — в переменных окружения
(`KUMO_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`), затем в
`~/.claude/settings.json`, `~/.codex/config.toml` и `.env` текущей папки, — спрашивает у
аккаунта имя ключа и то, из чего он тратит, и заполняет конфиг. Секрет никуда не записывается: в
файл попадает только имя переменной окружения.

Если ставить должен агент, отдайте ему готовый промпт: он лежит рядом, по адресу
`https://kumorouter.com/tools/kumo-usage/prompt.md`, и его же копирует кнопка в кабинете.

:::note
Настройки читаются при старте. Перезапустите Claude Code (или выполните `/statusline`) и
Codex — до перезапуска панель не появится.
:::

## Что появляется на машине {#files keywords="файлы, settings.json, config.toml, удаление"}

| куда | что |
|---|---|
| `~/.claude/kumo-usage/` | рендерер: `cc_statusline.py`, `providers.py` |
| `~/.claude/statusline.json` | конфиг: `title`, `key_name`, `limit`, `kumo` |
| `~/.claude/settings.json` | ключ `statusLine`; прежний файл остаётся рядом как `.bak` |
| `~/.codex/config.toml` | `[tui] status_line`; прежний файл остаётся рядом как `.bak` |

Снимается тем же скриптом: `curl -fsSL https://kumorouter.com/tools/kumo-usage/install.sh | bash -s -- --uninstall`.
Конфиг остаётся — удалите его руками, если он больше не нужен.

## Четыре вида остатка {#limits keywords="пакет, баланс, лимит ключа, лимит проекта, токены, доллары"}

Kumo продаёт токены и деньги, поэтому линия под графиком считает одно из четырёх. Что
именно — задаётся блоком `limit` в `~/.claude/statusline.json`; при установке он
заполняется сам по тому, из чего тратит ключ.

| `kind` | что показывает |
|---|---|
| `package` | остаток купленного пакета, `cap` в токенах |
| `money` | деньги на балансе (Pay As You Go), `cap` в долларах |
| `key` | ваш потолок на этот ключ — в токенах или в долларах |
| `project` | потолок на проект — в токенах или в долларах |

```json title=~/.claude/statusline.json
{
  "title": "Kumo Router Usage",
  "key_name": "Example Key",
  "limit": { "kind": "package", "cap": 25000000, "unit": "auto" },
  "kumo": { "enabled": true, "key_env": "KUMO_API_KEY" }
}
```

`unit` — `auto` (пакет в токенах, остальное в долларах), `tokens` или `usd`. Линия зелёная,
при остатке ≤ 30 % жёлтая, ≤ 10 % красная.

## Откуда берётся число {#source keywords="аккаунт, ключ, оценка, приблизительно"}

По порядку, и порядок здесь — главное:

1. **аккаунт Kumo**, прочитанный тем же ключом, которым ходит агент. Только аккаунт знает
   пакет, баланс и то, что роутер действительно списал;
2. значение, вписанное в `limit.remaining` руками, — для машины, которой до аккаунта не
   дотянуться;
3. балансовый эндпоинт из блока `router` — для панели, направленной не на Kumo;
4. последним и с пометкой `≈` — `cap` минус расход, измеренный по транскриптам **этой
   машины**. Это оценка одного клиента, а не аккаунта, и панель об этом говорит.

Ключ уходит по сети ровно на один адрес — тот, что записан в `kumo.url`, — и читается в
фоне: промпт сети не ждёт.

## Диагностика {#doctor keywords="demo, doctor, ошибка, не появилась"}

```bash
python3 ~/.claude/kumo-usage/cc_statusline.py --demo      # превью на фейковых данных
python3 ~/.claude/kumo-usage/cc_statusline.py --doctor    # конфиг, режим оплаты, ширина, аккаунт
```

Панель никогда не роняет промпт: при любой внутренней ошибке она печатает одну строку
`<модель> statusline error: …`. Если панели нет вовсе — перезапустите агента; если
`--doctor` пишет, что ключ не найден, положите его в переменную окружения, названную в
`kumo.key_env`.

Полное описание и снимки экрана лежат рядом с установщиком: `https://kumorouter.com/tools/kumo-usage/README.md`.
