mochiapi-statusline 0.1.1 â 0.1.2
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/LICENSE +20 -20
- package/README.md +175 -385
- package/dist/ccstatusline.js +42 -7
- package/package.json +72 -74
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Matthew Breedlove (https://github.com/sirmalloc)
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Matthew Breedlove (https://github.com/sirmalloc)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
21
|
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,385 +1,175 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
-
|
|
97
|
-
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
-
|
|
169
|
-
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
### v2.0.7 - Current Working Directory & Session Cost
|
|
178
|
-
|
|
179
|
-

|
|
180
|
-
|
|
181
|
-
- **đ Current Working Directory** - Display the current working directory with configurable segment display
|
|
182
|
-
- Set the number of path segments to show (e.g., show only last 2 segments: `.../Personal/ccstatusline`)
|
|
183
|
-
- Supports raw value mode for compact display
|
|
184
|
-
- Automatically truncates long paths with ellipsis
|
|
185
|
-
- **đ° Session Cost Widget** - Track your Claude Code session costs (requires Claude Code 1.0.85+)
|
|
186
|
-
- Displays total session cost in USD
|
|
187
|
-
- Supports raw value mode (shows just `$X.YZ` vs `Cost: $X.YZ`)
|
|
188
|
-
- Real-time cost tracking from Claude Code session data
|
|
189
|
-
- Note: Cost may not update properly when using `/resume` (Claude Code limitation)
|
|
190
|
-
- **đ Bug Fixes**
|
|
191
|
-
- Fixed Block Timer calculations for accurate time tracking across block boundaries
|
|
192
|
-
- Improved widget editor stability with proper Ctrl+S handling
|
|
193
|
-
- Enhanced cursor display in numeric input fields
|
|
194
|
-
|
|
195
|
-
### v2.0.2 - Block Timer Widget
|
|
196
|
-
|
|
197
|
-

|
|
198
|
-
|
|
199
|
-
- **â±ïž Block Timer** - Track your progress through 5-hour Claude Code blocks
|
|
200
|
-
- Displays time elapsed in current block as hours/minutes (e.g., "3hr 45m")
|
|
201
|
-
- Progress bar mode shows visual completion percentage
|
|
202
|
-
- Two progress bar styles: full width (32 chars) or compact (16 chars)
|
|
203
|
-
- Automatically detects block boundaries from transcript timestamps
|
|
204
|
-
|
|
205
|
-
### v2.0.0 - Powerline Support & Enhanced Themes
|
|
206
|
-
- **⥠Powerline Mode** - Beautiful Powerline-style status lines with arrow separators and customizable caps
|
|
207
|
-
- **đš Built-in Themes** - Multiple pre-configured themes that you can copy and customize
|
|
208
|
-
- **đ Advanced Color Support** - Basic (16), 256-color (with custom ANSI codes), and truecolor (with hex codes) modes
|
|
209
|
-
- **đ Widget Merging** - Merge multiple widgets together with or without padding for seamless designs
|
|
210
|
-
- **đŠ Easy Installation** - Install directly with `npx` or `bunx` - no global package needed
|
|
211
|
-
- **đ€ Custom Separators** - Add multiple Powerline separators with custom hex codes for font support
|
|
212
|
-
- **đ Auto Font Install** - Automatic Powerline font installation with user consent
|
|
213
|
-
|
|
214
|
-
</details>
|
|
215
|
-
|
|
216
|
-
<br />
|
|
217
|
-
|
|
218
|
-
## âš Features
|
|
219
|
-
|
|
220
|
-
- **đ Real-time Metrics** - Display model name, git branch, token usage, per-model weekly usage, voice input state, session duration, compaction count, block timer, and more
|
|
221
|
-
- **đš Fully Customizable** - Choose what to display and customize colors for each element
|
|
222
|
-
- **⥠Powerline Support** - Beautiful Powerline-style rendering with arrow separators, caps, and custom fonts
|
|
223
|
-
- **đ Multi-line Support** - Configure multiple independent status lines
|
|
224
|
-
- **đ„ïž Interactive TUI** - Built-in configuration interface using React/Ink
|
|
225
|
-
- **đ Fast Widget Picker** - Add/change widgets by category with search and ranked matching
|
|
226
|
-
- **âïž Global Options** - Apply consistent formatting across all widgets (padding, separators, bold, minimalist mode, and color overrides)
|
|
227
|
-
- **đ Cross-platform** - Works seamlessly with both Bun and Node.js
|
|
228
|
-
- **đ§ Flexible Configuration** - Supports custom Claude Code config directory via `CLAUDE_CONFIG_DIR` environment variable
|
|
229
|
-
- **đ Smart Width Detection** - Automatically adapts to terminal width with flex separators
|
|
230
|
-
- **⥠Zero Config** - Sensible defaults that work out of the box
|
|
231
|
-
|
|
232
|
-
<br />
|
|
233
|
-
|
|
234
|
-
## đ Localizations
|
|
235
|
-
|
|
236
|
-
The localizations in this section are third-party forks maintained outside this repository. They are not maintained, reviewed, or endorsed by this repository, so review their code and releases before using them.
|
|
237
|
-
|
|
238
|
-
- đ **äžæç (Chinese):** [ccstatusline-zh](https://github.com/huangguang1999/ccstatusline-zh)
|
|
239
|
-
|
|
240
|
-
<br />
|
|
241
|
-
|
|
242
|
-
## đ Quick Start
|
|
243
|
-
|
|
244
|
-
### No installation needed! Use directly with npx or bunx:
|
|
245
|
-
|
|
246
|
-
```bash
|
|
247
|
-
# Run the configuration TUI with npm
|
|
248
|
-
npx -y ccstatusline@latest
|
|
249
|
-
|
|
250
|
-
# Or with Bun (faster)
|
|
251
|
-
bunx -y ccstatusline@latest
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
<br />
|
|
255
|
-
<details>
|
|
256
|
-
<summary><b>Configure ccstatusline</b></summary>
|
|
257
|
-
|
|
258
|
-
The interactive configuration tool provides a terminal UI where you can:
|
|
259
|
-
- Configure multiple separate status lines
|
|
260
|
-
- Add/remove/reorder status line widgets
|
|
261
|
-
- Customize colors for each widget
|
|
262
|
-
- Configure flex separator behavior
|
|
263
|
-
- Configure Claude Code status line refresh interval when supported
|
|
264
|
-
- Edit custom text widgets
|
|
265
|
-
- Install/uninstall to Claude Code settings
|
|
266
|
-
- Preview your status line in real-time
|
|
267
|
-
|
|
268
|
-
> đĄ **Tip:** Your settings are automatically saved to `~/.config/ccstatusline/settings.json`
|
|
269
|
-
|
|
270
|
-
> đ§ **Custom Claude Config:** If your Claude Code configuration is in a non-standard location, set the `CLAUDE_CONFIG_DIR` environment variable:
|
|
271
|
-
> ```bash
|
|
272
|
-
> # Linux/macOS
|
|
273
|
-
> export CLAUDE_CONFIG_DIR=/custom/path/to/.claude
|
|
274
|
-
> ```
|
|
275
|
-
|
|
276
|
-
> đ **Usage API proxy:** Usage widgets honor the uppercase `HTTPS_PROXY` environment variable for their direct API call to Anthropic.
|
|
277
|
-
|
|
278
|
-
> đȘ **Windows Support:** PowerShell examples, installation notes, fonts, troubleshooting, WSL, and Windows Terminal configuration are in [docs/WINDOWS.md](docs/WINDOWS.md).
|
|
279
|
-
|
|
280
|
-
</details>
|
|
281
|
-
|
|
282
|
-
<details>
|
|
283
|
-
<summary><b>Claude Code settings.json format</b></summary>
|
|
284
|
-
|
|
285
|
-
When you install from the TUI, ccstatusline writes a `statusLine` command object to your Claude Code settings:
|
|
286
|
-
|
|
287
|
-
```json
|
|
288
|
-
{
|
|
289
|
-
"statusLine": {
|
|
290
|
-
"type": "command",
|
|
291
|
-
"command": "npx -y ccstatusline@latest",
|
|
292
|
-
"padding": 0,
|
|
293
|
-
"refreshInterval": 10
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
`refreshInterval` is written only when your Claude Code version supports it (>=2.1.97). The TUI can set it to `1-60` seconds, or remove it by leaving the input empty.
|
|
299
|
-
|
|
300
|
-
Other supported command values are:
|
|
301
|
-
- `bunx -y ccstatusline@latest`
|
|
302
|
-
- `ccstatusline` (for self-managed/global installs)
|
|
303
|
-
|
|
304
|
-
</details>
|
|
305
|
-
|
|
306
|
-
## đ€ Contributing
|
|
307
|
-
|
|
308
|
-
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
309
|
-
|
|
310
|
-
1. Fork the repository
|
|
311
|
-
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
|
312
|
-
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
|
|
313
|
-
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
314
|
-
5. Open a Pull Request
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
## Support
|
|
318
|
-
|
|
319
|
-
If ccstatusline is useful to you, consider buying me a coffee:
|
|
320
|
-
|
|
321
|
-
<a href="https://www.buymeacoffee.com/sirmalloc" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
## đ License
|
|
325
|
-
|
|
326
|
-
[MIT](LICENSE) © Matthew Breedlove
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
## đ€ Author
|
|
330
|
-
|
|
331
|
-
**Matthew Breedlove**
|
|
332
|
-
|
|
333
|
-
- GitHub: [@sirmalloc](https://github.com/sirmalloc)
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
## đ Related Projects
|
|
337
|
-
|
|
338
|
-
- [tweakcc](https://github.com/Piebald-AI/tweakcc) - Customize Claude Code themes, thinking verbs, and more.
|
|
339
|
-
- [ccusage](https://github.com/ryoppippi/ccusage) - Track and display Claude Code usage metrics.
|
|
340
|
-
- [codachi](https://github.com/vincent-k2026/codachi) - A tamagotchi-style statusline pet that grows with your context window.
|
|
341
|
-
- [AIWatch](https://ai-watch.dev) - Live status monitor for 30+ AI APIs and apps; pairs with a Custom Command widget to surface provider outages in your status line.
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
## đ Acknowledgments
|
|
345
|
-
|
|
346
|
-
- Built for use with [Claude Code CLI](https://claude.ai/code) by Anthropic
|
|
347
|
-
- Powered by [Ink](https://github.com/vadimdemedes/ink) for the terminal UI
|
|
348
|
-
- Made with â€ïž for the Claude Code community
|
|
349
|
-
|
|
350
|
-
<br />
|
|
351
|
-
|
|
352
|
-
## Star History
|
|
353
|
-
|
|
354
|
-
<a href="https://www.star-history.com/#sirmalloc/ccstatusline&Timeline">
|
|
355
|
-
<picture>
|
|
356
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=sirmalloc/ccstatusline&type=Timeline&theme=dark" />
|
|
357
|
-
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=sirmalloc/ccstatusline&type=Timeline" />
|
|
358
|
-
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=sirmalloc/ccstatusline&type=Timeline" />
|
|
359
|
-
</picture>
|
|
360
|
-
</a>
|
|
361
|
-
|
|
362
|
-
<div align="center">
|
|
363
|
-
|
|
364
|
-
### đ Show Your Support
|
|
365
|
-
|
|
366
|
-
Give a â if this project helped you!
|
|
367
|
-
|
|
368
|
-
[](https://github.com/sirmalloc/ccstatusline/stargazers)
|
|
369
|
-
[](https://github.com/sirmalloc/ccstatusline/network/members)
|
|
370
|
-
[](https://github.com/sirmalloc/ccstatusline/watchers)
|
|
371
|
-
|
|
372
|
-
[](https://www.npmjs.com/package/ccstatusline)
|
|
373
|
-
[](https://www.npmjs.com/package/ccstatusline)
|
|
374
|
-
[](https://github.com/sirmalloc/ccstatusline/blob/main/LICENSE)
|
|
375
|
-
[](https://bun.sh)
|
|
376
|
-
|
|
377
|
-
[](https://github.com/sirmalloc/ccstatusline/issues)
|
|
378
|
-
[](https://github.com/sirmalloc/ccstatusline/pulls)
|
|
379
|
-
[](https://github.com/sirmalloc/ccstatusline/graphs/contributors)
|
|
380
|
-
|
|
381
|
-
### đŹ Connect
|
|
382
|
-
|
|
383
|
-
[Report Bug](https://github.com/sirmalloc/ccstatusline/issues) · [Request Feature](https://github.com/sirmalloc/ccstatusline/issues) · [Discussions](https://github.com/sirmalloc/ccstatusline/discussions)
|
|
384
|
-
|
|
385
|
-
</div>
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# mochiapi-statusline
|
|
4
|
+
|
|
5
|
+
**[MochiAPI](https://mochiapi.com) çšæ·ç Claude Code ç¶ææ ă**
|
|
6
|
+
äžæĄćœä»€èŁ
ć„œăç»ç«ŻéçæšĄćăäžäžæă莊æ·äœéąă仿„è±èŽčă
|
|
7
|
+
|
|
8
|
+
[](https://www.npmjs.com/package/mochiapi-statusline)
|
|
9
|
+
[](LICENSE)
|
|
10
|
+
[](https://nodejs.org)
|
|
11
|
+
|
|
12
|
+

|
|
13
|
+
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## ćźèŁ
|
|
19
|
+
|
|
20
|
+
èŠ **Node.js â„ 14**ăäžæĄćœä»€èŁ
ć
+ è·äș€äșćŒ setupïŒ
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm install -g mochiapi-statusline && mochiapi-statusline --mochiapi-setup
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
bash / zsh / fish / PowerShell 7+ / cmd.exe éœèœè·ïŒ`&&` æèŁ
ć
ć setup äžČè”·æ„ă
|
|
27
|
+
|
|
28
|
+
> **Windows PowerShell 5.1**ïŒWin10 é»èź€ïŒäžæŻæ `&&`ïŒć䞀æ„ïŒ
|
|
29
|
+
> ```powershell
|
|
30
|
+
> npm install -g mochiapi-statusline
|
|
31
|
+
> mochiapi-statusline --mochiapi-setup
|
|
32
|
+
> ```
|
|
33
|
+
|
|
34
|
+
ć
ć» <https://mochiapi.com/dashboard> ć€ć¶ tokenïŒsetup äŒèź©äœ çČ莎ă`--mochiapi-setup` ććä»¶äșïŒ
|
|
35
|
+
|
|
36
|
+
1. token + base URL â `~/.config/mochiapi-statusline/config.json`ïŒWindows æŻ `%APPDATA%\mochiapi-statusline\config.json`ïŒ
|
|
37
|
+
2. æąæ”äžæŹĄ balance æ„ćŁïŒçĄźèź€ token ææ
|
|
38
|
+
3. ææšèç **Mochi äž€èĄ Powerline ćžć±**ćć
„ `~/.config/ccstatusline/settings.json`ïŒć·Čæćžć±äŒæ Mochi èźĄèŽčèĄèżœć èżć»ïŒ
|
|
39
|
+
4. æ Claude Code ç `~/.claude/settings.json` é `statusLine.command` æć `mochiapi-statusline`
|
|
40
|
+
|
|
41
|
+
ćŒäžäžȘæ°ç Claude Code äŒèŻïŒç¶ææ ć°±æäșă
|
|
42
|
+
|
|
43
|
+
> **Windows + Powerline**ïŒé»èź€ćžć±çš Nerd Font ććœąććéçŹŠïŒæČĄèŁ
äŒçć° `?` æčćăèŁ
äžäžȘćč¶èźŸäžșç»ç«ŻćäœïŒ
|
|
44
|
+
>
|
|
45
|
+
> ```powershell
|
|
46
|
+
> winget install DEVCOM.JetBrainsMonoNerdFont
|
|
47
|
+
> ```
|
|
48
|
+
|
|
49
|
+
`dist/ccstatusline.js` éąæć»șäș§ç©çŽæ„æèż npm tarballïŒć
äžćٰæ `prepare` / `postinstall`ïŒćźèŁ
æ¶äžäŒè·æŹć°æć»șïŒbundle ć„œç binary çŽæ„èœć°ă
|
|
50
|
+
|
|
51
|
+
### ć€çšćźèŁ
æș
|
|
52
|
+
|
|
53
|
+
ćȘćš npm registry èą«ćąăæè
æłè· `main` HEAD èäžæŻ tag ććžæ¶çšïŒ
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# è·èžȘ main HEADïŒæ»ćšïŒæ çæŹéćźïŒ
|
|
57
|
+
npm install -g github:Subaru486desuwa/mochiapi-statusline
|
|
58
|
+
|
|
59
|
+
# éć°çčćź git tag
|
|
60
|
+
npm install -g github:Subaru486desuwa/mochiapi-statusline#v0.1.1
|
|
61
|
+
|
|
62
|
+
# Tarball çŽèŁ
ïŒäžèœœæć°ïŒçä»·äș github: çźćïŒ
|
|
63
|
+
npm install -g https://github.com/Subaru486desuwa/mochiapi-statusline/archive/refs/heads/main.tar.gz
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## é»èź€ćžć±éżèżæ ·
|
|
67
|
+
|
|
68
|
+
äž€èĄ PowerlineïŒMochi é
èČïŒćŸäžæŻćźé
ææïŒïŒ
|
|
69
|
+
|
|
70
|
+
- **珏äžèĄ** â `æšĄć / Opus 4.7 (1M context) / äžäžæ / 50.7k`ïŒä»ćșć
èżœć `<ćæŻ> / <æčćš>`ïŒä»ćșć€èȘćšéè
|
|
71
|
+
- **珏äșèĄ** â `çšæ·äœéą / $98.43 / 仿„æ¶è / $11.66 / TPS / 6.4 t/s`ïŒMochiAPI 莊æ·äœéą + 仿„è±èŽč + token èŸćșéçïŒ
|
|
72
|
+
|
|
73
|
+
æ°ćŒćéąćžŠ `*` èĄšç€șçŒććŒæŻ `2 Ă refreshIntervalSec`ïŒé»èź€ 60 ç§ïŒæ§ïŒéćžžæŻçŹæ¶çœç»æćšïŒćć° refresher ćšéèŻăwidget ç»§ç»æŸç€șäžäžæŹĄæććŒă
|
|
74
|
+
|
|
75
|
+
`mochiapi-subscription` widgetïŒäžćäžïŒ`äœéą $X.XX · 仿„ $Y.YY · èźąé
$Z.ZZ/â`ïŒä»ç¶ćŻçšïŒćȘæŻäžćšé»èź€ćžć±ââ〧〿° MochiAPI äžèœŹçšæ·èźąé
æŻ `â`ïŒæČĄæäčăéèŠçèŻ TUI éæćšć ă
|
|
76
|
+
|
|
77
|
+
## MochiAPI èȘ枊ç widget
|
|
78
|
+
|
|
79
|
+
äžäžȘ widget ć
±çšäžæŹĄ `/api/user/dashboard/balance` èŻ·æ±ççŒćïŒ
|
|
80
|
+
|
|
81
|
+
| Widget ç±»ć | æžČæ | é»èź€èČ |
|
|
82
|
+
|---|---|---|
|
|
83
|
+
| `mochiapi-balance` | 莊æ·ć©äœäœéą â `$X.XX` æ `â`ïŒæ é莊æ·ïŒ | cyan |
|
|
84
|
+
| `mochiapi-daily-spend` | 仿„è±èŽč â `$X.XX` | magenta |
|
|
85
|
+
| `mochiapi-subscription` | `äœéą $X.XX · 仿„ $Y.YY · èźąé
$Z.ZZ/â`ïŒäžćšé»èź€ćžć±ïŒ | cyan |
|
|
86
|
+
|
|
87
|
+
çŒćéèż detached ćèżçšæŻ `refreshIntervalSec`ïŒé»èź€ 30 ç§ïŒć·æ°äžæŹĄă
|
|
88
|
+
|
|
89
|
+
## CLI
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# ćè·äžæŹĄäș€äșćŒ setup
|
|
93
|
+
mochiapi-statusline --mochiapi-setup
|
|
94
|
+
|
|
95
|
+
# éäș€äșïŒCI / èæŹïŒ
|
|
96
|
+
MOCHIAPI_TOKEN=sk-xxxx MOCHIAPI_BASE_URL=https://mochiapi.com \
|
|
97
|
+
mochiapi-statusline --mochiapi-setup
|
|
98
|
+
|
|
99
|
+
# ćȘć mochi é
çœźïŒäžćš ccstatusline / Claude Code èźŸçœź
|
|
100
|
+
mochiapi-statusline --mochiapi-setup --skip-statusline --skip-claude-wire
|
|
101
|
+
|
|
102
|
+
# æćšć·äžæŹĄäœéąçŒćïŒćć°æŻ 30 ç§äčäŒèȘćšć·ïŒ
|
|
103
|
+
mochiapi-statusline --mochiapi-refresh
|
|
104
|
+
|
|
105
|
+
# ćŻćš TUI è°æŽ widget / éąèČ / ćžć± / Powerline
|
|
106
|
+
mochiapi-statusline
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## ćçș§ / ćžèœœ
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# ćçș§ć°ææ°ććžçæŹ
|
|
113
|
+
npm install -g mochiapi-statusline@latest
|
|
114
|
+
|
|
115
|
+
# ćžèœœ
|
|
116
|
+
npm uninstall -g mochiapi-statusline
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## æä»¶äœçœź
|
|
120
|
+
|
|
121
|
+
| | macOS / Linux | Windows |
|
|
122
|
+
|---|---|---|
|
|
123
|
+
| MochiAPI token + baseUrl | `~/.config/mochiapi-statusline/config.json` | `%APPDATA%\mochiapi-statusline\config.json` |
|
|
124
|
+
| äœéąçŒć | `~/.cache/mochiapi-statusline/balance.json` | `%LOCALAPPDATA%\mochiapi-statusline\cache\balance.json` |
|
|
125
|
+
| ç¶ææ ćžć± | `~/.config/ccstatusline/settings.json` | `%USERPROFILE%\.config\ccstatusline\settings.json` |
|
|
126
|
+
| Claude Code | `~/.claude/settings.json` | `%USERPROFILE%\.claude\settings.json` |
|
|
127
|
+
|
|
128
|
+
token é
çœźććžć±é
çœźæŻ**䞀äžȘäžćçæä»¶**ïŒæčéŽæćšçŹŹäžäžȘïŒæčæŸç€șćȘäș widget ćšçŹŹäșäžȘïŒæè
è· TUIïŒă
|
|
129
|
+
|
|
130
|
+
## æé
|
|
131
|
+
|
|
132
|
+
| ç¶ææ æŸç€ș | ć«äč | ć€ç |
|
|
133
|
+
|---|---|---|
|
|
134
|
+
| `Mochi: cfg?` | æŸäžć° `config.json` | éæ°è· `mochiapi-statusline --mochiapi-setup` |
|
|
135
|
+
| `Mochi: ...` | çŒćèżæČĄćĄ« | è· `mochiapi-statusline --mochiapi-refresh`ïŒæç 30 ç§ |
|
|
136
|
+
| `$X.XX*`ïŒæ«ć°Ÿ `*`ïŒ | çŒćéæ§ | éćžžçŹæ¶äžæžžéźéąïŒćć° refresher äŒèȘćšéèŻ |
|
|
137
|
+
| ćé珊æŸç€șæ `?` | ç»ç«ŻæČĄçš Nerd Font | èŁ
Nerd Font ćč¶èźŸäžșç»ç«Żćäœ |
|
|
138
|
+
|
|
139
|
+
äžćŻćš Claude Code äčèœæžČæäžæŹĄççææïŒ
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
echo '{"session_id":"test","model":{"id":"claude-sonnet-4-6","display_name":"Sonnet 4.6 (1M context)"},"workspace":{"current_dir":".","project_dir":"."},"cost":{"total_cost_usd":0},"transcript_path":"/tmp/nonexistent","output_style":{"name":"default"}}' \
|
|
143
|
+
| mochiapi-statusline
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## æ„ćŁć„çșŠ
|
|
147
|
+
|
|
148
|
+
| è·ŻćŸ | èżć |
|
|
149
|
+
|---|---|
|
|
150
|
+
| `GET ${baseUrl}/api/user/dashboard/balance` | 莊æ·ćæź” + 仿„è±èŽčïŒäžæŹĄèŻ·æ±ćäžäžȘ widgetïŒ |
|
|
151
|
+
|
|
152
|
+
Bearer éŽæïŒ`Authorization: Bearer sk-...`ïŒïŒäžçš cookieïŒäžçš sessionă
|
|
153
|
+
|
|
154
|
+
ä»ććșéèŻ»çćæź”ïŒ
|
|
155
|
+
|
|
156
|
+
| API ćæź” | çšé |
|
|
157
|
+
|---|---|
|
|
158
|
+
| çŽæ„äœéąćæź”ïŒ`user_balance_usd` / `user_remain_quota_usd` / `balance_usd` çïŒććšæ¶ïŒ | äœéą widgetïŒéŠéè·ŻćŸïŒ |
|
|
159
|
+
| `data.user_quota_usd` â `data.user_used_quota_usd` | äœéą widgetïŒçŽæ„ćæź”çŒș怱æ¶çćéïŒ |
|
|
160
|
+
| `data.today_used_quota_usd` | 仿„è±èŽč widget |
|
|
161
|
+
| `data.token_remain_quota_usd` + `data.token_unlimited` | èźąé
widget |
|
|
162
|
+
|
|
163
|
+
## èŽè°ą
|
|
164
|
+
|
|
165
|
+
ćșć±ç¶ææ ćŒæ fork èȘ [sirmalloc/ccstatusline](https://github.com/sirmalloc/ccstatusline)ïŒMITïŒÂ© Matthew BreedloveïŒăMochiAPI éšćçćąéćȘæïŒ
|
|
166
|
+
|
|
167
|
+
- `mochiapi-balance` / `mochiapi-daily-spend` / `mochiapi-subscription` äžäžȘ widget
|
|
168
|
+
- `--mochiapi-setup` / `--mochiapi-refresh` 䞀äžȘ CLI flag
|
|
169
|
+
- äžéź setupïŒć config + ććžć± + æ„ Claude Code `statusLine.command`ïŒ
|
|
170
|
+
|
|
171
|
+
ć
¶äœç TUIăäž»éąăćžć±ăPowerline æžČæă20 ć€äžȘć
¶ćź widget ć
šéšæŻäžæžžä»Łç ïŒæ·±ćșŠèȘćźäčç
§æ ·éçšäžæžžç TUIă
|
|
172
|
+
|
|
173
|
+
## License
|
|
174
|
+
|
|
175
|
+
MIT â è§ [LICENSE](LICENSE) ć [NOTICE](NOTICE)ă
|
package/dist/ccstatusline.js
CHANGED
|
@@ -1362,8 +1362,9 @@ See https://react.dev/link/invalid-hook-call for tips about how to debug and fix
|
|
|
1362
1362
|
|
|
1363
1363
|
// node_modules/react/index.js
|
|
1364
1364
|
var require_react = __commonJS((exports, module) => {
|
|
1365
|
+
var react_development = __toESM(require_react_development());
|
|
1365
1366
|
if (false) {} else {
|
|
1366
|
-
module.exports =
|
|
1367
|
+
module.exports = react_development;
|
|
1367
1368
|
}
|
|
1368
1369
|
});
|
|
1369
1370
|
|
|
@@ -3848,8 +3849,9 @@ var require_scheduler_development = __commonJS((exports) => {
|
|
|
3848
3849
|
|
|
3849
3850
|
// node_modules/react-reconciler/node_modules/scheduler/index.js
|
|
3850
3851
|
var require_scheduler = __commonJS((exports, module) => {
|
|
3852
|
+
var scheduler_development = __toESM(require_scheduler_development());
|
|
3851
3853
|
if (false) {} else {
|
|
3852
|
-
module.exports =
|
|
3854
|
+
module.exports = scheduler_development;
|
|
3853
3855
|
}
|
|
3854
3856
|
});
|
|
3855
3857
|
|
|
@@ -37056,8 +37058,9 @@ React keys must be passed directly to JSX without using spread:
|
|
|
37056
37058
|
|
|
37057
37059
|
// node_modules/react/jsx-runtime.js
|
|
37058
37060
|
var require_jsx_runtime = __commonJS((exports, module) => {
|
|
37061
|
+
var react_jsx_runtime_development = __toESM(require_react_jsx_runtime_development());
|
|
37059
37062
|
if (false) {} else {
|
|
37060
|
-
module.exports =
|
|
37063
|
+
module.exports = react_jsx_runtime_development;
|
|
37061
37064
|
}
|
|
37062
37065
|
});
|
|
37063
37066
|
|
|
@@ -55891,6 +55894,15 @@ function getModelContextIdentifier(model) {
|
|
|
55891
55894
|
}
|
|
55892
55895
|
return id ?? displayName;
|
|
55893
55896
|
}
|
|
55897
|
+
function lookupKnownModelWindow(modelIdentifier) {
|
|
55898
|
+
const id = modelIdentifier.toLowerCase();
|
|
55899
|
+
for (const { pattern, windowSize } of KNOWN_MODEL_CONTEXT_WINDOWS) {
|
|
55900
|
+
if (id.includes(pattern)) {
|
|
55901
|
+
return windowSize;
|
|
55902
|
+
}
|
|
55903
|
+
}
|
|
55904
|
+
return null;
|
|
55905
|
+
}
|
|
55894
55906
|
function getContextConfig(modelIdentifier, contextWindowSize) {
|
|
55895
55907
|
const statusWindowSize = toValidWindowSize(contextWindowSize);
|
|
55896
55908
|
if (statusWindowSize !== null) {
|
|
@@ -55913,9 +55925,26 @@ function getContextConfig(modelIdentifier, contextWindowSize) {
|
|
|
55913
55925
|
usableTokens: Math.floor(inferredWindowSize * USABLE_CONTEXT_RATIO)
|
|
55914
55926
|
};
|
|
55915
55927
|
}
|
|
55928
|
+
const knownWindowSize = lookupKnownModelWindow(modelIdentifier);
|
|
55929
|
+
if (knownWindowSize !== null) {
|
|
55930
|
+
return {
|
|
55931
|
+
maxTokens: knownWindowSize,
|
|
55932
|
+
usableTokens: Math.floor(knownWindowSize * USABLE_CONTEXT_RATIO)
|
|
55933
|
+
};
|
|
55934
|
+
}
|
|
55916
55935
|
return defaultConfig;
|
|
55917
55936
|
}
|
|
55918
|
-
var DEFAULT_CONTEXT_WINDOW_SIZE = 200000, USABLE_CONTEXT_RATIO = 0.8;
|
|
55937
|
+
var DEFAULT_CONTEXT_WINDOW_SIZE = 200000, USABLE_CONTEXT_RATIO = 0.8, KNOWN_MODEL_CONTEXT_WINDOWS;
|
|
55938
|
+
var init_model_context = __esm(() => {
|
|
55939
|
+
KNOWN_MODEL_CONTEXT_WINDOWS = [
|
|
55940
|
+
{ pattern: "glm-4.6", windowSize: 200000 },
|
|
55941
|
+
{ pattern: "glm-4.5", windowSize: 128000 },
|
|
55942
|
+
{ pattern: "glm-4", windowSize: 128000 },
|
|
55943
|
+
{ pattern: "kimi-k2", windowSize: 256000 },
|
|
55944
|
+
{ pattern: "qwen3-coder", windowSize: 256000 },
|
|
55945
|
+
{ pattern: "deepseek", windowSize: 128000 }
|
|
55946
|
+
];
|
|
55947
|
+
});
|
|
55919
55948
|
|
|
55920
55949
|
// src/utils/context-percentage.ts
|
|
55921
55950
|
function calculateContextPercentageMetrics(context) {
|
|
@@ -55939,7 +55968,9 @@ function calculateContextPercentageMetrics(context) {
|
|
|
55939
55968
|
function calculateContextPercentage(context) {
|
|
55940
55969
|
return calculateContextPercentageMetrics(context)?.usedPercentage ?? 0;
|
|
55941
55970
|
}
|
|
55942
|
-
var init_context_percentage = () => {
|
|
55971
|
+
var init_context_percentage = __esm(() => {
|
|
55972
|
+
init_model_context();
|
|
55973
|
+
});
|
|
55943
55974
|
|
|
55944
55975
|
// src/utils/terminal.ts
|
|
55945
55976
|
import { execSync } from "child_process";
|
|
@@ -56044,7 +56075,7 @@ function getTerminalWidth() {
|
|
|
56044
56075
|
function canDetectTerminalWidth() {
|
|
56045
56076
|
return probeTerminalWidth() !== null;
|
|
56046
56077
|
}
|
|
56047
|
-
var __dirname = "
|
|
56078
|
+
var __dirname = "/Volumes/ExtremeSSD/Developer/mochiapi/statusline/src/utils", PACKAGE_VERSION = "0.1.2";
|
|
56048
56079
|
var init_terminal = () => {};
|
|
56049
56080
|
|
|
56050
56081
|
// src/utils/renderer.ts
|
|
@@ -56870,6 +56901,7 @@ class ContextWindowWidget {
|
|
|
56870
56901
|
}
|
|
56871
56902
|
}
|
|
56872
56903
|
var init_ContextWindow = __esm(async () => {
|
|
56904
|
+
init_model_context();
|
|
56873
56905
|
await init_renderer2();
|
|
56874
56906
|
});
|
|
56875
56907
|
|
|
@@ -57425,6 +57457,7 @@ class ContextPercentageUsableWidget {
|
|
|
57425
57457
|
}
|
|
57426
57458
|
}
|
|
57427
57459
|
var init_ContextPercentageUsable = __esm(() => {
|
|
57460
|
+
init_model_context();
|
|
57428
57461
|
init_context_inverse();
|
|
57429
57462
|
init_context_slider();
|
|
57430
57463
|
});
|
|
@@ -57820,8 +57853,9 @@ React keys must be passed directly to JSX without using spread:
|
|
|
57820
57853
|
|
|
57821
57854
|
// node_modules/react/jsx-dev-runtime.js
|
|
57822
57855
|
var require_jsx_dev_runtime = __commonJS((exports, module) => {
|
|
57856
|
+
var react_jsx_dev_runtime_development = __toESM(require_react_jsx_dev_runtime_development());
|
|
57823
57857
|
if (false) {} else {
|
|
57824
|
-
module.exports =
|
|
57858
|
+
module.exports = react_jsx_dev_runtime_development;
|
|
57825
57859
|
}
|
|
57826
57860
|
});
|
|
57827
57861
|
|
|
@@ -65958,6 +65992,7 @@ class ContextBarWidget {
|
|
|
65958
65992
|
}
|
|
65959
65993
|
}
|
|
65960
65994
|
var init_ContextBar = __esm(async () => {
|
|
65995
|
+
init_model_context();
|
|
65961
65996
|
init_usage_display();
|
|
65962
65997
|
await init_usage();
|
|
65963
65998
|
});
|
package/package.json
CHANGED
|
@@ -1,74 +1,72 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "mochiapi-statusline",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "
|
|
5
|
-
"module": "src/ccstatusline.ts",
|
|
6
|
-
"type": "module",
|
|
7
|
-
"bin": {
|
|
8
|
-
"mochiapi-statusline": "dist/ccstatusline.js"
|
|
9
|
-
},
|
|
10
|
-
"files": [
|
|
11
|
-
"dist/"
|
|
12
|
-
],
|
|
13
|
-
"scripts": {
|
|
14
|
-
"start": "bun run src/ccstatusline.ts",
|
|
15
|
-
"build": "rm -rf dist/* ; bun build src/ccstatusline.ts --target=node --outfile=dist/ccstatusline.js --target-version=14",
|
|
16
|
-
"postbuild": "bun run scripts/replace-version.ts",
|
|
17
|
-
"example": "cat scripts/payload.example.json | bun start",
|
|
18
|
-
"lint": "bun tsc --noEmit && eslint . --config eslint.config.js --max-warnings=0",
|
|
19
|
-
"lint:fix": "bun tsc --noEmit && eslint . --config eslint.config.js --max-warnings=0 --fix"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"@
|
|
25
|
-
"@
|
|
26
|
-
"@types/
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"eslint": "^
|
|
31
|
-
"eslint-import-
|
|
32
|
-
"eslint-plugin-
|
|
33
|
-
"eslint-plugin-
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"ink": "6.2.0",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
"
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "mochiapi-statusline",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Claude Code status line for MochiAPI users â account balance, today's spend, model, context, and git in your terminal",
|
|
5
|
+
"module": "src/ccstatusline.ts",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"mochiapi-statusline": "dist/ccstatusline.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist/"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"start": "bun run src/ccstatusline.ts",
|
|
15
|
+
"build": "rm -rf dist/* ; bun build src/ccstatusline.ts --target=node --outfile=dist/ccstatusline.js --target-version=14",
|
|
16
|
+
"postbuild": "bun run scripts/replace-version.ts",
|
|
17
|
+
"example": "cat scripts/payload.example.json | bun start",
|
|
18
|
+
"lint": "bun tsc --noEmit && eslint . --config eslint.config.js --max-warnings=0",
|
|
19
|
+
"lint:fix": "bun tsc --noEmit && eslint . --config eslint.config.js --max-warnings=0 --fix"
|
|
20
|
+
},
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@eslint/js": "^10.0.1",
|
|
23
|
+
"@stylistic/eslint-plugin": "^5.2.3",
|
|
24
|
+
"@types/bun": "latest",
|
|
25
|
+
"@types/pluralize": "^0.0.33",
|
|
26
|
+
"@types/react": "^19.1.10",
|
|
27
|
+
"chalk": "^5.5.0",
|
|
28
|
+
"eslint": "^10.0.0",
|
|
29
|
+
"eslint-import-resolver-typescript": "^4.4.4",
|
|
30
|
+
"eslint-plugin-import-newlines": "^2.0.0",
|
|
31
|
+
"eslint-plugin-import-x": "^4.16.2",
|
|
32
|
+
"eslint-plugin-react": "^7.37.5",
|
|
33
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
34
|
+
"globals": "^17.3.0",
|
|
35
|
+
"https-proxy-agent": "^8.0.0",
|
|
36
|
+
"ink": "6.2.0",
|
|
37
|
+
"ink-gradient": "^4.0.0",
|
|
38
|
+
"ink-select-input": "^6.2.0",
|
|
39
|
+
"pluralize": "^8.0.0",
|
|
40
|
+
"react": "^19.1.1",
|
|
41
|
+
"react-devtools-core": "^7.0.1",
|
|
42
|
+
"strip-ansi": "^7.1.0",
|
|
43
|
+
"tinyglobby": "^0.2.14",
|
|
44
|
+
"typedoc": "^0.28.12",
|
|
45
|
+
"typescript": "^6.0.2",
|
|
46
|
+
"typescript-eslint": "^8.39.1",
|
|
47
|
+
"vitest": "^4.0.18",
|
|
48
|
+
"zod": "^4.0.17"
|
|
49
|
+
},
|
|
50
|
+
"keywords": [
|
|
51
|
+
"claude",
|
|
52
|
+
"claude-code",
|
|
53
|
+
"cli",
|
|
54
|
+
"status-line",
|
|
55
|
+
"terminal"
|
|
56
|
+
],
|
|
57
|
+
"author": "",
|
|
58
|
+
"license": "MIT",
|
|
59
|
+
"repository": {
|
|
60
|
+
"type": "git",
|
|
61
|
+
"url": "git+https://github.com/Subaru486desuwa/mochiapi-statusline.git"
|
|
62
|
+
},
|
|
63
|
+
"engines": {
|
|
64
|
+
"node": ">=14.0.0"
|
|
65
|
+
},
|
|
66
|
+
"trustedDependencies": [
|
|
67
|
+
"unrs-resolver"
|
|
68
|
+
],
|
|
69
|
+
"patchedDependencies": {
|
|
70
|
+
"ink@6.2.0": "patches/ink@6.2.0.patch"
|
|
71
|
+
}
|
|
72
|
+
}
|