quota-axi 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -24,6 +24,11 @@ It is data only: it never routes, recommends, proxies, intercepts, logs in, impo
24
24
 
25
25
  ## Quick Start
26
26
 
27
+ **macOS + Claude note:** Claude Code keeps its live token in the macOS Keychain.
28
+ quota-axi will not read that token unless the user grants permission, so Claude quota reads can stay stale until the user grants access after on-disk credentials expire.
29
+ Run `quota-axi --allow-keychain-prompt` once and approve Keychain access with "Always Allow".
30
+ After a successful Keychain read, future non-interactive quota reads use that existing grant and refresh live Claude data without requiring the flag.
31
+
27
32
  ```sh
28
33
  $ npx -y quota-axi
29
34
  bin: ~/.npm/_npx/.../quota-axi
@@ -52,7 +57,7 @@ help[3]:
52
57
  $ quota-axi --provider claude --json
53
58
  {
54
59
  "generatedAt": "2026-03-15T16:42:03.000Z",
55
- "schemaVersion": 1,
60
+ "schemaVersion": 2,
56
61
  "providers": [
57
62
  {
58
63
  "provider": "claude",
@@ -170,7 +175,7 @@ It is generated from `src/skill.ts`; update it with `pnpm run build:skill` and v
170
175
  ```
171
176
 
172
177
  - **Live first** - direct provider usage calls use 15 second request timeouts, Codex JSON-RPC reads use short per-call timeouts, and stale cache fallback is per provider.
173
- - **No default Keychain prompt** - macOS Claude Keychain reads are skipped unless `--allow-keychain-prompt` is passed.
178
+ - **No first-run Keychain prompt** - macOS Claude Keychain value reads are skipped on plain calls until `--allow-keychain-prompt` succeeds once, then future plain calls reuse that existing grant.
174
179
  - **Partial success is success** - one provider can fail while another returns fresh or stale data, and the process still exits 0. Exit code 1 means every provider failed, and 2 means a usage error.
175
180
  - **No token equivalence** - quota-axi does not claim that one provider percentage equals another provider percentage.
176
181
 
@@ -194,28 +199,35 @@ It is generated from `src/skill.ts`; update it with `pnpm run build:skill` and v
194
199
 
195
200
  ## Output Model
196
201
 
197
- `--json` emits `schemaVersion: 1`.
202
+ `--json` emits `schemaVersion: 2`.
198
203
  Quota reports contain `providers`, each with `provider`, `label`, `source`, `windows`, `state`, optional `plan`, and optional `credits`.
199
204
  With `--full`, providers can also include `account` identity and per-source `attempts`.
200
- Provider `state` includes `status`, `stale`, `sourcesTried`, optional `refreshedAt`, optional `error`, and optional `retryAfter`.
205
+ Provider `state` includes `status`, `stale`, `sourcesTried`, optional `refreshedAt`, optional `error`, optional `retryAfter`, optional `reason`, and optional `remedyCommand`.
206
+ When stale or unavailable quota is likely fixable by a one-time macOS Keychain grant, `state.reason` is `keychain_access_required`, `state.remedyCommand` is `quota-axi --allow-keychain-prompt`, and JSON includes an agent-directed `help` entry.
207
+ Default TOON output includes the same condition in an `advice` block with `provider`, `reason`, and `remedyCommand`, plus the agent-directed help line.
201
208
  Quota windows include `id`, `label`, `kind`, optional percentages, optional reset fields, optional `windowSeconds`, and optional credit-spend fields.
202
209
  Account identity and per-source `attempts` are omitted unless `--full` is passed.
203
210
  Provider statuses are `fresh`, `stale`, `unavailable`, `auth_required`, `rate_limited`, or `error`.
204
- Provider sources are `oauth`, `cli-rpc`, `api`, `web`, `cache`, or `unavailable`; v1 emits `oauth`, `cli-rpc`, `cache`, and `unavailable`.
211
+ Provider sources are `oauth`, `cli-rpc`, `api`, `web`, `cache`, or `unavailable`; current provider adapters emit `oauth`, `cli-rpc`, `cache`, and `unavailable`.
205
212
  Window kinds are `session`, `weekly`, `monthly`, `model`, `credits`, or `unknown`.
206
213
  Source attempts use `success`, `failed`, or `skipped`.
214
+ Source attempts can include `credentialPresent` when a non-secret probe confirms a credential item exists.
207
215
  Claude can report `five_hour`, `seven_day`, optional `seven_day_opus`, and optional `extra_usage` windows.
208
216
  When the account's usage response includes a scoped `limits` list, quota-axi surfaces every active window it describes instead, including model-scoped ones (e.g. Fable) as a `model:<slug>` window.
209
217
  Codex can report `five_hour` and `weekly` windows plus optional credit balance data, plus any additional model- or feature-scoped rate limits the account has as `model:<id>:5h` / `model:<id>:7d` windows, and an optional code-review rate limit as `code_review_five_hour` / `code_review_weekly`.
210
218
  `auth --json` emits `generatedAt`, `schemaVersion: 1`, and `auth`, where each provider report has `provider` and `sources`.
211
219
  Auth source entries include `source`, optional `path`, `status`, and optional `error`.
220
+ Auth source entries can include `credentialPresent` when a non-secret probe confirms a credential item exists.
212
221
  Auth source statuses are `available`, `missing`, `invalid`, `expired`, or `skipped`.
213
222
  Auth source names are `oauth-file`, `keychain`, `auth-json`, and `cli-rpc`.
214
223
 
215
224
  ## Security Posture
216
225
 
217
226
  quota-axi reads `~/.claude/.credentials.json` for Claude.
218
- On macOS, it reads `Claude Code-credentials` from Keychain only with `--allow-keychain-prompt`; when enabled, the Keychain credential is tried before file credentials.
227
+ On macOS, it reads the `Claude Code-credentials` Keychain value with `--allow-keychain-prompt` or, after a non-secret access marker exists, on plain calls.
228
+ quota-axi records that marker after any successful Keychain value read.
229
+ When that marker exists, plain calls read the Keychain value again so an already-approved "Always Allow" grant keeps live Claude quota fresh.
230
+ Without the flag or marker, quota-axi may perform a non-secret Keychain item presence check so it only suggests Keychain access when a Claude credential item exists.
219
231
  For Codex, it reads `$CODEX_HOME/auth.json` or `~/.codex/auth.json` before the read-only CLI fallback.
220
232
  Codex `auth.json` support is OAuth-token only; API key values such as `OPENAI_API_KEY` are treated as invalid for quota usage calls and are not sent to ChatGPT usage endpoints.
221
233
  It may run `codex -s read-only -a untrusted app-server` for Codex JSON-RPC fallback.
@@ -224,7 +236,8 @@ It never launches the Claude CLI, so it cannot accidentally spend the quota it m
224
236
  Direct HTTP requests go only to Anthropic and OpenAI first-party usage endpoints with the user's local credentials.
225
237
  It sends credential values only to the first-party provider request they authenticate.
226
238
  It never prints, logs, or caches credential values.
227
- The cache lives at `~/.cache/quota-axi/quotas.json` (or under `$XDG_CACHE_HOME/quota-axi/` when `XDG_CACHE_HOME` is set), uses `0600` file permissions, and stores normalized non-secret snapshots only.
239
+ The quota cache lives at `~/.cache/quota-axi/quotas.json` (or under `$XDG_CACHE_HOME/quota-axi/` when `XDG_CACHE_HOME` is set), uses `0600` file permissions, and stores normalized non-secret snapshots only.
240
+ The Claude Keychain access marker lives alongside it as `claude-keychain-access-granted`, uses `0600` file permissions, and contains no credential material.
228
241
  Only fresh provider snapshots with windows are cached.
229
242
  Failed providers, stale providers, account identity, and source attempts are not cached.
230
243
 
@@ -0,0 +1,5 @@
1
+ import type { QuotaAxiResponse } from "./types.js";
2
+ export declare const KEYCHAIN_ACCESS_REASON = "keychain_access_required";
3
+ export declare const KEYCHAIN_ACCESS_REMEDY_COMMAND = "quota-axi --allow-keychain-prompt";
4
+ export declare function annotateQuotaAdvice(response: Omit<QuotaAxiResponse, "schemaVersion">): QuotaAxiResponse;
5
+ export declare function quotaHelpLines(response: QuotaAxiResponse): string[];
@@ -0,0 +1,64 @@
1
+ export const KEYCHAIN_ACCESS_REASON = "keychain_access_required";
2
+ export const KEYCHAIN_ACCESS_REMEDY_COMMAND = "quota-axi --allow-keychain-prompt";
3
+ const BLOCKED_CREDENTIAL_ERRORS = new Set([
4
+ "credentials_expired",
5
+ "credentials_missing",
6
+ ]);
7
+ export function annotateQuotaAdvice(response) {
8
+ const providers = response.providers.map(annotateProviderAdvice);
9
+ const help = providers
10
+ .filter(hasKeychainAccessAdvice)
11
+ .map(keychainAccessHelpLine);
12
+ return {
13
+ generatedAt: response.generatedAt,
14
+ schemaVersion: 2,
15
+ providers,
16
+ ...(help.length > 0 ? { help } : {}),
17
+ };
18
+ }
19
+ export function quotaHelpLines(response) {
20
+ return [
21
+ ...(response.help ?? []),
22
+ "Run `quota-axi --provider claude --json` for JSON output",
23
+ "Run `quota-axi --full` to include account and source-attempt details",
24
+ "Run `quota-axi auth` to inspect local auth source availability without printing secrets",
25
+ ];
26
+ }
27
+ function annotateProviderAdvice(provider) {
28
+ if (!needsKeychainAccessAdvice(provider))
29
+ return provider;
30
+ return {
31
+ ...provider,
32
+ state: {
33
+ ...provider.state,
34
+ reason: KEYCHAIN_ACCESS_REASON,
35
+ remedyCommand: KEYCHAIN_ACCESS_REMEDY_COMMAND,
36
+ },
37
+ };
38
+ }
39
+ function needsKeychainAccessAdvice(provider) {
40
+ const attempts = provider.attempts ?? [];
41
+ return (provider.state.status !== "fresh" &&
42
+ !attempts.some((attempt) => attempt.status === "success") &&
43
+ attempts.some(isBlockedCredentialAttempt) &&
44
+ attempts.some(isPromptBlockedKeychainAttempt));
45
+ }
46
+ function isBlockedCredentialAttempt(attempt) {
47
+ return (attempt.source !== "keychain" &&
48
+ attempt.status === "skipped" &&
49
+ Boolean(attempt.error && BLOCKED_CREDENTIAL_ERRORS.has(attempt.error)));
50
+ }
51
+ function isPromptBlockedKeychainAttempt(attempt) {
52
+ return (attempt.source === "keychain" &&
53
+ attempt.status === "skipped" &&
54
+ attempt.error === "keychain_prompt_required" &&
55
+ attempt.credentialPresent === true);
56
+ }
57
+ function hasKeychainAccessAdvice(provider) {
58
+ return (provider.state.reason === KEYCHAIN_ACCESS_REASON &&
59
+ provider.state.remedyCommand === KEYCHAIN_ACCESS_REMEDY_COMMAND);
60
+ }
61
+ function keychainAccessHelpLine(provider) {
62
+ return `Tell your user: run \`${KEYCHAIN_ACCESS_REMEDY_COMMAND}\` once and approve Keychain access ("Always Allow") so quota-axi can read ${provider.provider}'s live quota.`;
63
+ }
64
+ //# sourceMappingURL=advice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advice.js","sourceRoot":"","sources":["../../src/advice.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AACjE,MAAM,CAAC,MAAM,8BAA8B,GACzC,mCAAmC,CAAC;AAEtC,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,qBAAqB;IACrB,qBAAqB;CACtB,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB,CACjC,QAAiD;IAEjD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,SAAS;SACnB,MAAM,CAAC,uBAAuB,CAAC;SAC/B,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAC/B,OAAO;QACL,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,aAAa,EAAE,CAAC;QAChB,SAAS;QACT,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAA0B;IACvD,OAAO;QACL,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;QACxB,0DAA0D;QAC1D,sEAAsE;QACtE,yFAAyF;KAC1F,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAuB;IACrD,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1D,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE;YACL,GAAG,QAAQ,CAAC,KAAK;YACjB,MAAM,EAAE,sBAAsB;YAC9B,aAAa,EAAE,8BAA8B;SAC9C;KACF,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAuB;IACxD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;IACzC,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO;QACjC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;QACzD,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAC9C,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAsB;IACxD,OAAO,CACL,OAAO,CAAC,MAAM,KAAK,UAAU;QAC7B,OAAO,CAAC,MAAM,KAAK,SAAS;QAC5B,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CACvE,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,OAAsB;IAC5D,OAAO,CACL,OAAO,CAAC,MAAM,KAAK,UAAU;QAC7B,OAAO,CAAC,MAAM,KAAK,SAAS;QAC5B,OAAO,CAAC,KAAK,KAAK,0BAA0B;QAC5C,OAAO,CAAC,iBAAiB,KAAK,IAAI,CACnC,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAuB;IACtD,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,sBAAsB;QAChD,QAAQ,CAAC,KAAK,CAAC,aAAa,KAAK,8BAA8B,CAChE,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAuB;IACrD,OAAO,yBAAyB,8BAA8B,8EAA8E,QAAQ,CAAC,QAAQ,gBAAgB,CAAC;AAChL,CAAC"}
package/dist/src/cli.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { existsSync, readFileSync } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
+ import { annotateQuotaAdvice } from "./advice.js";
4
5
  import { writeCachedProviders } from "./cache.js";
5
6
  import { nowIso } from "./lib/time.js";
6
7
  import { PROVIDERS, parseProviders } from "./providers/index.js";
@@ -115,11 +116,10 @@ export function parseArgs(argv) {
115
116
  }
116
117
  async function fetchQuota(providers, options) {
117
118
  const results = await Promise.all(providers.map((provider) => PROVIDERS[provider].fetchQuota(options)));
118
- return {
119
+ return annotateQuotaAdvice({
119
120
  generatedAt: nowIso(),
120
- schemaVersion: 1,
121
121
  providers: results,
122
- };
122
+ });
123
123
  }
124
124
  async function inspectAuth(providers, options) {
125
125
  return Promise.all(providers.map((provider) => PROVIDERS[provider].inspectAuth(options)));
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export type JsonFileReadResult = {
9
9
  };
10
10
  export declare function collapseHome(path: string): string;
11
11
  export declare function cacheFilePath(): string;
12
+ export declare function claudeKeychainAccessMarkerPath(): string;
12
13
  export declare function ensurePrivateParent(file: string): void;
13
14
  export declare function readJsonFile(file: string): unknown | undefined;
14
15
  export declare function readJsonFileResult(file: string): JsonFileReadResult;
@@ -34,8 +34,14 @@ function samePath(left, right) {
34
34
  return left === right;
35
35
  }
36
36
  export function cacheFilePath() {
37
+ return join(cacheDirPath(), "quotas.json");
38
+ }
39
+ export function claudeKeychainAccessMarkerPath() {
40
+ return join(cacheDirPath(), "claude-keychain-access-granted");
41
+ }
42
+ function cacheDirPath() {
37
43
  const base = process.env.XDG_CACHE_HOME || join(homedir(), ".cache");
38
- return join(base, "quota-axi", "quotas.json");
44
+ return join(base, "quota-axi");
39
45
  }
40
46
  export function ensurePrivateParent(file) {
41
47
  mkdirSync(dirname(file), { recursive: true, mode: 0o700 });
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/lib/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAOrE,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACxE,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,YAAY,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IACpC,IAAI,kBAAkB,CAAC,YAAY,CAAC;QAClC,OAAO,KAAK,qBAAqB,CAAC,YAAY,CAAC,EAAE,CAAC;IACpD,IAAI,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC;QAClC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IACzC,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,IAAY;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,CACL,SAAS,KAAK,SAAS;QACvB,CAAC,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,IAAI,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAC3C,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,KAAa;IAC3C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC9B,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;IACpD,OAAO,IAAI,KAAK,KAAK,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,QAAQ;YAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAChE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK;QACV,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,IAAI,KAAK;QACf,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,CAAC,CAAC,KAAK,CAAC,IAAI;QACZ,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/lib/fs.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
+ import { chmodSync, existsSync, renameSync, writeFileSync } from "node:fs";
1
2
  import { homedir } from "node:os";
2
3
  import { join } from "node:path";
3
4
  import { readCachedProvider } from "../cache.js";
4
- import { readJsonFileResult } from "../lib/fs.js";
5
+ import { claudeKeychainAccessMarkerPath, ensurePrivateParent, readJsonFileResult, } from "../lib/fs.js";
5
6
  import { execFileText } from "../lib/process.js";
6
7
  import { clampPercent, nowIso, retryAfterToIso } from "../lib/time.js";
7
8
  import { failedProvider, sourceNames, staleFromCache, statusFromError, successProvider, withRemaining, } from "./common.js";
@@ -10,6 +11,7 @@ const OAUTH_BETA = "oauth-2025-04-20";
10
11
  const CLAUDE_CODE_USER_AGENT = "claude-code/2.1.202";
11
12
  const API_TIMEOUT_MS = 15_000;
12
13
  const KEYCHAIN_PROMPT_TIMEOUT_MS = 60_000;
14
+ const KEYCHAIN_PRESENCE_TIMEOUT_MS = 5_000;
13
15
  const KEYCHAIN_ITEM_NOT_FOUND_EXIT_CODE = 44;
14
16
  const CREDENTIAL_FILE = join(homedir(), ".claude", ".credentials.json");
15
17
  const KEYCHAIN_SERVICE = "Claude Code-credentials";
@@ -40,11 +42,14 @@ export async function fetchQuota(options) {
40
42
  if (state.status === "available")
41
43
  continue;
42
44
  if (state.status === "skipped") {
43
- attempts.push({
45
+ const attempt = {
44
46
  source: state.source.source,
45
47
  status: "skipped",
46
48
  error: state.source.error,
47
- });
49
+ };
50
+ if (state.source.credentialPresent)
51
+ attempt.credentialPresent = true;
52
+ attempts.push(attempt);
48
53
  if (finalError === "Claude quota unavailable")
49
54
  finalError = state.source.error ?? finalError;
50
55
  continue;
@@ -215,22 +220,52 @@ async function readCredentialStates(options) {
215
220
  const fileState = extractCredentialState(readJsonFileResult(CREDENTIAL_FILE), "oauth-file", CREDENTIAL_FILE);
216
221
  states.push(fileState);
217
222
  if (process.platform === "darwin") {
218
- if (!options.allowKeychainPrompt) {
219
- states.push({
220
- status: "skipped",
221
- source: {
222
- source: "keychain",
223
- status: "skipped",
224
- error: "keychain_prompt_required",
225
- },
226
- });
223
+ if (options.allowKeychainPrompt || hasKeychainAccessMarker()) {
224
+ states.push(await readKeychainCredentialState());
227
225
  }
228
226
  else {
229
- states.push(await readKeychainCredentialState());
227
+ states.push(await readSkippedKeychainCredentialState());
230
228
  }
231
229
  }
232
230
  return states;
233
231
  }
232
+ async function readSkippedKeychainCredentialState() {
233
+ const presence = await readKeychainItemPresence();
234
+ if (presence === "present") {
235
+ return {
236
+ status: "skipped",
237
+ source: {
238
+ source: "keychain",
239
+ status: "skipped",
240
+ error: "keychain_prompt_required",
241
+ credentialPresent: true,
242
+ },
243
+ };
244
+ }
245
+ if (presence === "missing") {
246
+ return {
247
+ status: "missing",
248
+ source: { source: "keychain", status: "missing" },
249
+ };
250
+ }
251
+ return {
252
+ status: "skipped",
253
+ source: {
254
+ source: "keychain",
255
+ status: "skipped",
256
+ error: "keychain_presence_check_failed",
257
+ },
258
+ };
259
+ }
260
+ async function readKeychainItemPresence() {
261
+ try {
262
+ await execFileText("security", ["find-generic-password", "-s", KEYCHAIN_SERVICE], KEYCHAIN_PRESENCE_TIMEOUT_MS);
263
+ return "present";
264
+ }
265
+ catch (error) {
266
+ return isKeychainItemNotFound(error) ? "missing" : "unknown";
267
+ }
268
+ }
234
269
  async function readKeychainCredentialState() {
235
270
  let blob;
236
271
  try {
@@ -239,6 +274,7 @@ async function readKeychainCredentialState() {
239
274
  catch (error) {
240
275
  return keychainFailureState(error);
241
276
  }
277
+ writeKeychainAccessMarkerBestEffort();
242
278
  try {
243
279
  return extractCredentialState({ status: "success", value: JSON.parse(blob) }, "keychain");
244
280
  }
@@ -253,6 +289,27 @@ async function readKeychainCredentialState() {
253
289
  };
254
290
  }
255
291
  }
292
+ function hasKeychainAccessMarker() {
293
+ return existsSync(claudeKeychainAccessMarkerPath());
294
+ }
295
+ function writeKeychainAccessMarkerBestEffort() {
296
+ try {
297
+ const file = claudeKeychainAccessMarkerPath();
298
+ ensurePrivateParent(file);
299
+ const temp = `${file}.${process.pid}.tmp`;
300
+ writeFileSync(temp, "granted\n", { mode: 0o600 });
301
+ chmodSync(temp, 0o600);
302
+ renameSync(temp, file);
303
+ chmodSync(file, 0o600);
304
+ }
305
+ catch {
306
+ return;
307
+ }
308
+ }
309
+ function isKeychainItemNotFound(error) {
310
+ return (error.code ===
311
+ KEYCHAIN_ITEM_NOT_FOUND_EXIT_CODE);
312
+ }
256
313
  function keychainFailureState(error) {
257
314
  const failure = error;
258
315
  if (failure.killed || failure.signal) {
@@ -265,7 +322,7 @@ function keychainFailureState(error) {
265
322
  },
266
323
  };
267
324
  }
268
- if (failure.code === KEYCHAIN_ITEM_NOT_FOUND_EXIT_CODE) {
325
+ if (isKeychainItemNotFound(error)) {
269
326
  return {
270
327
  status: "missing",
271
328
  source: { source: "keychain", status: "missing" },
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/providers/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAA2B,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAUvE,OAAO,EACL,cAAc,EACd,WAAW,EACX,cAAc,EACd,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,MAAM,OAAO,GAAG,2CAA2C,CAAC;AAC5D,MAAM,UAAU,GAAG,kBAAkB,CAAC;AACtC,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AACrD,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9B,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAC1C,MAAM,iCAAiC,GAAG,EAAE,CAAC;AAC7C,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;AACxE,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AAgDnD,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC5C,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,UAAU;IACV,WAAW;CACZ,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAwB;IAExB,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,IAAI,UAAU,GAAG,0BAA0B,CAAC;IAC5C,IAAI,UAA8B,CAAC;IAEnC,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,gBAAgB;SACjC,MAAM,CACL,CAAC,KAAK,EAAqC,EAAE,CAC3C,KAAK,CAAC,MAAM,KAAK,WAAW,CAC/B;SACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;SACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;gBAAE,OAAO,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;gBAAE,OAAO,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEL,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW;YAAE,SAAS;QAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC;gBACZ,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;gBAC3B,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;aAC1B,CAAC,CAAC;YACH,IAAI,UAAU,KAAK,0BAA0B;gBAC3C,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC;YAChD,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;YAC3B,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,eAAe,KAAK,CAAC,MAAM,EAAE;SACrC,CAAC,CAAC;QACH,UAAU,GAAG,yBAAyB,CAAC;IACzC,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;gBAChD,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBACvE,OAAO,eAAe,CAAC;oBACrB,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,YAAY,EAAE,WAAW,CAAC,QAAQ,CAAC;oBACnC,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG;oBAC9B,MAAM,EAAE,OAAO;oBACf,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,OAAO;iBACf,CAAC;gBACF,UAAU,GAAG,OAAO,CAAC;gBACrB,IAAI,KAAK,YAAY,cAAc;oBAAE,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBACnE,IAAI,OAAO,KAAK,yBAAyB,EAAE,CAAC;oBAC1C,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,cAAc,CAAC;QACpB,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC;QACjE,KAAK,EAAE,UAAU;QACjB,UAAU;QACV,YAAY,EAAE,WAAW,CAAC,QAAQ,CAAC;QACnC,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAoB,EAAE;QACrD,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACjC,OAAO;gBACL,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM;gBAChC,IAAI,EACF,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,YAAY;oBACvC,CAAC,CAAC,eAAe;oBACjB,CAAC,CAAC,SAAS;gBACf,MAAM,EAAE,WAAW;aACpB,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,GAAY,EACZ,IAAa;IAEb,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,IAAI,GAAG,GAA8B,CAAC;IAE5C,2EAA2E;IAC3E,wEAAwE;IACxE,wEAAwE;IACxE,yEAAyE;IACzE,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,OAAO,GACX,aAAa,CAAC,MAAM,GAAG,CAAC;QACtB,CAAC,CAAC,aAAa;QACf,CAAC,CAAC;YACE,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;YAClE,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC;YAC9D,eAAe,CACb,IAAI,CAAC,cAAc,EACnB,gBAAgB,EAChB,WAAW,EACX,OAAO,CACR;SACF,CAAC,MAAM,CAAC,CAAC,MAAM,EAAyB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzD,IAAI,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAY;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,yBAAyB,CAAC,GAAY;IAC7C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,KAAK,GAAG,GAAuB,CAAC;IACtC,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9D,OAAO,aAAa,CAAC;YACnB,EAAE,EAAE,SAAS,QAAQ,EAAE;YACvB,KAAK,EAAE,GAAG,SAAS,OAAO;YAC1B,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC;YAClC,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,aAAa,CAAC;YACnB,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC;YAClC,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,aAAa,CAAC;YACnB,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC;YAClC,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,aAAa,CAAC;QACnB,EAAE,EAAE,IAAI,IAAI,OAAO;QACnB,KAAK,EAAE,IAAI,IAAI,OAAO;QACtB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC;QAClC,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,KAAK;SACT,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,OAAwB;IAExB,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,MAAM,SAAS,GAAG,sBAAsB,CACtC,kBAAkB,CAAC,eAAe,CAAC,EACnC,YAAY,EACZ,eAAe,CAChB,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEvB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE;oBACN,MAAM,EAAE,UAAU;oBAClB,MAAM,EAAE,SAAS;oBACjB,KAAK,EAAE,0BAA0B;iBAClC;aACF,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,MAAM,2BAA2B,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,2BAA2B;IACxC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,YAAY,CACvB,UAAU,EACV,CAAC,uBAAuB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,EACvD,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC;QACH,OAAO,sBAAsB,CAC3B,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAC9C,UAAU,CACX,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE;gBACN,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,kBAAkB;aAC1B;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,MAAM,OAAO,GAAG,KAIf,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACrC,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE;gBACN,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,yBAAyB;aACjC;SACF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,iCAAiC,EAAE,CAAC;QACvD,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE;SAClD,CAAC;IACJ,CAAC;IACD,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE;YACN,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,wBAAwB;SAChC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,GAAuB,EACvB,MAAmC,EACnC,IAAa;IAEb,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAC1B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;IAC5E,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAC1B,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE;SAC9D,CAAC;IACJ,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI;QACP,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;IAC5E,MAAM,KAAK,GACT,IAAI,CAAC,aAAa,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;QAC1D,CAAC,CAAE,IAAI,CAAC,aAAyC;QACjD,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,WAAW,GACf,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACpE,IAAI,CAAC,WAAW;QACd,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;IAC5E,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;QACpD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;IAC5E,MAAM,IAAI,GACR,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5E,OAAO;QACL,MAAM,EAAE,WAAW;QACnB,WAAW,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;KACtD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,WAA8B;IAM3D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,cAAc,CAAC,CAAC;IACnE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;YACpC,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,WAAW,CAAC,WAAW,EAAE;gBAClD,gBAAgB,EAAE,UAAU;gBAC5B,YAAY,EAAE,sBAAsB;gBACpC,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC3B;YACD,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QACH,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,uBAAuB,CACnC,MAAM,QAAQ,CAAC,IAAI,EAAE,EACrB,WAAW,CAAC,IAAI,CACjB,CAAC;QACF,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,4EAA4E;AAC5E,qCAAqC;AACrC,SAAS,2BAA2B,CAAC,QAAkB;IACrD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,cAAc,CACtB,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CACrD,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CACtB,GAAY,EACZ,EAAU,EACV,KAAa,EACb,IAAyB;IAEzB,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,IAAI,GAAG,GAAqB,CAAC;IACnC,MAAM,IAAI,GACR,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,aAAa,CAAC;QACnB,EAAE;QACF,KAAK;QACL,IAAI;QACJ,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC;QAC/B,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;KACpE,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAY;IACvC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,IAAI,GAAG,GAAuB,CAAC;IACrC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,aAAa,GACjB,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,gBAAgB,GAAG,EAAE,IAAI,aAAa,CAAC;IAC7C,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;QACnC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,gBAAgB;QACtC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;QACpC,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,gBAAgB;QACvC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,WAAW,GACf,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QAClC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;QAChC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,IAAI,QAAQ,GAAG,CAAC;YAClD,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC;YAC3C,CAAC,CAAC,SAAS,CAAC;IAClB,OAAO,aAAa,CAAC;QACnB,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,SAAS;QACf,WAAW;QACX,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QACvC,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AACnD,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;QACvD,OAAO,gCAAgC,CAAC;IAC1C,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;AAC7E,CAAC;AAED,MAAM,cAAe,SAAQ,KAAK;IACX;IAArB,YAAqB,UAA8B;QACjD,KAAK,CAAC,oCAAoC,CAAC,CAAC;QADzB,eAAU,GAAV,UAAU,CAAoB;IAEnD,CAAC;CACF"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/providers/claude.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { encode } from "@toon-format/toon";
2
+ import { quotaHelpLines } from "./advice.js";
2
3
  import { collapseHome } from "./lib/fs.js";
3
4
  export function renderHelp(lines) {
4
5
  return `help[${lines.length}]:\n${lines.map((line) => ` ${line}`).join("\n")}`;
@@ -28,6 +29,15 @@ export function renderQuotaToon(response, binPath, full) {
28
29
  encode({ providers }),
29
30
  encode({ windows }),
30
31
  ];
32
+ const advice = response.providers
33
+ .filter((provider) => provider.state.reason && provider.state.remedyCommand)
34
+ .map((provider) => ({
35
+ provider: provider.provider,
36
+ reason: provider.state.reason,
37
+ remedyCommand: provider.state.remedyCommand,
38
+ }));
39
+ if (advice.length > 0)
40
+ blocks.push(encode({ advice }));
31
41
  if (full) {
32
42
  const accounts = response.providers.map((provider) => ({
33
43
  provider: provider.provider,
@@ -39,11 +49,7 @@ export function renderQuotaToon(response, binPath, full) {
39
49
  blocks.push(encode({ accounts }));
40
50
  blocks.push(encode({ attempts }));
41
51
  }
42
- blocks.push(renderHelp([
43
- "Run `quota-axi --provider claude --json` for JSON output",
44
- "Run `quota-axi --full` to include account and source-attempt details",
45
- "Run `quota-axi auth` to inspect local auth source availability without printing secrets",
46
- ]));
52
+ blocks.push(renderHelp(quotaHelpLines(response)));
47
53
  return blocks.filter(Boolean).join("\n");
48
54
  }
49
55
  export function renderAuthToon(reports, binPath) {
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/render.ts"],"names":[],"mappings":"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"}
package/dist/src/skill.js CHANGED
@@ -60,8 +60,11 @@ or when comparing Claude and Codex headroom side by side.
60
60
  4. Pass \`--full\` to include account identity and per-source attempt details.
61
61
  5. Run \`npx -y quota-axi auth\` to check local auth-source availability without printing
62
62
  secret values.
63
- 6. On macOS, Claude Keychain reads are skipped by default; pass \`--allow-keychain-prompt\`
64
- to permit a Keychain prompt.
63
+ 6. On macOS, Claude Keychain value reads are skipped by default until the user grants access once.
64
+ If quota output reports \`reason: keychain_access_required\`, tell your user to run
65
+ \`quota-axi --allow-keychain-prompt\` once and approve Keychain access ("Always Allow").
66
+ After that successful grant, plain \`quota-axi\` calls reuse the existing Keychain access
67
+ marker to refresh live Claude quota without requiring the flag.
65
68
 
66
69
  ## Usage
67
70
 
@@ -77,8 +80,9 @@ ${TOP_HELP.trimEnd()}
77
80
  every provider failed; exit code 2 means a usage error.
78
81
  - Percentages are not comparable across providers - quota-axi never claims one provider's
79
82
  percentage equals another's.
80
- - The cache at \`~/.cache/quota-axi/quotas.json\` only ever holds normalized non-secret
81
- snapshots; nothing quota-axi prints or caches reveals credential values.
83
+ - The quota cache at \`~/.cache/quota-axi/quotas.json\` only ever holds normalized
84
+ non-secret snapshots.
85
+ The Claude Keychain access marker lives alongside it and contains no credential values.
82
86
  `;
83
87
  }
84
88
  //# sourceMappingURL=skill.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEjD,sFAAsF;AACtF,mFAAmF;AACnF,MAAM,CAAC,MAAM,iBAAiB,GAC5B,gFAAgF;IAChF,oFAAoF;IACpF,wFAAwF;IACxF,uFAAuF;IACvF,+DAA+D,CAAC;AAElE,MAAM,CAAC,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAErD,oEAAoE;AACpE,2EAA2E;AAC3E,yEAAyE;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9E,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;;eAEM,eAAe,CAAC,iBAAiB,CAAC;;UAEvC,YAAY;;;aAGT,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnB,eAAe;;;;;EAK7B,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BX,QAAQ,CAAC,OAAO,EAAE;;;;;;;;;;;;;CAanB,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEjD,sFAAsF;AACtF,mFAAmF;AACnF,MAAM,CAAC,MAAM,iBAAiB,GAC5B,gFAAgF;IAChF,oFAAoF;IACpF,wFAAwF;IACxF,uFAAuF;IACvF,+DAA+D,CAAC;AAElE,MAAM,CAAC,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAErD,oEAAoE;AACpE,2EAA2E;AAC3E,yEAAyE;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9E,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;;eAEM,eAAe,CAAC,iBAAiB,CAAC;;UAEvC,YAAY;;;aAGT,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnB,eAAe;;;;;EAK7B,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCX,QAAQ,CAAC,OAAO,EAAE;;;;;;;;;;;;;;CAcnB,CAAC;AACF,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export type ProviderId = "claude" | "codex";
2
2
  export type ProviderSource = "oauth" | "cli-rpc" | "api" | "web" | "cache" | "unavailable";
3
3
  export type ProviderStatus = "fresh" | "stale" | "unavailable" | "auth_required" | "rate_limited" | "error";
4
+ export type ProviderStateReason = "keychain_access_required";
4
5
  export type QuotaWindow = {
5
6
  id: string;
6
7
  label: string;
@@ -17,6 +18,7 @@ export type SourceAttempt = {
17
18
  source: string;
18
19
  status: "success" | "failed" | "skipped";
19
20
  error?: string;
21
+ credentialPresent?: boolean;
20
22
  };
21
23
  export type ProviderQuota = {
22
24
  provider: ProviderId;
@@ -40,14 +42,17 @@ export type ProviderQuota = {
40
42
  refreshedAt?: string;
41
43
  error?: string;
42
44
  retryAfter?: string;
45
+ reason?: ProviderStateReason;
46
+ remedyCommand?: string;
43
47
  sourcesTried: string[];
44
48
  };
45
49
  attempts?: SourceAttempt[];
46
50
  };
47
51
  export type QuotaAxiResponse = {
48
52
  generatedAt: string;
49
- schemaVersion: 1;
53
+ schemaVersion: 2;
50
54
  providers: ProviderQuota[];
55
+ help?: string[];
51
56
  };
52
57
  export type ProviderOptions = {
53
58
  allowKeychainPrompt: boolean;
@@ -63,6 +68,7 @@ export type AuthSourceReport = {
63
68
  path?: string;
64
69
  status: "available" | "missing" | "invalid" | "expired" | "skipped";
65
70
  error?: string;
71
+ credentialPresent?: boolean;
66
72
  };
67
73
  export type AuthProviderReport = {
68
74
  provider: ProviderId;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quota-axi",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "packageManager": "pnpm@11.1.1",
5
5
  "description": "AXI CLI that reports local agent-provider quota windows without routing or mutation",
6
6
  "type": "module",
@@ -34,8 +34,11 @@ or when comparing Claude and Codex headroom side by side.
34
34
  4. Pass `--full` to include account identity and per-source attempt details.
35
35
  5. Run `npx -y quota-axi auth` to check local auth-source availability without printing
36
36
  secret values.
37
- 6. On macOS, Claude Keychain reads are skipped by default; pass `--allow-keychain-prompt`
38
- to permit a Keychain prompt.
37
+ 6. On macOS, Claude Keychain value reads are skipped by default until the user grants access once.
38
+ If quota output reports `reason: keychain_access_required`, tell your user to run
39
+ `quota-axi --allow-keychain-prompt` once and approve Keychain access ("Always Allow").
40
+ After that successful grant, plain `quota-axi` calls reuse the existing Keychain access
41
+ marker to refresh live Claude quota without requiring the flag.
39
42
 
40
43
  ## Usage
41
44
 
@@ -61,5 +64,6 @@ examples:
61
64
  every provider failed; exit code 2 means a usage error.
62
65
  - Percentages are not comparable across providers - quota-axi never claims one provider's
63
66
  percentage equals another's.
64
- - The cache at `~/.cache/quota-axi/quotas.json` only ever holds normalized non-secret
65
- snapshots; nothing quota-axi prints or caches reveals credential values.
67
+ - The quota cache at `~/.cache/quota-axi/quotas.json` only ever holds normalized
68
+ non-secret snapshots.
69
+ The Claude Keychain access marker lives alongside it and contains no credential values.