# Iyakokin amfani

> ccam usage yana nuna iyakokin awa 5 da na mako na kowane asusu a lokaci ɗaya, kuma ccam statusline yana saka sunan asusun da amfaninsa a Claude Code.

Source: https://ccam.dev/ha/features/usage/ · Updated 2026-10-19

`ccam usage` yana nuna nawa kowane asusu ya yi amfani da shi daga iyakar awa 5 da ta mako, tare da lokacin da ya rage kafin kowace taga ta sake saitawa. Yi amfani da shi kafin ka fara dogon aiki, ko idan Claude Code ya gaya maka iyaka ta kusa, don ganin asusun da ke da sauran sarari. `ccam statusline` shi ne umarnin layin matsayi (status line) na Claude Code: yana nuna sunan asusun da amfaninsa a cikin Claude Code kuma yana ajiye lambobin don `ccam usage`.

## Amfani

```sh
ccam usage                  # every account, once
ccam u                      # the same, shorter
ccam usage --watch          # redraw every 60 seconds until Ctrl+C
ccam usage --watch=10       # redraw every 10 seconds
ccam usage -v               # add per-model weekly limits and the data source
ccam usage --json           # machine-readable, one object per account
ccam usage --source cache   # saved numbers only, no network
ccam usage --refresh        # also renew expired logins of accounts not running
ccam statusline install     # set the status line in every account's settings.json
```

```console
$ ccam usage
 Account     5-hour        Resets    Weekly        Resets    As of
 1 personal  ░░░░░░░░   0% -         ██████░░  70% 2d 16h    9h 36m ago (cached)
 2 work      ██░░░░░░  24% 2h 29m    ███░░░░░  41% 3d 11h    just now (cached)
 3 side      login expired, run `ccam side` once to refresh
→ Most headroom: personal   (open it with ccam next --auto)
```

A terminal teburin yana bayyana nan take da `fetching…` a kowane layi, kuma ana sake zana kowane layi yayin da asusunsa ya amsa. `As of` yana faɗin tsawon lokacin da lambobin suka yi; `(cached)` yana nufin sun fito daga fayil da aka ajiye, ba daga endpoint ba. Layin ƙarshe yana ambaton asusun da ke da mafi ƙarancin amfanin awa 5 ƙasa da 100%, kuma yana bayyana ne kawai idan kana da asusu fiye da ɗaya. Asusun da ba a shiga da shi ba yana nuna `not logged in → ccam login <name>`, kuma asusun API key yana nuna `no limits (API)`.

Bayan `ccam statusline install`, Claude Code yana nuna layi kamar `[work] · Opus · 5h 24% · 7d 41%`.

## Zaɓuɓɓuka

| Zaɓi | Abin da yake yi | Tsoho |
| --- | --- | --- |
| `--json` | Buga rahotannin a matsayin JSON: `name`, `slot`, `status`, `limits`, `source`, `at`, `error` | a kashe |
| `--watch[=N]` | Sake zanawa kowane daƙiƙa `N` har sai ka danna Ctrl+C. `--watch` shi kaɗai, ko ƙima ta 0 ko ƙasa da haka, yana nufin 60 | a kashe |
| `-v`, `--verbose` | Nuna iyakokin mako na kowane model da layin `source:` (`live`, `cache` ko `statusline`) | a kashe |
| `--no-cache` | Yi watsi da cache na daƙiƙa 60 kuma sake tambayar endpoint | a kashe |
| `--source live\|cache` | `cache` ba ya taɓa tambayar endpoint kuma yana nuna lambobin da aka ajiye kawai; `live` shi ne ɗabi'ar tsoho | live |
| `--refresh` | Sabunta access tokens da suka ƙare, ga asusan da ba sa aiki kawai | a kashe |
| `--dry-run` | Ana karɓar sa: `ccam usage` ba ya canza komai sai cache nasa. Ana ƙin sa tare da `--refresh`: `--dry-run cannot be combined with --refresh, which rewrites login tokens` | a kashe |

Duk wata ƙimar `--source` dabam tana gazawa da `--source must be live or cache`. `ccam usage` ba ya karɓar arguments.

`ccam statusline` yana karanta JSON na layin matsayi na Claude Code daga standard input. Zaɓinsa ɗaya shi ne `--wrap <command>`: umarnin layin matsayi da ke akwai wanda layin fitarwa na farko ke samun sunan asusun a gabansa. `ccam statusline install` ba ya karɓar zaɓuɓɓuka. Duka biyun suna ƙin `--dry-run` da `` --dry-run is not supported by `ccam statusline`; nothing was changed ``.

## Yadda yake aiki

Lambobin suna fitowa daga wurare biyu: endpoint na amfani na Anthropic da ba a rubuta bayaninsa ba, `GET https://api.anthropic.com/api/oauth/usage`, wanda ake kira da shigar kowane asusu, da ƙimomin da Claude Code ke miƙa wa umarnin layin matsayinsa. Duk wannan yana cikin `internal/usage`.

1. `cli.usageCmd` yana loda `config.toml` kuma yana gina `usage.Account` ɗaya ga kowane asusu: foldarsa `~/.local/share/ccam/profiles/<name>/`, foldar zamansa (don ganin ko yana aiki) da ko an shigo da shi a wurinsa.
2. `Fetcher.FetchAll` yana fara goroutine ɗaya ga kowane asusu. Dukkansu suna raba `http.Client` ɗaya, don haka ana sake amfani da haɗi zuwa endpoint ɗin. Haɗawa na iya ɗaukar 2 s, kuma kowane asusu yana samun 3 s gaba ɗaya. Client ɗin ba ya bin turawa (redirects), tunda turawa za ta sake aika token zuwa wani wuri, kuma yana karanta 1 MB na amsar a mafi yawa.
3. Yayin da kowane asusu ya kammala, ana sake zana layinsa. Asusun da ya gaza ko bai amsa a kan lokaci ba yana komawa ga lambobin da aka ajiye, don haka asusu ɗaya mai jinkiri ba ya taɓa riƙe sauran.

Kowane asusu yana gudana a goroutine nasa a kan endpoint ɗin; wanda lokacinsa ya ƙare yana nuna lambobinsa da aka ajiye maimakon haka.

`personal` da `work` suna amsawa a kan lokaci kuma suna nuna lambobi kai tsaye. `side` yana ɗaukar fiye da 3 s, don haka `fallback()` yana karanta fayilolin cache nasa biyu kuma yana amfani da wanda aka rubuta na ƙarshe. `usage.Table()` yana zana layukan kuma `usage.Best()` yana zaɓar asusun da aka ambata a layin ƙarshe.

Ga asusu ɗaya, `Fetcher.Fetch` yana yin waɗannan dubawa a tsari:

1. Da `--source cache`, yana zuwa `fallback()` kai tsaye.
2. Sai dai idan an saita `--no-cache`, sakamako kai tsaye a `~/.local/state/ccam/usage/<name>.json` da bai kai daƙiƙa 60 ba (`CacheTTL`) ana mayar da shi kamar yadda yake. Gudanar da `ccam usage` sau biyu a jere yana kashe buƙata ɗaya ga kowane asusu.
3. `readCredentials()` yana karanta `.credentials.json` (ko Keychain na macOS) ba tare da canza shi ba, kuma maɓallin `claudeAiOauth` ne kawai ake karantawa. Rashin shigar biyan kuɗi (subscription) yana nufin `not logged in`, ko `no limits (API)` idan `.claude.json` yana riƙe API key.
4. Ba a amfani da access token da ya ƙare. Ba tare da `--refresh` ba, asusun yana nuna lambobinsa da aka ajiye tare da alamar ya ƙare.
5. In ba haka ba ccam yana kiran endpoint ɗin. 401 ko 403 ana ɗaukar su a matsayin shigar da ta ƙare, duk wani matsayi dabam ko jikin amsa da ba zai iya karantawa ba ana ɗaukar sa a matsayin kuskure, kuma duka biyun suna komawa ga lambobin da aka ajiye.
6. Ana rubuta amsa mai kyau a `<name>.json` tare da lokacin da aka auna ta.

`fallback()` yana karanta duka `<name>.json` da `<name>.statusline.json` kuma yana riƙe wanda ya fi sabo. Kafin ya nuna lambobin da aka ajiye, yana duba lokacin sake saitin kowace taga: tagar da ta sake saitawa tun lokacin da aka ajiye lambobin tana nuna 0%, domin tsohon kashi ba ya aiki kuma. Shi ya sa `personal` a sama yana nuna `0%` ba tare da lokacin sake saiti ba.

Endpoint ɗin yana da tsarin amsa biyu. Sabon yana da array na `limits` mai shigarwar `session` (awa 5), `weekly_all` da `weekly_scoped` (na kowane model). Tsohon yana da abubuwan `five_hour`, `seven_day`, `seven_day_opus` da `seven_day_sonnet`. `ParseLive` yana karanta duka biyun: array na `limits` ne ke nasara, kuma tsofaffin abubuwan suna cike abin da bai ƙunsa ba. Jikin amsa da ba shi da iyaka ko ɗaya ana bayar da rahotonsa a matsayin tsarin da ya canza, wanda `ccam doctor` ke gaya maka game da shi.

### Sabunta token

Refresh tokens suna juyawa: sabunta ɗaya yana ba ka sabon refresh token kuma yana soke tsohon. Idan ccam ya sabunta shigar yayin da Claude Code ke gudana a matsayin asusu ɗaya, za a fitar da wannan zaman. Don haka `ccam usage` yana karanta token kuma ba ya taɓa rubuta su, sai dai idan ka ba da `--refresh`. Sannan `Fetcher.refresh`:

1. yana ƙin asusan da aka yi wa rajista a wurinsu da `ccam import`, tunda `claude` na yau da kullum zai iya amfani da wannan shigar ba tare da ccam ya sani ba;
2. yana ƙin shigar da aka ajiye a Keychain na macOS;
3. yana ɗaukar fayil ɗin kulle, `$XDG_RUNTIME_DIR/ccam/profile-<name>.refresh.lock` (ƙarƙashin `~/.local/state/ccam/locks/` idan ba a saita wannan mai canjin ba), don haka processes biyu na ccam ba sa taɓa sabunta token ɗaya sau biyu;
4. ƙarƙashin kullen, yana ƙi idan zaman asusun yana gudana, kuma yana tsallake buƙatar idan wani process ya riga ya sabunta token ɗin;
5. yana aika refresh token zuwa endpoint na token kuma yana rubuta sababbin token a `.credentials.json` da `fsutil.AtomicWrite`, yana riƙe kowane sauran maɓalli a cikin fayil ɗin.

### Mai tattara layin matsayi

Claude Code yana gudanar da umarnin layin matsayi kuma yana tura masa takardar JSON ta bututu (pipe). ccam yana karanta sunan model da `rate_limits` daga cikinta:

1. `runStatusline` yana nemo asusun daga `CCAM_PROFILE`, wanda ccam ke saitawa lokacin da yake fara Claude Code, ko kuma ta kwatanta `CLAUDE_CONFIG_DIR` da foldojin asusai.
2. `ParseStatusLine` yana karanta `rate_limits.five_hour` da `rate_limits.seven_day`. JSON ɗin ba shi da iyakokin amfani ga asusan API key, ko kafin amsar farko ta zaman; to ba a ajiye komai.
3. `SaveStatusLine` yana rubuta `~/.local/state/ccam/usage/<name>.statusline.json`. `ccam usage` yana amfani da shi idan endpoint ɗin bai amsa ba.
4. ccam yana buga `[name] · model · 5h N% · 7d N%`. Da `--wrap`, yana gudanar da umarninka ta `sh -c` da shigarwa iri ɗaya kuma yana buga `[name]` sannan layin farko na umarnin maimakon haka.

Umarnin da aka naɗe yana samun daƙiƙa 2. Bayan haka ana kashe shi kuma layin yana nuna sunan asusun kaɗai, don haka umarni mai jinkiri ba zai iya toshe layin matsayi na Claude Code ba.

`ccam statusline install` yana rubuta `statusLine` a cikin `settings.json` na kowane asusu. Idan asusu ya riga yana da umarnin layin matsayi, ccam yana riƙe shi a matsayin `--wrap '<old command>'`. `settings.json` da aka raba ta rukuni ana rubuta shi sau ɗaya, ta mahaɗinsa, don haka kowane asusu a rukunin yana samun sa. Sake gudanar da shi yana buga `(already set)` ga fayilolin da suka riga suna amfani da ccam.

## Tsaro da yanayi na musamman

- `ccam usage` ba ya taɓa canza fayil ɗin token sai dai idan ka ba da `--refresh`. Idan shiga ta ƙare, fara asusun sau ɗaya da `ccam <name>` kuma Claude Code zai sabunta ta.
- `--refresh` ba ya taɓa asusan da ke aiki, asusan da aka shigo da su ko shigar Keychain. Sabuntawar da aka ƙi tana nuna lambobin da aka ajiye da dalilin.
- Ba a rubuta bayanin endpoint na amfani a bainar jama'a ba, kuma yana iya canzawa. Idan ya canza, har yanzu kana ganin lambobin da aka ajiye, kuma `ccam doctor` yana bayar da rahoton canjin tsarin.
- Idan babu lambobin da aka ajiye kuma babu amsa, layin yana nuna `lookup failed:` da dalilin, misali `no saved usage` da `--source cache`.
- Fayilolin cache suna riƙe kashi da lokutan sake saiti kawai, ba taɓa token ba.

## Masu alaƙa

- [Iyakokin amfani da sauya asusai](https://ccam.dev/ha/docs/usage-limits.md)
- [Sauyawa zuwa asusu na gaba](https://ccam.dev/ha/features/next.md)
- [Matakan aiki idan an kai iyakar amfani](https://ccam.dev/ha/guides/usage-limit-workflow.md)
- [Umarnai](https://ccam.dev/ha/docs/commands.md)
