agy-powerline 1.4.0 → 1.5.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/CHANGELOG.md +16 -0
- package/README.fr.md +11 -9
- package/README.ja.md +11 -9
- package/README.md +13 -11
- package/README.zh-CN.md +11 -9
- package/llms.txt +127 -0
- package/package.json +6 -3
- package/src/cli/configure.js +8 -8
- package/src/cli/doctor.js +17 -1
- package/src/lib/catalog.js +21 -0
- package/src/lib/config.js +3 -0
- package/src/lib/fit.js +3 -0
- package/src/lib/formatters.js +107 -4
- package/src/lib/layouts/lines.js +48 -11
- package/src/lib/layouts/pills.js +48 -11
- package/src/lib/session.js +49 -1
- package/src/lib/widget-options.js +108 -14
- package/src/lib/widget-style.js +100 -4
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.5.0] - 2026-10-21
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Folder depth for `cwd` and per-widget maximum widths for selected values (#98, thanks @dannyward630)
|
|
13
|
+
- Per-widget quota and context visibility thresholds in the bar and `configure` (#99, thanks @dannyward630)
|
|
14
|
+
- `clock` widget shows the current local time, in the 12/24-hour format set under `clock` (#46, thanks @Ashuge11)
|
|
15
|
+
- Optional `os` widget shows Windows, macOS, Linux or WSL (#63, thanks @dannyward630)
|
|
16
|
+
- Opt-in `host` widget shows the current user and short hostname; `doctor` shows them as `user@host`, since its output gets pasted into issues (#62, thanks @dannyward630)
|
|
17
|
+
- Every widget takes its own `label` and `icon`, in the config file and in `configure` (Label text, Icon) (#97)
|
|
18
|
+
- `llms.txt` in the package: install, commands, widgets, themes and presets in one file for AI assistants (#130, thanks @dannyward630)
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- `cwd` widget shows a path written for another OS (a Windows path on Linux or WSL, a POSIX path on Windows) as it is, instead of joining it to the current folder (#134, thanks @dannyward630)
|
|
23
|
+
|
|
8
24
|
## [1.4.0] - 2026-10-20
|
|
9
25
|
|
|
10
26
|
### Added
|
package/README.fr.md
CHANGED
|
@@ -2,20 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
[English](README.md) | [简体中文](README.zh-CN.md) | [日本語](README.ja.md) | **Français**
|
|
4
4
|
|
|
5
|
-
[](https://github.com/wassim-azi/agy-powerline/actions/workflows/ci.yml)
|
|
6
|
-
[](https://github.com/wassim-azi/agy-powerline/actions/workflows/codeql.yml)
|
|
7
5
|
[](https://www.npmjs.com/package/agy-powerline)
|
|
8
6
|
[](https://www.npmjs.com/package/agy-powerline)
|
|
9
7
|
[](https://github.com/wassim-azi/agy-powerline/stargazers)
|
|
10
|
-
[](docs/install.md)
|
|
13
|
-
[](docs/install.md)
|
|
14
|
-
[](docs/install.md)
|
|
15
|
-
[](https://opensource.org/licenses/MIT)
|
|
16
|
-
[](#confidentialité-et-sécurité)
|
|
8
|
+
[](https://github.com/wassim-azi/agy-powerline/actions/workflows/ci.yml)
|
|
9
|
+
[](https://github.com/wassim-azi/agy-powerline/actions/workflows/codeql.yml)
|
|
17
10
|
[](https://scorecard.dev/viewer/?uri=github.com/wassim-azi/agy-powerline)
|
|
18
11
|
[](https://www.bestpractices.dev/projects/15655)
|
|
12
|
+
[](#confidentialité-et-sécurité)
|
|
13
|
+
[](docs/install.md)
|
|
14
|
+
[](https://opensource.org/licenses/MIT)
|
|
15
|
+
[](https://codespaces.new/wassim-azi/agy-powerline?quickstart=1)
|
|
16
|
+
[](https://agy-powerline.com/configure/)
|
|
19
17
|
[](https://github.com/Piebald-AI/awesome-gemini-cli)
|
|
20
18
|
|
|
21
19
|
> > **Remarque :** cette traduction peut ne pas être à jour. En cas de divergence, la [version anglaise](README.md) fait foi. La documentation détaillée ([`docs/`](docs/)) n’existe qu’en anglais.
|
|
@@ -142,6 +140,7 @@ Prévisualisez tous les thèmes avec `npx agy-powerline theme --gallery`.
|
|
|
142
140
|
| Widget | Informations affichées |
|
|
143
141
|
| ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
144
142
|
| `model` | Modèle utilisé |
|
|
143
|
+
| `clock` | Current local time (12/24-hour format set under `clock`) |
|
|
145
144
|
| `fiveHourBar`, `weeklyBar` | Quota restant sur 5h/7d sous forme de jauge, avec un [indicateur de rythme](docs/configuration.md#quota-pace-marker) |
|
|
146
145
|
| `fiveHourPct`, `weeklyPct` | Pourcentage de quota restant sur 5h/7d |
|
|
147
146
|
| `fiveHourReset`, `weeklyReset` | Temps restant avant la réinitialisation du quota, ou heure de réinitialisation |
|
|
@@ -159,6 +158,8 @@ Prévisualisez tous les thèmes avec `npx agy-powerline theme --gallery`.
|
|
|
159
158
|
| `totalTokens`, `cacheHit`, `cacheRead`, `cacheCreate` | Tokens de la session et utilisation du cache des prompts |
|
|
160
159
|
| `tokensToday`, `tokensWeek` | Tokens utilisés aujourd’hui et sur les 7 derniers jours, toutes conversations confondues (Node 22.13+) |
|
|
161
160
|
| `ram` | Mémoire utilisée sur votre machine |
|
|
161
|
+
| `os` | System agy runs on: Windows, macOS, Linux or WSL |
|
|
162
|
+
| `host` | Current user and short hostname from the OS (`alex@devbox`) |
|
|
162
163
|
| `customText`, `exec` | Texte personnalisé ou résultat d’une [commande shell](docs/configuration.md#shell-command-widget-exec) |
|
|
163
164
|
|
|
164
165
|
Un widget qui n’a rien à afficher se masque automatiquement. Vous pouvez personnaliser sa couleur, masquer son libellé ou définir ses propres seuils d’alerte : consultez la [documentation de configuration](docs/configuration.md).
|
|
@@ -223,6 +224,7 @@ Merci à toutes les personnes ayant contribué au projet :
|
|
|
223
224
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/yuefdev"><img src="https://avatars.githubusercontent.com/u/120668197?v=4&s=160" width="80" height="80" alt="Yusuf Efe"/><br /><sub><b>Yusuf Efe</b></sub></a></td>
|
|
224
225
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/hiyouwhatsapp"><img src="https://avatars.githubusercontent.com/u/89997383?v=4&s=160" width="80" height="80" alt="hiyouwhatsapp"/><br /><sub><b>hiyouwhatsapp</b></sub></a></td>
|
|
225
226
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dharamdan01"><img src="https://avatars.githubusercontent.com/u/188893946?v=4&s=160" width="80" height="80" alt="dharamdan01"/><br /><sub><b>dharamdan01</b></sub></a></td>
|
|
227
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Ashuge11"><img src="https://avatars.githubusercontent.com/u/210247942?v=4&s=160" width="80" height="80" alt="Ashvini Sundge"/><br /><sub><b>Ashvini Sundge</b></sub></a></td>
|
|
226
228
|
</tr>
|
|
227
229
|
</tbody>
|
|
228
230
|
</table>
|
package/README.ja.md
CHANGED
|
@@ -2,20 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
[English](README.md) | [简体中文](README.zh-CN.md) | **日本語** | [Français](README.fr.md)
|
|
4
4
|
|
|
5
|
-
[](https://github.com/wassim-azi/agy-powerline/actions/workflows/ci.yml)
|
|
6
|
-
[](https://github.com/wassim-azi/agy-powerline/actions/workflows/codeql.yml)
|
|
7
5
|
[](https://www.npmjs.com/package/agy-powerline)
|
|
8
6
|
[](https://www.npmjs.com/package/agy-powerline)
|
|
9
7
|
[](https://github.com/wassim-azi/agy-powerline/stargazers)
|
|
10
|
-
[](docs/install.md)
|
|
13
|
-
[](docs/install.md)
|
|
14
|
-
[](docs/install.md)
|
|
15
|
-
[](https://opensource.org/licenses/MIT)
|
|
16
|
-
[](#プライバシーとセキュリティ)
|
|
8
|
+
[](https://github.com/wassim-azi/agy-powerline/actions/workflows/ci.yml)
|
|
9
|
+
[](https://github.com/wassim-azi/agy-powerline/actions/workflows/codeql.yml)
|
|
17
10
|
[](https://scorecard.dev/viewer/?uri=github.com/wassim-azi/agy-powerline)
|
|
18
11
|
[](https://www.bestpractices.dev/projects/15655)
|
|
12
|
+
[](#プライバシーとセキュリティ)
|
|
13
|
+
[](docs/install.md)
|
|
14
|
+
[](https://opensource.org/licenses/MIT)
|
|
15
|
+
[](https://codespaces.new/wassim-azi/agy-powerline?quickstart=1)
|
|
16
|
+
[](https://agy-powerline.com/configure/)
|
|
19
17
|
[](https://github.com/Piebald-AI/awesome-gemini-cli)
|
|
20
18
|
|
|
21
19
|
> この文書は英語版 [README](README.md) の翻訳で、最新の内容に追いついていない場合があります。内容が異なる場合は英語版が優先されます。詳しいドキュメント([`docs/`](docs/))は英語版のみです。
|
|
@@ -142,6 +140,7 @@ Nerd Font のないターミナルでは、ASCII モードをオンにしてく
|
|
|
142
140
|
| ウィジェット | 表示内容 |
|
|
143
141
|
| ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
|
|
144
142
|
| `model` | 使用中のモデル |
|
|
143
|
+
| `clock` | Current local time (12/24-hour format set under `clock`) |
|
|
145
144
|
| `fiveHourBar`、`weeklyBar` | 5h / 7d クォータの残りをメーターで表示([ペースマーカー](docs/configuration.md#quota-pace-marker)付き) |
|
|
146
145
|
| `fiveHourPct`、`weeklyPct` | 5h / 7d クォータの残りをパーセントで表示 |
|
|
147
146
|
| `fiveHourReset`、`weeklyReset` | クォータがリセットされるまでの時間、またはリセット時刻 |
|
|
@@ -159,6 +158,8 @@ Nerd Font のないターミナルでは、ASCII モードをオンにしてく
|
|
|
159
158
|
| `totalTokens`、`cacheHit`、`cacheRead`、`cacheCreate` | セッションのトークン数とプロンプトキャッシュの使用状況 |
|
|
160
159
|
| `tokensToday`、`tokensWeek` | 今日と過去 7 日間のトークン使用量(すべての会話、Node 22.13 以降) |
|
|
161
160
|
| `ram` | マシンのメモリ使用量 |
|
|
161
|
+
| `os` | System agy runs on: Windows, macOS, Linux or WSL |
|
|
162
|
+
| `host` | Current user and short hostname from the OS (`alex@devbox`) |
|
|
162
163
|
| `customText`、`exec` | 任意のテキスト、または [シェルコマンド](docs/configuration.md#shell-command-widget-exec)の出力 |
|
|
163
164
|
|
|
164
165
|
表示する内容のないウィジェットは自動的に隠れます。ウィジェットごとに色を変えたり、ラベルを外したり、独自の警告しきい値を設定したりできます。詳しくは [Configuration](docs/configuration.md) を参照してください。
|
|
@@ -223,6 +224,7 @@ npx agy-powerline doctor # すべてが最新か確認
|
|
|
223
224
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/yuefdev"><img src="https://avatars.githubusercontent.com/u/120668197?v=4&s=160" width="80" height="80" alt="Yusuf Efe"/><br /><sub><b>Yusuf Efe</b></sub></a></td>
|
|
224
225
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/hiyouwhatsapp"><img src="https://avatars.githubusercontent.com/u/89997383?v=4&s=160" width="80" height="80" alt="hiyouwhatsapp"/><br /><sub><b>hiyouwhatsapp</b></sub></a></td>
|
|
225
226
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dharamdan01"><img src="https://avatars.githubusercontent.com/u/188893946?v=4&s=160" width="80" height="80" alt="dharamdan01"/><br /><sub><b>dharamdan01</b></sub></a></td>
|
|
227
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Ashuge11"><img src="https://avatars.githubusercontent.com/u/210247942?v=4&s=160" width="80" height="80" alt="Ashvini Sundge"/><br /><sub><b>Ashvini Sundge</b></sub></a></td>
|
|
226
228
|
</tr>
|
|
227
229
|
</tbody>
|
|
228
230
|
</table>
|
package/README.md
CHANGED
|
@@ -2,23 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
**English** | [简体中文](README.zh-CN.md) | [日本語](README.ja.md) | [Français](README.fr.md)
|
|
4
4
|
|
|
5
|
-
[](https://github.com/wassim-azi/agy-powerline/actions/workflows/ci.yml)
|
|
6
|
-
[](https://github.com/wassim-azi/agy-powerline/actions/workflows/codeql.yml)
|
|
7
5
|
[](https://www.npmjs.com/package/agy-powerline)
|
|
8
6
|
[](https://www.npmjs.com/package/agy-powerline)
|
|
9
7
|
[](https://github.com/wassim-azi/agy-powerline/stargazers)
|
|
10
|
-
[](docs/install.md)
|
|
13
|
-
[](docs/install.md)
|
|
14
|
-
[](docs/install.md)
|
|
15
|
-
[](https://opensource.org/licenses/MIT)
|
|
16
|
-
[](#privacy-and-security)
|
|
8
|
+
[](https://github.com/wassim-azi/agy-powerline/actions/workflows/ci.yml)
|
|
9
|
+
[](https://github.com/wassim-azi/agy-powerline/actions/workflows/codeql.yml)
|
|
17
10
|
[](https://scorecard.dev/viewer/?uri=github.com/wassim-azi/agy-powerline)
|
|
18
11
|
[](https://www.bestpractices.dev/projects/15655)
|
|
12
|
+
[](#privacy-and-security)
|
|
13
|
+
[](docs/install.md)
|
|
14
|
+
[](https://opensource.org/licenses/MIT)
|
|
15
|
+
[](https://codespaces.new/wassim-azi/agy-powerline?quickstart=1)
|
|
16
|
+
[](https://agy-powerline.com/configure/)
|
|
19
17
|
[](https://github.com/Piebald-AI/awesome-gemini-cli)
|
|
20
18
|
|
|
21
|
-
**A fast, configurable statusline for Google Antigravity
|
|
19
|
+
**A fast, configurable agy statusline for Google Antigravity CLI.**
|
|
22
20
|
|
|
23
21
|
See your model, Gemini 5h/7d, Claude/GPT and Argon quotas, context window, git branch and more at a glance. Pick widgets, themes and layout from an interactive editor. One command to install, no dependencies.
|
|
24
22
|
|
|
@@ -153,6 +151,7 @@ Preview them all in the [theme gallery](https://agy-powerline.com/) or with `npx
|
|
|
153
151
|
| Widget | Shows |
|
|
154
152
|
| ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
|
|
155
153
|
| `model` | The model in use |
|
|
154
|
+
| `clock` | The current local time (12/24-hour format set under `clock`) |
|
|
156
155
|
| `fiveHourBar`, `weeklyBar` | 5h / 7d quota left as a meter, with a [pace marker](docs/configuration.md#quota-pace-marker) |
|
|
157
156
|
| `fiveHourPct`, `weeklyPct` | 5h / 7d quota left as a percentage |
|
|
158
157
|
| `fiveHourReset`, `weeklyReset` | Time until the quota resets, or the reset time |
|
|
@@ -170,9 +169,11 @@ Preview them all in the [theme gallery](https://agy-powerline.com/) or with `npx
|
|
|
170
169
|
| `totalTokens`, `cacheHit`, `cacheRead`, `cacheCreate` | Session tokens and prompt cache usage |
|
|
171
170
|
| `tokensToday`, `tokensWeek` | Tokens used today and over the last 7 days, all conversations (Node 22.13+) |
|
|
172
171
|
| `ram` | Memory used on your machine |
|
|
172
|
+
| `os` | System agy runs on: Windows, macOS, Linux or WSL |
|
|
173
|
+
| `host` | Current user and short hostname from the OS (`alex@devbox`) |
|
|
173
174
|
| `customText`, `exec` | Your own text, or the output of a [shell command](docs/configuration.md#shell-command-widget-exec) |
|
|
174
175
|
|
|
175
|
-
A widget with nothing to show hides itself. Widgets can be recolored, made label-free or given their own alert thresholds: see [Configuration](docs/configuration.md).
|
|
176
|
+
A widget with nothing to show hides itself. Widgets can be recolored, renamed, given another icon, made label-free or given their own alert thresholds: see [Configuration](docs/configuration.md).
|
|
176
177
|
|
|
177
178
|
## Commands
|
|
178
179
|
|
|
@@ -234,6 +235,7 @@ Thanks to everyone who has contributed:
|
|
|
234
235
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/yuefdev"><img src="https://avatars.githubusercontent.com/u/120668197?v=4&s=160" width="80" height="80" alt="Yusuf Efe"/><br /><sub><b>Yusuf Efe</b></sub></a></td>
|
|
235
236
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/hiyouwhatsapp"><img src="https://avatars.githubusercontent.com/u/89997383?v=4&s=160" width="80" height="80" alt="hiyouwhatsapp"/><br /><sub><b>hiyouwhatsapp</b></sub></a></td>
|
|
236
237
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dharamdan01"><img src="https://avatars.githubusercontent.com/u/188893946?v=4&s=160" width="80" height="80" alt="dharamdan01"/><br /><sub><b>dharamdan01</b></sub></a></td>
|
|
238
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Ashuge11"><img src="https://avatars.githubusercontent.com/u/210247942?v=4&s=160" width="80" height="80" alt="Ashvini Sundge"/><br /><sub><b>Ashvini Sundge</b></sub></a></td>
|
|
237
239
|
</tr>
|
|
238
240
|
</tbody>
|
|
239
241
|
</table>
|
package/README.zh-CN.md
CHANGED
|
@@ -2,20 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
[English](README.md) | **简体中文** | [日本語](README.ja.md) | [Français](README.fr.md)
|
|
4
4
|
|
|
5
|
-
[](https://github.com/wassim-azi/agy-powerline/actions/workflows/ci.yml)
|
|
6
|
-
[](https://github.com/wassim-azi/agy-powerline/actions/workflows/codeql.yml)
|
|
7
5
|
[](https://www.npmjs.com/package/agy-powerline)
|
|
8
6
|
[](https://www.npmjs.com/package/agy-powerline)
|
|
9
7
|
[](https://github.com/wassim-azi/agy-powerline/stargazers)
|
|
10
|
-
[](docs/install.md)
|
|
13
|
-
[](docs/install.md)
|
|
14
|
-
[](docs/install.md)
|
|
15
|
-
[](https://opensource.org/licenses/MIT)
|
|
16
|
-
[](#隐私与安全)
|
|
8
|
+
[](https://github.com/wassim-azi/agy-powerline/actions/workflows/ci.yml)
|
|
9
|
+
[](https://github.com/wassim-azi/agy-powerline/actions/workflows/codeql.yml)
|
|
17
10
|
[](https://scorecard.dev/viewer/?uri=github.com/wassim-azi/agy-powerline)
|
|
18
11
|
[](https://www.bestpractices.dev/projects/15655)
|
|
12
|
+
[](#隐私与安全)
|
|
13
|
+
[](docs/install.md)
|
|
14
|
+
[](https://opensource.org/licenses/MIT)
|
|
15
|
+
[](https://codespaces.new/wassim-azi/agy-powerline?quickstart=1)
|
|
16
|
+
[](https://agy-powerline.com/configure/)
|
|
19
17
|
[](https://github.com/Piebald-AI/awesome-gemini-cli)
|
|
20
18
|
|
|
21
19
|
> 本文译自英文版 [README](README.md),可能落后于英文版;如有出入,以英文版为准。详细文档([`docs/`](docs/))仅提供英文版。
|
|
@@ -142,6 +140,7 @@ Install the agy-powerline statusline: run `npx agy-powerline init --yes`, then t
|
|
|
142
140
|
| 组件 | 显示内容 |
|
|
143
141
|
| ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
|
|
144
142
|
| `model` | 当前使用的模型 |
|
|
143
|
+
| `clock` | Current local time (12/24-hour format set under `clock`) |
|
|
145
144
|
| `fiveHourBar`、`weeklyBar` | 以进度条显示 5h / 7d 剩余配额,带[进度标记](docs/configuration.md#quota-pace-marker) |
|
|
146
145
|
| `fiveHourPct`、`weeklyPct` | 以百分比显示 5h / 7d 剩余配额 |
|
|
147
146
|
| `fiveHourReset`、`weeklyReset` | 距配额重置的时间,或重置时刻 |
|
|
@@ -159,6 +158,8 @@ Install the agy-powerline statusline: run `npx agy-powerline init --yes`, then t
|
|
|
159
158
|
| `totalTokens`、`cacheHit`、`cacheRead`、`cacheCreate` | 会话 token 数和提示缓存的使用情况 |
|
|
160
159
|
| `tokensToday`、`tokensWeek` | 今天和过去 7 天的 token 用量(所有对话,Node 22.13+) |
|
|
161
160
|
| `ram` | 本机已用内存 |
|
|
161
|
+
| `os` | System agy runs on: Windows, macOS, Linux or WSL |
|
|
162
|
+
| `host` | Current user and short hostname from the OS (`alex@devbox`) |
|
|
162
163
|
| `customText`、`exec` | 你自己的文本,或 [shell 命令](docs/configuration.md#shell-command-widget-exec)的输出 |
|
|
163
164
|
|
|
164
165
|
没有内容可显示的组件会自动隐藏。组件可以更改颜色、去掉标签,或设置自己的告警阈值:见 [Configuration](docs/configuration.md)。
|
|
@@ -223,6 +224,7 @@ npx agy-powerline doctor # 检查一切是否为最新
|
|
|
223
224
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/yuefdev"><img src="https://avatars.githubusercontent.com/u/120668197?v=4&s=160" width="80" height="80" alt="Yusuf Efe"/><br /><sub><b>Yusuf Efe</b></sub></a></td>
|
|
224
225
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/hiyouwhatsapp"><img src="https://avatars.githubusercontent.com/u/89997383?v=4&s=160" width="80" height="80" alt="hiyouwhatsapp"/><br /><sub><b>hiyouwhatsapp</b></sub></a></td>
|
|
225
226
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dharamdan01"><img src="https://avatars.githubusercontent.com/u/188893946?v=4&s=160" width="80" height="80" alt="dharamdan01"/><br /><sub><b>dharamdan01</b></sub></a></td>
|
|
227
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Ashuge11"><img src="https://avatars.githubusercontent.com/u/210247942?v=4&s=160" width="80" height="80" alt="Ashvini Sundge"/><br /><sub><b>Ashvini Sundge</b></sub></a></td>
|
|
226
228
|
</tr>
|
|
227
229
|
</tbody>
|
|
228
230
|
</table>
|
package/llms.txt
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# agy-powerline
|
|
2
|
+
|
|
3
|
+
> A fast, configurable agy statusline for Google Antigravity CLI (`agy`). Requires Node.js 20+; has no runtime dependencies or network calls.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
- `npx agy-powerline init` installs the statusline and wires it into Antigravity settings.
|
|
7
|
+
- Restart `agy` once after `init`; `npx agy-powerline doctor` checks the installation.
|
|
8
|
+
|
|
9
|
+
## Commands
|
|
10
|
+
- `npx agy-powerline init [--yes]` — Install or update the statusline.
|
|
11
|
+
- `npx agy-powerline configure` — Open the editor (alias `config`).
|
|
12
|
+
- `npx agy-powerline preset <name>` — Apply a preset (`--list` to see them).
|
|
13
|
+
- `npx agy-powerline theme <name>` — Switch theme (`--list`, `--gallery`).
|
|
14
|
+
- `npx agy-powerline gradient <name>` — Color rows with a gradient (`--list`, `off`); presets: `aurora`, `sunset`, `ocean`, `forest`, `neon`, `candy`, `rainbow`, `mono`.
|
|
15
|
+
- `npx agy-powerline layout <pills|lines|classic>` — Switch layout.
|
|
16
|
+
- `npx agy-powerline caps <style>` — Switch the pill shape: `round`, `angled`, `slanted`, `flat`.
|
|
17
|
+
- `npx agy-powerline export [file]` — Save your config to a file, to back it up or share it.
|
|
18
|
+
- `npx agy-powerline import <file>` — Load a config after showing changes (`--merge`).
|
|
19
|
+
- `npx agy-powerline doctor` — Check the install and explain what's wrong.
|
|
20
|
+
- `npx agy-powerline report` — Write a privacy-safe bug report.
|
|
21
|
+
- `npx agy-powerline uninstall [--delete]` — Remove it from agy (`--delete` also removes its files).
|
|
22
|
+
- `npx agy-powerline render --demo` — Print the bar with sample data.
|
|
23
|
+
|
|
24
|
+
## Presets
|
|
25
|
+
- `default` — Model, context, git and quota meters.
|
|
26
|
+
- `compact` — One-line model, quota, context and git.
|
|
27
|
+
- `agent` — Agent state, mode, sandbox and artifacts.
|
|
28
|
+
- `git` — Project, branch, worktree, stash and file changes.
|
|
29
|
+
- `tokens` — Context, session tokens and cache usage.
|
|
30
|
+
- `quotas` — Plan and quota meters.
|
|
31
|
+
- `full` — Session, project, git, context, tokens and quotas.
|
|
32
|
+
|
|
33
|
+
## Themes
|
|
34
|
+
- `dark-aurora`
|
|
35
|
+
- `dark-ocean`
|
|
36
|
+
- `dark-ember`
|
|
37
|
+
- `dark-forest`
|
|
38
|
+
- `dark-neon`
|
|
39
|
+
- `dark-mono`
|
|
40
|
+
- `dark-nocturne`
|
|
41
|
+
- `dark-onyx`
|
|
42
|
+
- `dark-metro`
|
|
43
|
+
- `dark-macchiato`
|
|
44
|
+
- `light-paper`
|
|
45
|
+
- `light-sky`
|
|
46
|
+
- `light-sunset`
|
|
47
|
+
- `light-cream`
|
|
48
|
+
- `colorblind-dark`
|
|
49
|
+
- `colorblind-light`
|
|
50
|
+
- `custom` — Your own colors.
|
|
51
|
+
|
|
52
|
+
## Layouts
|
|
53
|
+
- `pills` — Powerline-style capsules.
|
|
54
|
+
- `lines` — Plain colored text.
|
|
55
|
+
- `classic` — Colored text with `|` dividers and block meters.
|
|
56
|
+
|
|
57
|
+
## Widgets
|
|
58
|
+
- `model` — The model in use.
|
|
59
|
+
- `quota` — The quota closest to running out, with its reset.
|
|
60
|
+
- `fiveHourBar` — 5-hour quota left as a pace-marked meter.
|
|
61
|
+
- `fiveHourPct` — 5-hour quota left as a percentage.
|
|
62
|
+
- `fiveHourReset` — Time until the 5-hour quota resets, or its reset time.
|
|
63
|
+
- `weeklyBar` — 7-day quota left as a pace-marked meter.
|
|
64
|
+
- `weeklyPct` — 7-day quota left as a percentage.
|
|
65
|
+
- `weeklyReset` — Time until the 7-day quota resets, or its reset time.
|
|
66
|
+
- `thirdPartyFiveHour` — Third-party 5-hour quota left.
|
|
67
|
+
- `thirdPartyWeekly` — Third-party 7-day quota left.
|
|
68
|
+
- `argonWeekly` — Gemini 4 Argon's weekly quota (Google AI Pro).
|
|
69
|
+
- `argonReset` — Time until Argon's weekly quota resets.
|
|
70
|
+
- `context` — Context window used as a meter.
|
|
71
|
+
- `contextPct` — Context window used as a percentage.
|
|
72
|
+
- `contextTokens` — Context tokens used out of the window size.
|
|
73
|
+
- `cwd` — Current folder.
|
|
74
|
+
- `project` — Project folder name.
|
|
75
|
+
- `git` — Branch, uncommitted changes and ahead/behind counts.
|
|
76
|
+
- `gitChanges` — Lines added and removed.
|
|
77
|
+
- `gitFiles` — Staged, modified, untracked and conflicted file counts.
|
|
78
|
+
- `gitSha` — Short ID of the checked-out commit.
|
|
79
|
+
- `gitStash` — Number of stashes.
|
|
80
|
+
- `gitWorktree` — Name of the linked worktree.
|
|
81
|
+
- `plan` — Antigravity plan.
|
|
82
|
+
- `agentState` — What the agent is doing.
|
|
83
|
+
- `sandbox` — Sandbox and network restrictions.
|
|
84
|
+
- `artifacts` — Number of artifacts.
|
|
85
|
+
- `tasks` — Running subagents and background tasks.
|
|
86
|
+
- `mode` — Approval mode and Vim mode.
|
|
87
|
+
- `title` — Current conversation title.
|
|
88
|
+
- `ram` — Memory used on the machine.
|
|
89
|
+
- `os` — Operating system running agy (Windows, macOS, Linux or WSL).
|
|
90
|
+
- `host` — Current user and short hostname from the OS.
|
|
91
|
+
- `version` — Antigravity CLI version.
|
|
92
|
+
- `cacheRead` — Prompt-cache tokens read.
|
|
93
|
+
- `cacheCreate` — Prompt-cache tokens created.
|
|
94
|
+
- `cacheHit` — Prompt-cache usage.
|
|
95
|
+
- `totalTokens` — Input and output tokens for the session.
|
|
96
|
+
- `clock` — Current local time.
|
|
97
|
+
- `tokensToday` — Tokens used today across conversations.
|
|
98
|
+
- `tokensWeek` — Tokens used over the last 7 days.
|
|
99
|
+
- `exec` — Output from a shell command you configure.
|
|
100
|
+
- `customText` — Your own text.
|
|
101
|
+
|
|
102
|
+
## Config
|
|
103
|
+
Default: `~/.agy-powerline/statusline.config.json`; with `AGY_POWERLINE_HOME`, use `$AGY_POWERLINE_HOME/statusline.config.json`. See [Configuration](https://github.com/wassim-azi/agy-powerline/blob/develop/docs/configuration.md).
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"theme": "dark-aurora",
|
|
107
|
+
"layout": "pills",
|
|
108
|
+
"ascii": false,
|
|
109
|
+
"widgets": [
|
|
110
|
+
{ "id": "model" },
|
|
111
|
+
{ "id": "context" },
|
|
112
|
+
{ "id": "git" }
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Rules for assistants
|
|
118
|
+
- Do not edit `~/.gemini/antigravity-cli/settings.json` by hand; run `npx agy-powerline init`.
|
|
119
|
+
- `configure` is an interactive TUI; do not run it on the user's behalf.
|
|
120
|
+
- `import` asks before adding shell commands; never pass `--allow-exec` without approval of the exact commands.
|
|
121
|
+
|
|
122
|
+
## Docs
|
|
123
|
+
- [README](https://github.com/wassim-azi/agy-powerline#readme)
|
|
124
|
+
- [Configuration](https://github.com/wassim-azi/agy-powerline/blob/develop/docs/configuration.md)
|
|
125
|
+
- [Install](https://github.com/wassim-azi/agy-powerline/blob/develop/docs/install.md)
|
|
126
|
+
- [Troubleshooting](https://github.com/wassim-azi/agy-powerline/blob/develop/docs/troubleshooting.md)
|
|
127
|
+
- [Security](https://github.com/wassim-azi/agy-powerline/blob/develop/SECURITY.md)
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agy-powerline",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.5.0",
|
|
4
|
+
"description": "agy statusline for Google Antigravity CLI: live Gemini, Claude/GPT and Argon quota pacing, git, themes and an interactive TUI configurator",
|
|
5
5
|
"bin": {
|
|
6
6
|
"agy-powerline": "src/index.js"
|
|
7
7
|
},
|
|
@@ -10,13 +10,14 @@
|
|
|
10
10
|
"type": "git",
|
|
11
11
|
"url": "https://github.com/wassim-azi/agy-powerline.git"
|
|
12
12
|
},
|
|
13
|
-
"homepage": "https://
|
|
13
|
+
"homepage": "https://agy-powerline.com/",
|
|
14
14
|
"bugs": {
|
|
15
15
|
"url": "https://github.com/wassim-azi/agy-powerline/issues"
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
18
|
"src",
|
|
19
19
|
"README.md",
|
|
20
|
+
"llms.txt",
|
|
20
21
|
"CHANGELOG.md",
|
|
21
22
|
"LICENSE"
|
|
22
23
|
],
|
|
@@ -50,6 +51,8 @@
|
|
|
50
51
|
"agy",
|
|
51
52
|
"agy-cli",
|
|
52
53
|
"agy-powerline",
|
|
54
|
+
"agy-statusline",
|
|
55
|
+
"antigravity-statusline",
|
|
53
56
|
"statusline",
|
|
54
57
|
"status-line",
|
|
55
58
|
"powerline",
|
package/src/cli/configure.js
CHANGED
|
@@ -24,7 +24,7 @@ const {
|
|
|
24
24
|
} = require("../lib/shared");
|
|
25
25
|
const { resolveInstallDir } = require("../lib/paths");
|
|
26
26
|
const { WIDGET_TAGS } = require("../lib/widget-style");
|
|
27
|
-
const { editFields: getEditFields } = require("../lib/widget-options");
|
|
27
|
+
const { editFields: getEditFields, stepNumberField } = require("../lib/widget-options");
|
|
28
28
|
const { loadEditableConfig } = require("./config-guard");
|
|
29
29
|
const {
|
|
30
30
|
parseColor,
|
|
@@ -855,8 +855,7 @@ function setOption(key, value) {
|
|
|
855
855
|
function stepOption(field, direction) {
|
|
856
856
|
const current = editedWidget()[field.key];
|
|
857
857
|
if (field.number !== undefined) {
|
|
858
|
-
|
|
859
|
-
setOption(field.key, Math.max(0, Math.min(100, from + direction * 5)));
|
|
858
|
+
setOption(field.key, stepNumberField(field, current, direction));
|
|
860
859
|
return;
|
|
861
860
|
}
|
|
862
861
|
const index = field.values.findIndex((value) => value === current);
|
|
@@ -876,11 +875,12 @@ function onEdit(key) {
|
|
|
876
875
|
setOption(field.key, text || undefined);
|
|
877
876
|
textInput = null;
|
|
878
877
|
} else if (key.name === "backspace" || key.name === "delete") {
|
|
879
|
-
textInput = textInput.slice(0, -1);
|
|
880
|
-
} else if (key.sequence && key.
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
878
|
+
textInput = Array.from(textInput).slice(0, -1).join("");
|
|
879
|
+
} else if (key.sequence && !key.ctrl && !key.meta && !/[\x00-\x1f\x7f]/.test(key.sequence)) {
|
|
880
|
+
// An emoji arrives as one key with two UTF-16 units, so count code points.
|
|
881
|
+
const max = field?.maxLength ?? TEXT_MAX;
|
|
882
|
+
if (Array.from(textInput + key.sequence).length <= max) {
|
|
883
|
+
textInput += key.sequence;
|
|
884
884
|
}
|
|
885
885
|
}
|
|
886
886
|
return;
|
package/src/cli/doctor.js
CHANGED
|
@@ -22,6 +22,7 @@ const {
|
|
|
22
22
|
readConfigFile,
|
|
23
23
|
setConfigDir,
|
|
24
24
|
} = require("../lib/shared");
|
|
25
|
+
const { currentUserAndHost } = require("../lib/session");
|
|
25
26
|
const { runStatuslineCommand } = require("../lib/run");
|
|
26
27
|
const { detectColorDepth } = require("../lib/colors");
|
|
27
28
|
const { readLog, getLogPath } = require("../lib/log");
|
|
@@ -55,6 +56,20 @@ function tildify(text) {
|
|
|
55
56
|
return out;
|
|
56
57
|
}
|
|
57
58
|
|
|
59
|
+
// The bar preview can hold the host widget's user@host, and doctor output
|
|
60
|
+
// gets pasted into issues: the names become user and host.
|
|
61
|
+
function maskHost(text, { username, hostname } = currentUserAndHost()) {
|
|
62
|
+
let out = String(text);
|
|
63
|
+
if (!hostname) {
|
|
64
|
+
return out;
|
|
65
|
+
}
|
|
66
|
+
if (username) {
|
|
67
|
+
out = out.split(`${username}@${hostname}`).join("user@host");
|
|
68
|
+
}
|
|
69
|
+
const escaped = hostname.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
70
|
+
return out.replace(new RegExp(`(^|[^\\w.-])${escaped}(?![\\w.-])`, "g"), "$1host");
|
|
71
|
+
}
|
|
72
|
+
|
|
58
73
|
function stripAnsi(text) {
|
|
59
74
|
return String(text).replace(/\x1b\[[0-9;]*m/g, "");
|
|
60
75
|
}
|
|
@@ -216,7 +231,7 @@ async function doctorCommand(options = {}) {
|
|
|
216
231
|
line("spawn", `${GREEN}ok${RESET} (${ms}ms)`);
|
|
217
232
|
// The flex separator pads to the terminal width; shrink those gaps so
|
|
218
233
|
// the widgets fit in the preview on wide terminals.
|
|
219
|
-
line("output", preview.replace(/ {3,}/g, " ").slice(0, 120));
|
|
234
|
+
line("output", maskHost(preview.replace(/ {3,}/g, " ")).slice(0, 120));
|
|
220
235
|
} else {
|
|
221
236
|
failed += 1;
|
|
222
237
|
line("spawn", `${RED}failed${RESET} exit ${result.code} (${ms}ms)`);
|
|
@@ -244,4 +259,5 @@ async function doctorCommand(options = {}) {
|
|
|
244
259
|
|
|
245
260
|
module.exports = {
|
|
246
261
|
doctorCommand,
|
|
262
|
+
maskHost,
|
|
247
263
|
};
|
package/src/lib/catalog.js
CHANGED
|
@@ -122,6 +122,20 @@ const WIDGET_CATALOG = [
|
|
|
122
122
|
description: "name of the project folder",
|
|
123
123
|
summary: "project folder name",
|
|
124
124
|
},
|
|
125
|
+
{
|
|
126
|
+
id: "os",
|
|
127
|
+
label: "Operating System",
|
|
128
|
+
unique: true,
|
|
129
|
+
description: "system agy runs on, including WSL",
|
|
130
|
+
summary: "system running agy",
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
id: "host",
|
|
134
|
+
label: "Host",
|
|
135
|
+
unique: true,
|
|
136
|
+
description: "current user and short host name",
|
|
137
|
+
summary: "current user and host",
|
|
138
|
+
},
|
|
125
139
|
{
|
|
126
140
|
id: "git",
|
|
127
141
|
label: "VCS Branch",
|
|
@@ -257,6 +271,13 @@ const WIDGET_CATALOG = [
|
|
|
257
271
|
description: "session tokens, as a total or split into input and output",
|
|
258
272
|
summary: "session tokens, total or split",
|
|
259
273
|
},
|
|
274
|
+
{
|
|
275
|
+
id: "clock",
|
|
276
|
+
label: "Clock",
|
|
277
|
+
unique: true,
|
|
278
|
+
description: "current local time, in the format set under clock",
|
|
279
|
+
summary: "current local time",
|
|
280
|
+
},
|
|
260
281
|
{
|
|
261
282
|
id: "tokensToday",
|
|
262
283
|
label: "Tokens Today",
|
package/src/lib/config.js
CHANGED
|
@@ -39,6 +39,8 @@ const VALID_WIDGET_IDS = new Set([
|
|
|
39
39
|
"contextTokens",
|
|
40
40
|
"cwd",
|
|
41
41
|
"project",
|
|
42
|
+
"os",
|
|
43
|
+
"host",
|
|
42
44
|
"git",
|
|
43
45
|
"gitChanges",
|
|
44
46
|
"gitFiles",
|
|
@@ -58,6 +60,7 @@ const VALID_WIDGET_IDS = new Set([
|
|
|
58
60
|
"cacheCreate",
|
|
59
61
|
"cacheHit",
|
|
60
62
|
"totalTokens",
|
|
63
|
+
"clock",
|
|
61
64
|
"tokensToday",
|
|
62
65
|
"tokensWeek",
|
|
63
66
|
"exec",
|
package/src/lib/fit.js
CHANGED
|
@@ -6,9 +6,12 @@ const { charWidth, visibleWidth } = require("./formatters");
|
|
|
6
6
|
// first entry first. Ids not listed (custom ones) go before all of them.
|
|
7
7
|
const DROP_ORDER = [
|
|
8
8
|
"customText",
|
|
9
|
+
"os",
|
|
10
|
+
"host",
|
|
9
11
|
"gitStash",
|
|
10
12
|
"gitWorktree",
|
|
11
13
|
"title",
|
|
14
|
+
"clock",
|
|
12
15
|
"version",
|
|
13
16
|
"cacheCreate",
|
|
14
17
|
"cacheRead",
|