@allixsenos/asu 0.7.0 → 0.8.0
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 +95 -74
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +16 -12
- package/dist/cli.js.map +1 -1
- package/dist/output.d.ts +6 -1
- package/dist/output.js +111 -1
- package/dist/output.js.map +1 -1
- package/docs/architecture.md +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,55 +2,47 @@
|
|
|
2
2
|
|
|
3
3
|
See how much of your coding-agent subscription you used, straight from the provider's account API.
|
|
4
4
|
|
|
5
|
-
ASU is a local TypeScript CLI for humans and agents. It finds supported installations and credentials, fetches usage from each provider concurrently, and prints a table, plain text, or versioned JSON. Each provider has its own adapter. A failed provider does not hide the results of the other providers.
|
|
5
|
+
ASU is a local TypeScript CLI for humans and agents. It finds supported installations and credentials, fetches usage from each provider concurrently, and prints bars, a table, plain text, or versioned JSON. Each provider has its own adapter. A failed provider does not hide the results of the other providers.
|
|
6
6
|
|
|
7
7
|
## What it looks like
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
npx --yes @allixsenos/asu
|
|
10
|
+
npx --yes @allixsenos/asu
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
```text
|
|
14
|
-
ASU 0.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
│ │ │ Completions │ 0% used │ 22d10h (Thu 1 Oct) │
|
|
37
|
-
│ │ │ │ 0 / 2,000 requests │ │
|
|
38
|
-
│ │ │ Premium Interactions │ 100% used │ 22d10h (Thu 1 Oct) │
|
|
39
|
-
│ │ │ │ 0 / 0 requests │ │
|
|
40
|
-
└──────────────────┴────────────────────┴───────────────────────┴───────────────────────┴────────────────────┘
|
|
41
|
-
Claude: fetched <1m ago; cache expires in 5m.
|
|
42
|
-
Codex: fetched <1m ago; cache expires in 5m.
|
|
43
|
-
GitHub Copilot: fetched <1m ago; cache expires in 5m.
|
|
14
|
+
ASU 0.7.0 · 2026-09-10T07:08:14.046Z
|
|
15
|
+
|
|
16
|
+
Claude · Max 20x · active · fresh
|
|
17
|
+
5 hours ━━━━━───────────────────────── 18% resets 2h 21m · 11:30
|
|
18
|
+
Weekly ━━━━━━━─────────────────────── 24% resets 4d 21h · Tue 15 Sep 07:00
|
|
19
|
+
Weekly · Fable ━━━━━───────────────────────── 18% resets 4d 21h · Tue 15 Sep 07:00
|
|
20
|
+
Extra usage Disabled
|
|
21
|
+
fetched <1m ago · cache expires in 5m
|
|
22
|
+
|
|
23
|
+
Codex · Plus · active · fresh
|
|
24
|
+
5 hours ────────────────────────────── 0% resets 4h 59m · 14:08
|
|
25
|
+
Weekly ────────────────────────────── 0% resets 6d 23h · Thu 17 Sep 09:08
|
|
26
|
+
Gpt Reserve · Weekly ────────────────────────────── 0% resets 6d 23h · Thu 17 Sep 09:08
|
|
27
|
+
Credits 0 credits left
|
|
28
|
+
Credits available No
|
|
29
|
+
fetched <1m ago · cache expires in 5m
|
|
30
|
+
|
|
31
|
+
GitHub Copilot · Individual · active · fresh
|
|
32
|
+
Chat ────────────────────────────── 0% resets 20d 16h · Thu 1 Oct 02:00 0 / 200 requests
|
|
33
|
+
Completions ────────────────────────────── 0% resets 20d 16h · Thu 1 Oct 02:00 0 / 2,000 requests
|
|
34
|
+
Premium Interactions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% resets 20d 16h · Thu 1 Oct 02:00 0 / 0 requests
|
|
35
|
+
fetched <1m ago · cache expires in 5m
|
|
44
36
|
```
|
|
45
37
|
|
|
46
|
-
This is a real run against the maintainer's accounts on 2026-09-
|
|
38
|
+
This is a real run against the maintainer's accounts on 2026-09-10. In a terminal the bars are green below 70 percent, yellow from 70, and red from 90. Reset times are relative to the moment of the run, with the local clock after the dot. Pass `--table` for the table view, `--utc` for full timestamps, `--plain` for log-friendly text, or `--json` for agents and scripts.
|
|
47
39
|
|
|
48
40
|
## Quick start
|
|
49
41
|
|
|
50
42
|
ASU needs **Node.js 22.13 or newer** and npm. Sign in through the provider's own CLI first.
|
|
51
43
|
|
|
52
44
|
```bash
|
|
53
|
-
npx --yes @allixsenos/asu
|
|
45
|
+
npx --yes @allixsenos/asu
|
|
54
46
|
```
|
|
55
47
|
|
|
56
48
|
This runs the newest release of [`@allixsenos/asu`](https://www.npmjs.com/package/@allixsenos/asu) from npm. No token is needed. Your provider credentials, which are separate, let ASU read usage.
|
|
@@ -84,7 +76,7 @@ This needs Git. The repository commits the built `dist/` directory, so the insta
|
|
|
84
76
|
|
|
85
77
|
## Real account output
|
|
86
78
|
|
|
87
|
-
We fetched the snapshot below on **2026-09-
|
|
79
|
+
We fetched the snapshot below on **2026-09-10 at 07:08 UTC** from the maintainer's authenticated Claude, Codex, and GitHub Copilot accounts on Linux. These are real provider-reported figures, not fixtures or estimates. They become stale as usage changes.
|
|
88
80
|
|
|
89
81
|
The capture used the local checkout:
|
|
90
82
|
|
|
@@ -92,31 +84,60 @@ The capture used the local checkout:
|
|
|
92
84
|
node dist/cli.js --provider claude,codex,copilot --fresh --no-cache --json
|
|
93
85
|
```
|
|
94
86
|
|
|
95
|
-
ASU's own renderers made the table and the plain text below from that same JSON snapshot with `--utc`, so all
|
|
87
|
+
ASU's own renderers made the bars, the table, and the plain text below from that same JSON snapshot with `--utc`, so all four examples show identical data. The examples include no credentials and no account identifiers. All reset times are UTC.
|
|
96
88
|
|
|
97
89
|
Without `--utc`, the table and the plain text show reset, fetch, and expiry times relative to now, for example `2h30m` or `45m`. A time a day or more away also names the local calendar day, for example `7d (Tue 15 Sep)`. A reset time that already passed shows as `now`. JSON always contains the full UTC timestamps.
|
|
98
90
|
|
|
91
|
+
### Bars
|
|
92
|
+
|
|
93
|
+
Use `--bars` for this view. It is the default in an interactive terminal. One bar per window, colored by severity in a terminal, with the countdown and the local clock after each bar. The bar shrinks in a narrow terminal, then the clock goes, and below that the default falls back to plain text.
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
ASU 0.7.0 · 2026-09-10T07:08:14.046Z
|
|
97
|
+
|
|
98
|
+
Claude · Max 20x · active · fresh
|
|
99
|
+
5 hours ━━━━━───────────────────────── 18% resets 2026-09-10T09:30:00.000Z
|
|
100
|
+
Weekly ━━━━━━━─────────────────────── 24% resets 2026-09-15T05:00:00.000Z
|
|
101
|
+
Weekly · Fable ━━━━━───────────────────────── 18% resets 2026-09-15T05:00:00.000Z
|
|
102
|
+
Extra usage Disabled
|
|
103
|
+
fetched 2026-09-10T07:08:13.944Z · cache expires 2026-09-10T07:13:13.944Z
|
|
104
|
+
|
|
105
|
+
Codex · Plus · active · fresh
|
|
106
|
+
5 hours ────────────────────────────── 0% resets 2026-09-10T12:08:13.000Z
|
|
107
|
+
Weekly ────────────────────────────── 0% resets 2026-09-17T07:08:13.000Z
|
|
108
|
+
Gpt Reserve · Weekly ────────────────────────────── 0% resets 2026-09-17T07:08:13.000Z
|
|
109
|
+
Credits 0 credits left
|
|
110
|
+
Credits available No
|
|
111
|
+
fetched 2026-09-10T07:08:14.004Z · cache expires 2026-09-10T07:13:14.004Z
|
|
112
|
+
|
|
113
|
+
GitHub Copilot · Individual · active · fresh
|
|
114
|
+
Chat ────────────────────────────── 0% resets 2026-10-01T00:00:00.000Z 0 / 200 requests
|
|
115
|
+
Completions ────────────────────────────── 0% resets 2026-10-01T00:00:00.000Z 0 / 2,000 requests
|
|
116
|
+
Premium Interactions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% resets 2026-10-01T00:00:00.000Z 0 / 0 requests
|
|
117
|
+
fetched 2026-09-10T07:08:14.045Z · cache expires 2026-09-10T07:13:14.045Z
|
|
118
|
+
```
|
|
119
|
+
|
|
99
120
|
### Pretty table
|
|
100
121
|
|
|
101
|
-
Use `--table` for this view.
|
|
122
|
+
Use `--table` for this view. When a cell would wrap, the default falls back to plain text. Pass `--table` to force the table.
|
|
102
123
|
|
|
103
124
|
```text
|
|
104
|
-
ASU 0.
|
|
125
|
+
ASU 0.7.0 · 2026-09-10T07:08:14.046Z
|
|
105
126
|
┌──────────────────┬────────────────────┬───────────────────────┬───────────────────────┬────────────────────┐
|
|
106
127
|
│ Provider │ Plan / status │ Window / balance │ Usage │ Resets (UTC) │
|
|
107
128
|
├──────────────────┼────────────────────┼───────────────────────┼───────────────────────┼────────────────────┤
|
|
108
|
-
│ Claude │ Max 20x │ 5 hours │
|
|
129
|
+
│ Claude │ Max 20x │ 5 hours │ 18% used │ 2026-09-10 09:30 │
|
|
109
130
|
│ │ active │ │ │ │
|
|
110
131
|
│ │ fresh │ │ │ │
|
|
111
|
-
│ │ │ Weekly │
|
|
112
|
-
│ │ │ Weekly · Fable │
|
|
132
|
+
│ │ │ Weekly │ 24% used │ 2026-09-15 05:00 │
|
|
133
|
+
│ │ │ Weekly · Fable │ 18% used │ 2026-09-15 05:00 │
|
|
113
134
|
│ │ │ Extra usage │ Disabled │ — │
|
|
114
135
|
├──────────────────┼────────────────────┼───────────────────────┼───────────────────────┼────────────────────┤
|
|
115
|
-
│ Codex │ Plus │ 5 hours │ 0% used │ 2026-09-
|
|
136
|
+
│ Codex │ Plus │ 5 hours │ 0% used │ 2026-09-10 12:08 │
|
|
116
137
|
│ │ active │ │ │ │
|
|
117
138
|
│ │ fresh │ │ │ │
|
|
118
|
-
│ │ │ Weekly │ 0% used │ 2026-09-
|
|
119
|
-
│ │ │ Gpt Reserve · Weekly │ 0% used │ 2026-09-
|
|
139
|
+
│ │ │ Weekly │ 0% used │ 2026-09-17 07:08 │
|
|
140
|
+
│ │ │ Gpt Reserve · Weekly │ 0% used │ 2026-09-17 07:08 │
|
|
120
141
|
│ │ │ Credits │ 0 credits left │ — │
|
|
121
142
|
│ │ │ Credits available │ No │ — │
|
|
122
143
|
├──────────────────┼────────────────────┼───────────────────────┼───────────────────────┼────────────────────┤
|
|
@@ -128,9 +149,9 @@ ASU 0.6.0 · 2026-09-08T13:41:25.567Z
|
|
|
128
149
|
│ │ │ Premium Interactions │ 100% used │ 2026-10-01 00:00 │
|
|
129
150
|
│ │ │ │ 0 / 0 requests │ │
|
|
130
151
|
└──────────────────┴────────────────────┴───────────────────────┴───────────────────────┴────────────────────┘
|
|
131
|
-
Claude: fetched 2026-09-
|
|
132
|
-
Codex: fetched 2026-09-
|
|
133
|
-
GitHub Copilot: fetched 2026-09-
|
|
152
|
+
Claude: fetched 2026-09-10T07:08:13.944Z; cache expires 2026-09-10T07:13:13.944Z.
|
|
153
|
+
Codex: fetched 2026-09-10T07:08:14.004Z; cache expires 2026-09-10T07:13:14.004Z.
|
|
154
|
+
GitHub Copilot: fetched 2026-09-10T07:08:14.045Z; cache expires 2026-09-10T07:13:14.045Z.
|
|
134
155
|
```
|
|
135
156
|
|
|
136
157
|
Read Copilot's premium row with care. The endpoint returned zero entitlement, zero remaining requests, and zero percent remaining. ASU therefore shows `100% used` next to `0 / 0 requests`. This does **not** show that anyone consumed a premium request. The internal endpoint can return legacy quota information. Treat its quantities as the provider's reported snapshot, not as a complete billing statement.
|
|
@@ -143,26 +164,26 @@ Use `--plain` for readable output in logs and pipes. It is the default when stdo
|
|
|
143
164
|
<summary>Show the complete plain-text output</summary>
|
|
144
165
|
|
|
145
166
|
```text
|
|
146
|
-
ASU 0.
|
|
167
|
+
ASU 0.7.0 · 2026-09-10T07:08:14.046Z
|
|
147
168
|
|
|
148
169
|
Claude (claude)
|
|
149
170
|
active
|
|
150
171
|
Plan: Max 20x
|
|
151
|
-
5 hours:
|
|
152
|
-
Weekly:
|
|
153
|
-
Weekly · Fable:
|
|
172
|
+
5 hours: 18% used; resets 2026-09-10T09:30:00.000Z
|
|
173
|
+
Weekly: 24% used; resets 2026-09-15T05:00:00.000Z
|
|
174
|
+
Weekly · Fable: 18% used; resets 2026-09-15T05:00:00.000Z
|
|
154
175
|
Extra usage: Disabled
|
|
155
|
-
Fetched 2026-09-
|
|
176
|
+
Fetched 2026-09-10T07:08:13.944Z; fresh; expires 2026-09-10T07:13:13.944Z
|
|
156
177
|
|
|
157
178
|
Codex (codex)
|
|
158
179
|
active
|
|
159
180
|
Plan: Plus
|
|
160
|
-
5 hours: 0% used; resets 2026-09-
|
|
161
|
-
Weekly: 0% used; resets 2026-09-
|
|
162
|
-
Gpt Reserve · Weekly: 0% used; resets 2026-09-
|
|
181
|
+
5 hours: 0% used; resets 2026-09-10T12:08:13.000Z
|
|
182
|
+
Weekly: 0% used; resets 2026-09-17T07:08:13.000Z
|
|
183
|
+
Gpt Reserve · Weekly: 0% used; resets 2026-09-17T07:08:13.000Z
|
|
163
184
|
Credits: 0 credits left
|
|
164
185
|
Credits available: No
|
|
165
|
-
Fetched 2026-09-
|
|
186
|
+
Fetched 2026-09-10T07:08:14.004Z; fresh; expires 2026-09-10T07:13:14.004Z
|
|
166
187
|
|
|
167
188
|
GitHub Copilot (copilot)
|
|
168
189
|
active
|
|
@@ -170,7 +191,7 @@ GitHub Copilot (copilot)
|
|
|
170
191
|
Chat: 0% used; 0 / 200 requests; resets 2026-10-01T00:00:00.000Z
|
|
171
192
|
Completions: 0% used; 0 / 2,000 requests; resets 2026-10-01T00:00:00.000Z
|
|
172
193
|
Premium Interactions: 100% used; 0 / 0 requests; resets 2026-10-01T00:00:00.000Z
|
|
173
|
-
Fetched 2026-09-
|
|
194
|
+
Fetched 2026-09-10T07:08:14.045Z; fresh; expires 2026-09-10T07:13:14.045Z
|
|
174
195
|
```
|
|
175
196
|
|
|
176
197
|
</details>
|
|
@@ -185,8 +206,8 @@ Use `--json` for agents and scripts. Stdout contains the report. An ASU invocati
|
|
|
185
206
|
```json
|
|
186
207
|
{
|
|
187
208
|
"schemaVersion": 1,
|
|
188
|
-
"asuVersion": "0.
|
|
189
|
-
"generatedAt": "2026-09-
|
|
209
|
+
"asuVersion": "0.7.0",
|
|
210
|
+
"generatedAt": "2026-09-10T07:08:14.046Z",
|
|
190
211
|
"warnings": [],
|
|
191
212
|
"providers": [
|
|
192
213
|
{
|
|
@@ -195,19 +216,19 @@ Use `--json` for agents and scripts. Stdout contains the report. An ASU invocati
|
|
|
195
216
|
{
|
|
196
217
|
"id": "five_hour",
|
|
197
218
|
"label": "5 hours",
|
|
198
|
-
"percentUsed":
|
|
199
|
-
"resetsAt": "2026-09-
|
|
219
|
+
"percentUsed": 18,
|
|
220
|
+
"resetsAt": "2026-09-10T09:30:00.000Z"
|
|
200
221
|
},
|
|
201
222
|
{
|
|
202
223
|
"id": "seven_day",
|
|
203
224
|
"label": "Weekly",
|
|
204
|
-
"percentUsed":
|
|
225
|
+
"percentUsed": 24,
|
|
205
226
|
"resetsAt": "2026-09-15T05:00:00.000Z"
|
|
206
227
|
},
|
|
207
228
|
{
|
|
208
229
|
"id": "weekly-model-fable",
|
|
209
230
|
"label": "Weekly · Fable",
|
|
210
|
-
"percentUsed":
|
|
231
|
+
"percentUsed": 18,
|
|
211
232
|
"resetsAt": "2026-09-15T05:00:00.000Z",
|
|
212
233
|
"scope": {
|
|
213
234
|
"model": "Fable"
|
|
@@ -229,8 +250,8 @@ Use `--json` for agents and scripts. Stdout contains the report. An ASU invocati
|
|
|
229
250
|
"authenticated": true,
|
|
230
251
|
"availability": "available",
|
|
231
252
|
"reason": null,
|
|
232
|
-
"fetchedAt": "2026-09-
|
|
233
|
-
"expiresAt": "2026-09-
|
|
253
|
+
"fetchedAt": "2026-09-10T07:08:13.944Z",
|
|
254
|
+
"expiresAt": "2026-09-10T07:13:13.944Z",
|
|
234
255
|
"cached": false
|
|
235
256
|
},
|
|
236
257
|
{
|
|
@@ -240,19 +261,19 @@ Use `--json` for agents and scripts. Stdout contains the report. An ASU invocati
|
|
|
240
261
|
"id": "usage-primary_window",
|
|
241
262
|
"label": "5 hours",
|
|
242
263
|
"percentUsed": 0,
|
|
243
|
-
"resetsAt": "2026-09-
|
|
264
|
+
"resetsAt": "2026-09-10T12:08:13.000Z"
|
|
244
265
|
},
|
|
245
266
|
{
|
|
246
267
|
"id": "usage-secondary_window",
|
|
247
268
|
"label": "Weekly",
|
|
248
269
|
"percentUsed": 0,
|
|
249
|
-
"resetsAt": "2026-09-
|
|
270
|
+
"resetsAt": "2026-09-17T07:08:13.000Z"
|
|
250
271
|
},
|
|
251
272
|
{
|
|
252
273
|
"id": "additional-0-gpt-reserve-primary_window",
|
|
253
274
|
"label": "Gpt Reserve · Weekly",
|
|
254
275
|
"percentUsed": 0,
|
|
255
|
-
"resetsAt": "2026-09-
|
|
276
|
+
"resetsAt": "2026-09-17T07:08:13.000Z"
|
|
256
277
|
}
|
|
257
278
|
],
|
|
258
279
|
"balances": [
|
|
@@ -278,8 +299,8 @@ Use `--json` for agents and scripts. Stdout contains the report. An ASU invocati
|
|
|
278
299
|
"authenticated": true,
|
|
279
300
|
"availability": "available",
|
|
280
301
|
"reason": null,
|
|
281
|
-
"fetchedAt": "2026-09-
|
|
282
|
-
"expiresAt": "2026-09-
|
|
302
|
+
"fetchedAt": "2026-09-10T07:08:14.004Z",
|
|
303
|
+
"expiresAt": "2026-09-10T07:13:14.004Z",
|
|
283
304
|
"cached": false
|
|
284
305
|
},
|
|
285
306
|
{
|
|
@@ -326,8 +347,8 @@ Use `--json` for agents and scripts. Stdout contains the report. An ASU invocati
|
|
|
326
347
|
"authenticated": true,
|
|
327
348
|
"availability": "available",
|
|
328
349
|
"reason": null,
|
|
329
|
-
"fetchedAt": "2026-09-
|
|
330
|
-
"expiresAt": "2026-09-
|
|
350
|
+
"fetchedAt": "2026-09-10T07:08:14.045Z",
|
|
351
|
+
"expiresAt": "2026-09-10T07:13:14.045Z",
|
|
331
352
|
"cached": false
|
|
332
353
|
}
|
|
333
354
|
]
|
|
@@ -346,8 +367,8 @@ When you run ASU through `npx`, put the ASU options after the package name.
|
|
|
346
367
|
|
|
347
368
|
| Option | Behavior |
|
|
348
369
|
| --- | --- |
|
|
349
|
-
| `--format plain\|table\|json` | Select one output format. Without it, a terminal gets the
|
|
350
|
-
| `--
|
|
370
|
+
| `--format plain\|table\|bars\|json` | Select one output format. Without it, a terminal gets the bars, or plain text when even the narrowest bar layout would wrap. A pipe gets plain text. |
|
|
371
|
+
| `--bars`, `--table`, `--plain`, `--json` | Shortcuts for `--format`. Use only one. |
|
|
351
372
|
| `--utc` | Print full UTC timestamps in table and plain output instead of times relative to now, such as `2h30m` or `7d (Tue 15 Sep)` |
|
|
352
373
|
| `claude codex` | Select providers by their bare names, in any position. `asu claude --plain` and `asu --plain claude` are the same. |
|
|
353
374
|
| `--provider claude,codex` | The same selection as a flag. Repeat the flag or separate the IDs with commas. |
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
export declare const help = "asu \u2014 agent subscription usage\n\nUsage: asu [usage] [provider...] [options]\n\n asu Every detected provider\n asu claude One provider, by its bare name\n asu claude codex --plain Several providers, with options anywhere\n\n --format plain|table|json
|
|
2
|
+
export declare const help = "asu \u2014 agent subscription usage\n\nUsage: asu [usage] [provider...] [options]\n\n asu Every detected provider\n asu claude One provider, by its bare name\n asu claude codex --plain Several providers, with options anywhere\n\n --format plain|table|bars|json\n Output format (bars in a terminal, plain when piped or when a line would wrap)\n --bars Shortcut for --format bars: one bar per window, colored in a terminal\n --table Shortcut for --format table\n --plain Shortcut for --format plain\n --json Shortcut for --format json\n --utc Print full UTC timestamps instead of times relative to now\n --provider <id> Select provider; same as a bare name, repeat or use comma-separated IDs\n --all Include providers with no detected install or credentials\n --fresh Fetch again, bypassing the five-minute cache\n --no-cache Do not read or write the persistent cache\n --cache-dir <path> Override the private usage cache directory\n --plugin <path-or-package> Load a trusted provider plugin; repeatable\n --help, -h Show this help\n --version, -v Show version\n\nProviders: claude, codex, copilot, cursor, zai, grok, kimi, minimax\nCredentials are read-only. Sign in and refresh tokens through the provider CLI.\nJSON has schemaVersion: 1. Diagnostics go to stderr; stdout contains only the report.\nExit codes: 0 at least one available provider; 1 none available; 2 invocation error.\n";
|
|
3
3
|
export declare function run(args?: string[]): Promise<number>;
|
package/dist/cli.js
CHANGED
|
@@ -7,7 +7,7 @@ import { UsageCache } from './cache.js';
|
|
|
7
7
|
import { createLocalContext, homePath } from './local.js';
|
|
8
8
|
import { loadProviders } from './registry.js';
|
|
9
9
|
import { UsageService } from './service.js';
|
|
10
|
-
import { render, tableWraps } from './output.js';
|
|
10
|
+
import { barsOverflow, render, tableWraps } from './output.js';
|
|
11
11
|
import { version } from './version.js';
|
|
12
12
|
export const help = `asu — agent subscription usage
|
|
13
13
|
|
|
@@ -17,10 +17,12 @@ Usage: asu [usage] [provider...] [options]
|
|
|
17
17
|
asu claude One provider, by its bare name
|
|
18
18
|
asu claude codex --plain Several providers, with options anywhere
|
|
19
19
|
|
|
20
|
-
--format plain|table|json
|
|
21
|
-
|
|
22
|
-
--
|
|
20
|
+
--format plain|table|bars|json
|
|
21
|
+
Output format (bars in a terminal, plain when piped or when a line would wrap)
|
|
22
|
+
--bars Shortcut for --format bars: one bar per window, colored in a terminal
|
|
23
23
|
--table Shortcut for --format table
|
|
24
|
+
--plain Shortcut for --format plain
|
|
25
|
+
--json Shortcut for --format json
|
|
24
26
|
--utc Print full UTC timestamps instead of times relative to now
|
|
25
27
|
--provider <id> Select provider; same as a bare name, repeat or use comma-separated IDs
|
|
26
28
|
--all Include providers with no detected install or credentials
|
|
@@ -37,10 +39,10 @@ JSON has schemaVersion: 1. Diagnostics go to stderr; stdout contains only the re
|
|
|
37
39
|
Exit codes: 0 at least one available provider; 1 none available; 2 invocation error.
|
|
38
40
|
`;
|
|
39
41
|
export async function run(args = process.argv.slice(2)) {
|
|
40
|
-
let format = process.stdout.isTTY ? '
|
|
42
|
+
let format = process.stdout.isTTY ? 'bars' : 'plain';
|
|
41
43
|
try {
|
|
42
44
|
const { values, positionals } = parseArgs({ args, allowPositionals: true, strict: true, options: {
|
|
43
|
-
format: { type: 'string' }, json: { type: 'boolean' }, plain: { type: 'boolean' }, table: { type: 'boolean' }, utc: { type: 'boolean' },
|
|
45
|
+
format: { type: 'string' }, json: { type: 'boolean' }, plain: { type: 'boolean' }, table: { type: 'boolean' }, bars: { type: 'boolean' }, utc: { type: 'boolean' },
|
|
44
46
|
provider: { type: 'string', multiple: true }, all: { type: 'boolean' }, fresh: { type: 'boolean' },
|
|
45
47
|
'no-cache': { type: 'boolean' }, 'cache-dir': { type: 'string' }, plugin: { type: 'string', multiple: true },
|
|
46
48
|
help: { type: 'boolean', short: 'h' }, version: { type: 'boolean', short: 'v' },
|
|
@@ -55,9 +57,9 @@ export async function run(args = process.argv.slice(2)) {
|
|
|
55
57
|
}
|
|
56
58
|
// Bare words are provider names. A leading "usage" stays accepted for compatibility.
|
|
57
59
|
const names = positionals[0] === 'usage' ? positionals.slice(1) : positionals;
|
|
58
|
-
const formats = [values.format, values.json ? 'json' : undefined, values.plain ? 'plain' : undefined, values.table ? 'table' : undefined].filter(Boolean);
|
|
59
|
-
if (formats.length > 1 || formats.some(value => !['plain', 'table', 'json'].includes(value)))
|
|
60
|
-
throw new Error('Choose one output format: plain, table, or json.');
|
|
60
|
+
const formats = [values.format, values.json ? 'json' : undefined, values.plain ? 'plain' : undefined, values.table ? 'table' : undefined, values.bars ? 'bars' : undefined].filter(Boolean);
|
|
61
|
+
if (formats.length > 1 || formats.some(value => !['plain', 'table', 'bars', 'json'].includes(value)))
|
|
62
|
+
throw new Error('Choose one output format: plain, table, bars, or json.');
|
|
61
63
|
const explicit = formats.length > 0;
|
|
62
64
|
format = formats[0] ?? format;
|
|
63
65
|
const providers = await loadProviders(values.plugin);
|
|
@@ -72,16 +74,18 @@ export async function run(args = process.argv.slice(2)) {
|
|
|
72
74
|
const report = await service.collect({ providerIds, fresh: values.fresh });
|
|
73
75
|
if (!values.all && !providerIds?.length)
|
|
74
76
|
report.providers = report.providers.filter(provider => provider.installed || provider.credentialsPresent || provider.reason?.code !== 'missing_credentials');
|
|
75
|
-
const options = { columns: process.stdout.columns, utc: values.utc };
|
|
76
|
-
// A
|
|
77
|
+
const options = { columns: process.stdout.columns, utc: values.utc, color: Boolean(process.stdout.isTTY && !process.env.NO_COLOR) };
|
|
78
|
+
// A view that must wrap in a narrow terminal is harder to read than plain text.
|
|
77
79
|
if (format === 'table' && !explicit && tableWraps(report, options))
|
|
78
80
|
format = 'plain';
|
|
81
|
+
if (format === 'bars' && !explicit && barsOverflow(report, options))
|
|
82
|
+
format = 'plain';
|
|
79
83
|
process.stdout.write(render(report, format, options));
|
|
80
84
|
return report.providers.some(provider => provider.availability === 'available') ? 0 : 1;
|
|
81
85
|
}
|
|
82
86
|
catch (error) {
|
|
83
87
|
// All errors exposed here are ours; do not print plugin/import/runtime exception messages.
|
|
84
|
-
const messages = ['Choose one output format: plain, table, or json.',
|
|
88
|
+
const messages = ['Choose one output format: plain, table, bars, or json.',
|
|
85
89
|
'Unknown provider ID. See --help for built-ins.', 'Could not load a provider plugin. Check its path, exports, and unique provider ID.'];
|
|
86
90
|
const message = error instanceof Error && messages.includes(error.message) ? error.message : 'Could not run ASU. Check arguments and plugin configuration; see --help.';
|
|
87
91
|
process.stderr.write(`asu: ${message}\n`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/output.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { UsageReport } from './models.js';
|
|
2
|
-
export type OutputFormat = 'plain' | 'table' | 'json';
|
|
2
|
+
export type OutputFormat = 'plain' | 'table' | 'bars' | 'json';
|
|
3
3
|
export interface RenderOptions {
|
|
4
4
|
columns?: number;
|
|
5
|
+
/** Emit ANSI colors in the bars view. The CLI turns this on for a terminal without NO_COLOR. */
|
|
6
|
+
color?: boolean;
|
|
5
7
|
/** Print full UTC timestamps instead of times relative to now. */
|
|
6
8
|
utc?: boolean;
|
|
7
9
|
now?: number;
|
|
@@ -10,4 +12,7 @@ export declare function renderPlain(report: UsageReport, options?: RenderOptions
|
|
|
10
12
|
export declare function renderTable(report: UsageReport, options?: RenderOptions): string;
|
|
11
13
|
/** True when a cell would wrap at this width. The CLI then prefers plain output unless the table was requested. */
|
|
12
14
|
export declare function tableWraps(report: UsageReport, options?: RenderOptions): boolean;
|
|
15
|
+
export declare function renderBars(report: UsageReport, options?: RenderOptions): string;
|
|
16
|
+
/** True when even the narrowest bar layout exceeds the width. The CLI then prefers plain output unless bars were requested. */
|
|
17
|
+
export declare function barsOverflow(report: UsageReport, options?: RenderOptions): boolean;
|
|
13
18
|
export declare function render(report: UsageReport, format: OutputFormat, options?: RenderOptions): string;
|
package/dist/output.js
CHANGED
|
@@ -187,7 +187,117 @@ export function renderTable(report, options = {}) {
|
|
|
187
187
|
export function tableWraps(report, options = {}) {
|
|
188
188
|
return buildTable(report, options).wrapped;
|
|
189
189
|
}
|
|
190
|
+
// Bars: one bar per window, after ccswap's dashboard card. `5 hours ━━━╸─── 12% resets 2h 17m · 11:30`
|
|
191
|
+
const BAR_WIDTH = 30;
|
|
192
|
+
const sgr = (options, code, text) => options.color && text ? `\u001b[${code}m${text}\u001b[0m` : text;
|
|
193
|
+
const severity = (pct) => pct >= 90 ? '31' : pct >= 70 ? '33' : '32';
|
|
194
|
+
/** ccswap's countdown style, with a space between units: "45s", "12m", "2h 13m", "3d 4h". */
|
|
195
|
+
function spaced(ms) {
|
|
196
|
+
const s = Math.max(0, Math.floor(ms / 1000));
|
|
197
|
+
if (s < 60)
|
|
198
|
+
return `${s}s`;
|
|
199
|
+
if (s < 3600)
|
|
200
|
+
return `${Math.floor(s / 60)}m`;
|
|
201
|
+
if (s < 86_400) {
|
|
202
|
+
const h = Math.floor(s / 3600), m = Math.floor(s % 3600 / 60);
|
|
203
|
+
return m ? `${h}h ${m}m` : `${h}h`;
|
|
204
|
+
}
|
|
205
|
+
const d = Math.floor(s / 86_400), h = Math.floor(s % 86_400 / 3600);
|
|
206
|
+
return h ? `${d}d ${h}h` : `${d}d`;
|
|
207
|
+
}
|
|
208
|
+
const clockParts = new Intl.DateTimeFormat('en-US', { hour: '2-digit', minute: '2-digit', hourCycle: 'h23' });
|
|
209
|
+
/** Local clock: "11:30" on the same day, otherwise "Tue 15 Sep 07:00". */
|
|
210
|
+
function clock(at, now) {
|
|
211
|
+
const part = (type) => clockParts.formatToParts(at).find(item => item.type === type)?.value ?? '';
|
|
212
|
+
const time = `${part('hour')}:${part('minute')}`;
|
|
213
|
+
return new Date(at).toDateString() === new Date(now).toDateString() ? time : `${dayLabel.format(at)} ${time}`;
|
|
214
|
+
}
|
|
215
|
+
function resetSuffix(iso, options, layout) {
|
|
216
|
+
if (iso === null)
|
|
217
|
+
return '';
|
|
218
|
+
if (options.utc)
|
|
219
|
+
return `resets ${iso}`;
|
|
220
|
+
const now = options.now ?? Date.now(), at = Date.parse(iso), diff = at - now;
|
|
221
|
+
if (diff <= 0)
|
|
222
|
+
return 'resets now';
|
|
223
|
+
return layout.clock ? `resets ${spaced(diff)} · ${clock(at, now)}` : `resets ${spaced(diff)}`;
|
|
224
|
+
}
|
|
225
|
+
function bar(pct, options, layout) {
|
|
226
|
+
const width = layout.barWidth;
|
|
227
|
+
if (pct === null)
|
|
228
|
+
return sgr(options, '2', '─'.repeat(width));
|
|
229
|
+
const cells = Math.min(Math.max(pct, 0), 100) / 100 * width;
|
|
230
|
+
const full = Math.floor(cells), half = cells - full >= 0.5 && full < width;
|
|
231
|
+
return sgr(options, severity(pct), '━'.repeat(full) + (half ? '╸' : '')) + sgr(options, '2', '─'.repeat(width - full - (half ? 1 : 0)));
|
|
232
|
+
}
|
|
233
|
+
function quantity(window) {
|
|
234
|
+
const unit = window.unit ? ` ${window.unit}` : '';
|
|
235
|
+
if (window.used !== undefined)
|
|
236
|
+
return `${amount(window.used)}${window.limit === undefined ? '' : ` / ${amount(window.limit)}`}${unit}`;
|
|
237
|
+
return window.limit === undefined ? '' : `limit ${amount(window.limit)}${unit}`;
|
|
238
|
+
}
|
|
239
|
+
function buildBarLines(report, options, layout) {
|
|
240
|
+
const lines = [`ASU ${report.asuVersion} · ${report.generatedAt}`];
|
|
241
|
+
for (const provider of report.providers) {
|
|
242
|
+
const freshness = provider.availability === 'available' ? (provider.cached ? 'cached' : 'fresh') : null;
|
|
243
|
+
lines.push('', sgr(options, '1', [provider.displayName + (provider.experimental ? ' [experimental]' : ''), provider.planLabel, status(provider), freshness]
|
|
244
|
+
.filter(Boolean).join(' · ')));
|
|
245
|
+
const labels = [...provider.windows, ...provider.balances, ...provider.details].map(item => item.label);
|
|
246
|
+
const labelWidth = Math.max(0, ...labels.map(textWidth));
|
|
247
|
+
const cell = (label) => sgr(options, '2', label + ' '.repeat(labelWidth - textWidth(label)));
|
|
248
|
+
for (const window of provider.windows) {
|
|
249
|
+
const parts = [` ${cell(window.label)} ${bar(window.unlimited ? null : window.percentUsed, options, layout)}`];
|
|
250
|
+
if (window.unlimited)
|
|
251
|
+
parts.push(sgr(options, '2', 'unlimited'));
|
|
252
|
+
else if (window.percentUsed === null)
|
|
253
|
+
parts.push(sgr(options, '2', 'usage unknown'));
|
|
254
|
+
else
|
|
255
|
+
parts.push(sgr(options, severity(window.percentUsed), `${amount(window.percentUsed).padStart(3)}%`));
|
|
256
|
+
for (const extra of [resetSuffix(window.resetsAt, options, layout), quantity(window)])
|
|
257
|
+
if (extra)
|
|
258
|
+
parts.push(sgr(options, '2', extra));
|
|
259
|
+
lines.push(parts.join(' '));
|
|
260
|
+
}
|
|
261
|
+
for (const balance of provider.balances)
|
|
262
|
+
lines.push(` ${cell(balance.label)} ${balanceValue(balance)}`);
|
|
263
|
+
for (const detail of provider.details)
|
|
264
|
+
lines.push(` ${cell(detail.label)} ${detailValue(detail.value, options)}`);
|
|
265
|
+
if (provider.reason)
|
|
266
|
+
lines.push(` ${provider.reason.code}: ${provider.reason.message}`);
|
|
267
|
+
lines.push(sgr(options, '2', ` fetched ${ago(provider.fetchedAt, options)} · cache expires ${ahead(provider.expiresAt, options)}`));
|
|
268
|
+
}
|
|
269
|
+
if (!report.providers.length)
|
|
270
|
+
lines.push('', 'No supported agents or credentials detected. Use --all to list every provider.');
|
|
271
|
+
for (const warning of report.warnings)
|
|
272
|
+
lines.push('', `Warning: ${warning}`);
|
|
273
|
+
return lines;
|
|
274
|
+
}
|
|
275
|
+
/** Fit the view to the width like ccswap does: shrink the bar to 12 cells first, then drop the clock. */
|
|
276
|
+
function buildBars(report, options) {
|
|
277
|
+
const columns = options.columns ?? 110;
|
|
278
|
+
const widest = (layout) => Math.max(0, ...buildBarLines(report, { ...options, color: false }, layout).map(textWidth));
|
|
279
|
+
let layout = { barWidth: BAR_WIDTH, clock: true };
|
|
280
|
+
const excess = widest(layout) - columns;
|
|
281
|
+
if (excess > 0)
|
|
282
|
+
layout = { barWidth: Math.max(12, BAR_WIDTH - excess), clock: true };
|
|
283
|
+
if (widest(layout) > columns)
|
|
284
|
+
layout = { barWidth: 12, clock: false };
|
|
285
|
+
return { lines: buildBarLines(report, options, layout), overflow: widest(layout) > columns };
|
|
286
|
+
}
|
|
287
|
+
export function renderBars(report, options = {}) {
|
|
288
|
+
return buildBars(report, options).lines.join('\n') + '\n';
|
|
289
|
+
}
|
|
290
|
+
/** True when even the narrowest bar layout exceeds the width. The CLI then prefers plain output unless bars were requested. */
|
|
291
|
+
export function barsOverflow(report, options = {}) {
|
|
292
|
+
return buildBars(report, options).overflow;
|
|
293
|
+
}
|
|
190
294
|
export function render(report, format, options = {}) {
|
|
191
|
-
|
|
295
|
+
if (format === 'json')
|
|
296
|
+
return JSON.stringify(report, null, 2) + '\n';
|
|
297
|
+
if (format === 'table')
|
|
298
|
+
return renderTable(report, options);
|
|
299
|
+
if (format === 'bars')
|
|
300
|
+
return renderBars(report, options);
|
|
301
|
+
return renderPlain(report, options);
|
|
192
302
|
}
|
|
193
303
|
//# sourceMappingURL=output.js.map
|
package/dist/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
package/docs/architecture.md
CHANGED
|
@@ -11,7 +11,7 @@ Read-only credential lookup Five-minute memory/disk cache + process locks
|
|
|
11
11
|
↓ ↓
|
|
12
12
|
Provider usage API → adapter normalization → schema validation + redaction
|
|
13
13
|
↓
|
|
14
|
-
Versioned report → plain text / table / JSON
|
|
14
|
+
Versioned report → plain text / table / bars / JSON
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
The package exports a library API and the `asu` executable. It contains no frontend and no daemon. The provider ID and version identify an adapter. The credentials are part of the cache key, so two accounts never share a cached result by accident.
|