Vipengele
Vikomo vya matumizi
Ukurasa huu umetafsiriwa kwa mashine kutoka Kiingereza. Marekebisho yanakaribishwa. Hariri ukurasa huu kwenye GitHub
Katika ukurasa huu
ccam usage huonyesha kiasi cha vikomo vya saa 5 na vya wiki ambacho kila akaunti imetumia, pamoja na muda uliobaki hadi kila kipindi kianze upya. Itumie kabla ya kuanza kazi ndefu, au Claude Code inapokuambia kikomo kiko karibu, ili kuona ni akaunti ipi bado ina nafasi. ccam statusline ni amri ya mstari wa hali (status line) kwa Claude Code: huonyesha jina la akaunti na matumizi ndani ya Claude Code na huhifadhi namba kwa ajili ya ccam usage.
Matumizi
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$ 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)Kwenye terminal jedwali huonekana mara moja likiwa na fetching… katika kila safu, na kila safu huchorwa upya akaunti yake inapojibu. As of husema namba zina umri gani; (cached) inamaanisha zinatoka kwenye faili iliyohifadhiwa, si kwenye endpoint. Mstari wa mwisho hutaja akaunti yenye matumizi ya chini zaidi ya saa 5 yaliyo chini ya 100%, na huonekana tu ukiwa na zaidi ya akaunti moja. Akaunti ambayo haijaingia huonyesha not logged in → ccam login <name>, na akaunti ya API key huonyesha no limits (API).
Baada ya ccam statusline install, Claude Code huonyesha mstari kama [work] · Opus · 5h 24% · 7d 41%.
Chaguo
| Chaguo | Inachofanya | Chaguo-msingi |
|---|---|---|
--json |
Huchapisha ripoti kama JSON: name, slot, status, limits, source, at, error |
imezimwa |
--watch[=N] |
Huchora upya kila sekunde N hadi ubonyeze Ctrl+C. --watch peke yake, au thamani ya 0 au chini, inamaanisha 60 |
imezimwa |
-v, --verbose |
Huonyesha vikomo vya wiki vya kila model na mstari wa source: (live, cache au statusline) |
imezimwa |
--no-cache |
Hupuuza cache ya sekunde 60 na huuliza endpoint tena | imezimwa |
--source live|cache |
cache kamwe haiulizi endpoint na huonyesha namba zilizohifadhiwa tu; live ndiyo tabia ya chaguo-msingi |
live |
--refresh |
Hufanya upya tokeni za ufikiaji zilizoisha muda, kwa akaunti ambazo haziendeshwi tu | imezimwa |
--dry-run |
Inakubaliwa: ccam usage haibadilishi chochote isipokuwa cache yake yenyewe. Hukataliwa pamoja na --refresh: --dry-run cannot be combined with --refresh, which rewrites login tokens |
imezimwa |
Thamani nyingine yoyote ya --source hushindwa na --source must be live or cache. ccam usage haipokei hoja.
ccam statusline husoma JSON ya mstari wa hali ya Claude Code kutoka standard input. Chaguo lake moja ni --wrap <command>: amri ya mstari wa hali iliyopo ambayo mstari wake wa kwanza wa matokeo huwekewa jina la akaunti mbele. ccam statusline install haipokei chaguo. Zote mbili hukataa --dry-run kwa --dry-run is not supported by `ccam statusline`; nothing was changed.
Jinsi inavyofanya kazi
Namba zinatoka sehemu mbili: endpoint ya matumizi ya Anthropic isiyo na nyaraka, GET https://api.anthropic.com/api/oauth/usage, inayoitwa kwa taarifa za kuingia za kila akaunti yenyewe, na thamani ambazo Claude Code hukabidhi amri yake ya mstari wa hali. Yote haya yako katika internal/usage.
cli.usageCmdhupakiaconfig.tomlna huundausage.Accountmoja kwa kila akaunti: folda yake~/.local/share/ccam/profiles/<name>/, folda yake ya vipindi (kuona kama inaendeshwa) na kama iliingizwa mahali ilipo.Fetcher.FetchAllhuanzisha goroutine moja kwa kila akaunti. Zote hushirikihttp.Clientmoja, kwa hiyo miunganisho kwenye endpoint hutumiwa tena. Kuunganisha kunaweza kuchukua sekunde 2, na kila akaunti hupata sekunde 3 kwa jumla. Client haifuati uelekezaji, kwa kuwa uelekezaji ungetuma tokeni mahali pengine, na husoma kwa kiwango cha juu MB 1 ya jibu.- Kila akaunti inapomaliza, safu yake huchorwa upya. Akaunti inayoshindwa au isiyojibu kwa wakati hurudi kwenye namba zilizohifadhiwa, kwa hiyo akaunti moja ya polepole kamwe haizuii nyingine.
Kila akaunti huendeshwa katika goroutine yake dhidi ya endpoint; ile inayopitwa na muda huonyesha namba zake zilizohifadhiwa badala yake.
personal na work hujibu kwa wakati na huonyesha namba za moja kwa moja. side huchukua zaidi ya sekunde 3, kwa hiyo fallback() husoma faili zake mbili za cache na hutumia ile iliyoandikwa mwisho. usage.Table() huchora safu na usage.Best() huchagua akaunti inayotajwa kwenye mstari wa mwisho.
Kwa akaunti moja, Fetcher.Fetch hufanya ukaguzi huu kwa mpangilio:
- Kwa
--source cache, huenda moja kwa moja kwafallback(). - Isipokuwa
--no-cacheimewekwa, matokeo ya moja kwa moja katika~/.local/state/ccam/usage/<name>.jsonyenye umri wa chini ya sekunde 60 (CacheTTL) hurudishwa kama yalivyo. Kuendeshaccam usagemara mbili mfululizo hugharimu ombi moja kwa kila akaunti. readCredentials()husoma.credentials.json(au Keychain ya macOS) bila kuibadilisha, na ufunguo waclaudeAiOauthpekee ndio hufasiriwa. Kukosekana kwa kuingia kwa usajili kunamaanishanot logged in, auno limits (API)wakati.claude.jsonina API key.- Tokeni ya ufikiaji iliyoisha muda haitumiwi. Bila
--refresh, akaunti huonyesha namba zake zilizohifadhiwa zikiwa na alama ya kuisha muda. - Vinginevyo ccam huita endpoint. 401 au 403 huhesabiwa kama kuingia kulikoisha muda, hali nyingine yoyote au mwili wa jibu usioweza kusomwa huhesabiwa kama kosa, na zote mbili hurudi kwenye namba zilizohifadhiwa.
- Jibu zuri huandikwa kwenye
<name>.jsonpamoja na muda lilipopimwa.
fallback() husoma <name>.json na <name>.statusline.json zote mbili na hubakiza ile mpya zaidi. Kabla ya kuonyesha namba zilizohifadhiwa, hukagua muda wa kuanza upya wa kila kipindi: kipindi kilichoanza upya tangu namba zihifadhiwe huonyesha 0%, kwa sababu asilimia ya zamani haitumiki tena. Ndiyo sababu personal hapo juu huonyesha 0% bila muda wa kuanza upya.
Endpoint ina miundo miwili ya majibu. Mpya zaidi una safu ya limits yenye vipengele vya session (saa 5), weekly_all na weekly_scoped (kwa kila model). Wa zamani una vitu vya five_hour, seven_day, seven_day_opus na seven_day_sonnet. ParseLive husoma yote miwili: safu ya limits hushinda, na vitu vya zamani hujaza kile ambacho haikihusishi. Mwili wa jibu usio na vikomo kabisa huripotiwa kama muundo uliobadilika, jambo ambalo ccam doctor hukujulisha.
Kufanya upya tokeni
Refresh tokens huzunguka: kufanya upya moja hukupa refresh token mpya na hubatilisha ile ya zamani. Ikiwa ccam ingefanya upya kuingia wakati Claude Code inaendeshwa kama akaunti ile ile, kipindi hicho kingetolewa nje ya akaunti. Kwa hiyo ccam usage husoma tokeni na kamwe haiziandiki, isipokuwa utoe --refresh. Kisha Fetcher.refresh:
- hukataa akaunti zilizosajiliwa mahali zilipo kwa
ccam import, kwa kuwaclaudeya kawaida inaweza kutumia kuingia huko bila ccam kujua; - hukataa taarifa za kuingia zilizohifadhiwa katika Keychain ya macOS;
- huchukua faili ya kufuli,
$XDG_RUNTIME_DIR/ccam/profile-<name>.refresh.lock(chini ya~/.local/state/ccam/locks/kigezo hicho kisipowekwa), ili michakato miwili ya ccam kamwe isifanye upya tokeni ile ile mara mbili; - chini ya kufuli, hukataa ikiwa kipindi cha akaunti kinaendeshwa, na huruka ombi ikiwa mchakato mwingine tayari umefanya upya tokeni;
- hutuma refresh token kwenye endpoint ya tokeni na huandika tokeni mpya kurudi kwenye
.credentials.jsonkwafsutil.AtomicWrite, ikihifadhi kila ufunguo mwingine katika faili.
Mkusanyaji wa mstari wa hali
Claude Code huendesha amri ya mstari wa hali na huipitishia hati ya JSON. ccam husoma jina la model na rate_limits kutoka humo:
runStatuslinehupata akaunti kutokaCCAM_PROFILE, ambayo ccam huiweka inapoanzisha Claude Code, au vinginevyo kwa kulinganishaCLAUDE_CONFIG_DIRna folda za akaunti.ParseStatusLinehusomarate_limits.five_hournarate_limits.seven_day. JSON haina vikomo vya maombi kwa akaunti za API key, au kabla ya jibu la kwanza la kipindi; basi hakuna kinachohifadhiwa.SaveStatusLinehuandika~/.local/state/ccam/usage/<name>.statusline.json.ccam usagehuitumia wakati endpoint haijibu.- ccam huchapisha
[name] · model · 5h N% · 7d N%. Kwa--wrap, huendesha amri yako kupitiash -ckwa ingizo lile lile na huchapisha[name]ikifuatiwa na mstari wa kwanza wa amri badala yake.
Amri iliyozungukwa hupata sekunde 2. Baada ya hapo husimamishwa kwa nguvu na mstari huonyesha jina la akaunti peke yake, kwa hiyo amri ya polepole haiwezi kuzuia mstari wa hali wa Claude Code.
ccam statusline install huandika statusLine katika settings.json ya kila akaunti. Akaunti ikiwa tayari ina amri ya mstari wa hali, ccam huihifadhi kama --wrap '<old command>'. settings.json inayoshirikiwa kupitia kikundi huandikwa mara moja, kupitia kiungo chake, kwa hiyo kila akaunti katika kikundi huipata. Kuiendesha tena huchapisha (already set) kwa faili ambazo tayari zinatumia ccam.
Usalama na hali maalum
ccam usagekamwe haibadilishi faili ya tokeni isipokuwa utoe--refresh. Kuingia kukiisha muda, anzisha akaunti mara moja kwaccam <name>na Claude Code itakufanya upya.--refreshkamwe haigusi akaunti zinazoendeshwa, akaunti zilizoingizwa wala taarifa za kuingia za Keychain. Ufanyaji upya uliokataliwa huonyesha namba zilizohifadhiwa na sababu.- Endpoint ya matumizi haijaandikiwa nyaraka hadharani na inaweza kubadilika. Ikibadilika, bado unaona namba zilizohifadhiwa, na
ccam doctorhuripoti badiliko la muundo. - Bila namba zilizohifadhiwa na bila jibu, safu huonyesha
lookup failed:na sababu, kwa mfanono saved usagekwa--source cache. - Faili za cache huhifadhi asilimia na nyakati za kuanza upya tu, kamwe si tokeni.