@xzzpig/pi-starline 0.5.1 → 0.7.1
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/FORK-CHANGELOG.md +19 -0
- package/README.md +68 -181
- package/extensions/starline/config.ts +156 -326
- package/extensions/starline/context-live.ts +33 -0
- package/extensions/starline/editor-cursor.ts +3 -0
- package/extensions/starline/extension-status.ts +9 -5
- package/extensions/starline/footer.ts +331 -528
- package/extensions/starline/fork-editor-cursor.ts +14 -0
- package/extensions/starline/format.ts +151 -20
- package/extensions/starline/git-live.ts +20 -0
- package/extensions/starline/git-probe.ts +40 -0
- package/extensions/starline/git-segments.ts +175 -0
- package/extensions/starline/git.ts +71 -0
- package/extensions/starline/icons.ts +17 -0
- package/extensions/starline/index.ts +188 -91
- package/extensions/starline/live-session.ts +164 -0
- package/extensions/starline/live-tps.ts +165 -0
- package/extensions/starline/mouse/bubble-dismiss.ts +82 -0
- package/extensions/starline/mouse/cursor-marker.ts +69 -0
- package/extensions/starline/mouse/editor-hit-test.ts +6 -3
- package/extensions/starline/mouse/external-layer.ts +42 -0
- package/extensions/starline/mouse/fork-native-clipboard.ts +57 -0
- package/extensions/starline/mouse/fork-pill-mouse.ts +19 -0
- package/extensions/starline/mouse/fork-pointer-coordination.ts +10 -0
- package/extensions/starline/mouse/fork-transcript-copy.ts +54 -0
- package/extensions/starline/mouse/fork-wheel-compat.ts +22 -0
- package/extensions/starline/mouse/hint.ts +4 -4
- package/extensions/starline/mouse/index.ts +54 -24
- package/extensions/starline/mouse/pointer-events.ts +73 -0
- package/extensions/starline/mouse/pointer-shape.ts +138 -0
- package/extensions/starline/mouse/transcript-copy.ts +76 -33
- package/extensions/starline/paste-collapse.ts +52 -13
- package/extensions/starline/pill-actions.ts +590 -0
- package/extensions/starline/pill-anchors.ts +26 -0
- package/extensions/starline/pill-api.ts +80 -0
- package/extensions/starline/pill-bubble.ts +607 -0
- package/extensions/starline/pill-config.ts +67 -9
- package/extensions/starline/pill.ts +102 -20
- package/extensions/starline/project-probe.ts +79 -0
- package/extensions/starline/prototype-patch-registry.ts +6 -1
- package/extensions/starline/queue-rows.ts +43 -0
- package/extensions/starline/settings-command.ts +124 -177
- package/extensions/starline/subagent-fleet.ts +246 -0
- package/extensions/starline/turn-clock.ts +81 -0
- package/extensions/starline/ui.ts +297 -156
- package/extensions/starline/working-indicator.ts +189 -0
- package/package.json +6 -5
- package/types/pill-api.d.ts +115 -0
- package/extensions/starline/editor-metadata-format.ts +0 -259
- package/extensions/starline/footer-format.ts +0 -279
package/FORK-CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Fork release notes
|
|
2
2
|
|
|
3
|
+
## 0.7.1 — Pi cursor compatibility
|
|
4
|
+
|
|
5
|
+
- Restore `underline` and `terminal` editor cursor styles on Pi 1.2 and later while preserving the existing Pi 1.1 cursor path.
|
|
6
|
+
- The previous published fork version was 0.5.1. This release also includes the upstream syncs and fork changes recorded in 0.6.0 and 0.7.0 below.
|
|
7
|
+
|
|
8
|
+
## 0.7.0 — Upstream v0.9.0 sync
|
|
9
|
+
|
|
10
|
+
- Adopt the compact editor layout, `editorMinRows`, configurable pill row, live throughput, and turn timing. The old editor metadata row is removed and its status placement maps to the right-hand footer.
|
|
11
|
+
- Retain Starline's user-message renderer, its padding and colour settings, and the shared editor/message colour controls. If pi-tidy also styles messages, patch order can determine the visible renderer; set `tidy.userMessageStyle` to `"off"` to leave user messages to Starline.
|
|
12
|
+
- Preserve the fork's shared mouse, clipboard and wheel integrations, pi-zentui markers, and group-expand compatibility. Clean-copy supports the configured Starline rail alongside upstream pi-tidy frames.
|
|
13
|
+
|
|
14
|
+
## 0.6.0 — Upstream v0.6.1 sync
|
|
15
|
+
|
|
16
|
+
- Adopt upstream's pill-only status bar, clickable pills, bubbles and keyboard actions. The old text-footer configuration is removed.
|
|
17
|
+
- Keep the fork's `pi-mouse-events` consumer, component expansion and group-target compatibility. Pill pointer requests and click-away use the shared mouse layer rather than a second Starline mouse patch.
|
|
18
|
+
- Prefer Pi's native clipboard through the shared asynchronous copy slot when available; older v2 mouse-event publishers retain the existing OSC 52 fallback.
|
|
19
|
+
- Route editor-wheel input through the shared post-component slot using Pi's calculated delta, including acceleration and Alt-wheel, while retaining the earlier fallback for older v2 publishers.
|
|
20
|
+
- Ship upstream's public `types/pill-api.d.ts` along with the fork's built declarations and release notes.
|
|
21
|
+
|
|
3
22
|
## 0.5.1 — Release candidate
|
|
4
23
|
|
|
5
24
|
- Recognize the optional `@xzzpig/transcript-expand-target.v1` contract for group summary clicks. Invalid or absent providers fall back to the existing component resolver; no new mandatory package dependency or default-setting change.
|
package/README.md
CHANGED
|
@@ -1,228 +1,115 @@
|
|
|
1
1
|
# Starline
|
|
2
2
|
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="https://raw.githubusercontent.com/Andy8647/pi-starline/main/assets/cover.png" alt="pi-starline: a statusline you can click" width="840">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
3
7
|
A Starship-inspired statusline, Opencode-style editor chrome, and fullscreen mouse control for [Pi](https://pi.dev).
|
|
4
8
|
|
|
5
|
-
|
|
9
|
+
Starline makes Pi's fullscreen mode feel like a finished terminal app:
|
|
6
10
|
|
|
7
|
-
|
|
11
|
+
- **See the state:** a pill footer with directory, git, runtime, model, context and cost; click one for the numbers behind it.
|
|
12
|
+
- **Act on it:** click a pill to switch model or thinking level, see what is queued, or list running subagents.
|
|
13
|
+
- **Type comfortably:** a compact bordered input box, paste collapse, and a `ctrl+g` hint for your `$EDITOR`.
|
|
14
|
+
- **Drive with the mouse:** select and copy anywhere, click to move the caret, wheel to scroll the draft.
|
|
8
15
|
|
|
9
|
-
|
|
16
|
+
## Features
|
|
10
17
|
|
|
11
|
-
|
|
18
|
+
**Footer**
|
|
12
19
|
|
|
13
|
-
|
|
14
|
-
|
|
20
|
+
- Starship-style segments: directory, git, runtime (57 runtimes), model, context, cost, plus optional session name, `user@host`, time, OS, session duration and project version.
|
|
21
|
+
- A colour palette with `$name` references; the bar is built from `pill.segments`, in your order.
|
|
22
|
+
- One `git` pill: branch, dirty markers and any operation in progress together. Click it for the changed files, ahead/behind and stashes. The list is read-only, because an agent may be running in the same tree.
|
|
23
|
+
- One `context` pill: the percentage, and nothing else. Click it for the window size, tokens used, session in/out totals and the cache rate.
|
|
24
|
+
- Other extensions' statuses from `ctx.ui.setStatus()` as pills, on either side or in the middle.
|
|
25
|
+
- The model pill's icon spins while the agent works, and the pill counts the run's elapsed time; when the run ends the number stays as the total it reached.
|
|
26
|
+
- No git pill on the bar means no `git status`: the refresh only reads the repository when something on the bar shows it.
|
|
15
27
|
|
|
16
|
-
|
|
17
|
-
- **Type comfortably** — Opencode-style editor chrome: a clean bordered input box with accent rail and copy-friendly mode, model and provider inside the frame, paste collapse, and a `ctrl+g` hint pointing at your `$EDITOR` when a draft outgrows the box
|
|
18
|
-
- **Drive with the mouse** — fullscreen mouse control: select and copy anywhere, click a tool box to expand just it, click to move the caret, wheel to scroll the draft — [see Mouse](#mouse-fullscreen-control)
|
|
28
|
+
**Clickable pills**
|
|
19
29
|
|
|
20
|
-
|
|
30
|
+
- **Model:** pick from your scoped models (the ones ctrl+p cycles).
|
|
31
|
+
- **Thinking:** pick a level from the ones the model supports.
|
|
32
|
+
- **Queue:** an inbox icon and a count while messages wait; click to read them.
|
|
33
|
+
- **Subagents:** with [pi-subagents](https://github.com/nicobailon/pi-subagents), a count of running subagents; click for agent, model, time and tokens, live.
|
|
34
|
+
- **Your extension's pill:** a small published API lets any extension open the same bubble with its own content. See [Clickable pills for other extensions](https://github.com/Andy8647/pi-starline/blob/main/docs/pill-api.md).
|
|
35
|
+
- Clicking anywhere else on screen closes the bubble, and the click still does what it would have done: the caret moves, the line gets selected.
|
|
36
|
+
- Every action also runs from the keyboard as `/starline <name>`, and the pointer turns into a hand over anything clickable.
|
|
37
|
+
|
|
38
|
+
**Editor**
|
|
39
|
+
|
|
40
|
+
- Bordered input box with an accent rail, as tall as its text; paste, selection and `ctrl+g` hints ride its top rule. `editorMinRows` keeps it a fixed minimum height.
|
|
41
|
+
- This fork retains Starline's full-width user-message rails and their existing colour and padding settings. If pi-tidy also styles messages, the visible renderer can depend on load order; set `tidy.userMessageStyle` to `"off"` in Pi's `settings.json` to leave user messages to Starline.
|
|
42
|
+
- Copy-friendly mode drops the rail glyphs so terminal selection copies less chrome.
|
|
43
|
+
|
|
44
|
+
**Mouse** (Pi's `tuiMode: "fullscreen"`)
|
|
21
45
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
- Bordered input box with configurable accent rail and border colors
|
|
39
|
-
- Model name and provider displayed inside the editor frame
|
|
40
|
-
- Configurable model, provider, and thinking-level indicator colors
|
|
41
|
-
- Prompt-box-style user messages matching the Starline input chrome
|
|
42
|
-
- Copy-friendly mode hides editor and previous-message rail glyphs so terminal selection copies less chrome
|
|
43
|
-
|
|
44
|
-
### Mouse (fullscreen control)
|
|
45
|
-
|
|
46
|
-
The second half of the product: the statusline tells you where you are, the
|
|
47
|
-
mouse lets you act on what you see. Starline drives Pi 0.84's own renderer
|
|
48
|
-
(`tuiMode: "fullscreen"`) through the [`@xzzpig/pi-mouse-events`](https://www.npmjs.com/package/@xzzpig/pi-mouse-events)
|
|
49
|
-
extension, which owns the renderer prototype and dispatches mouse events to
|
|
50
|
-
components — the extension API stops at high-level hooks, and the selection
|
|
51
|
-
hint, click-to-expand and clean-copy all need to reach into the renderer
|
|
52
|
-
itself. Install it alongside Starline; without it Starline's mouse features
|
|
53
|
-
are simply off (everything else keeps working).
|
|
54
|
-
|
|
55
|
-
- **Select and copy anywhere.** Drag to select in the transcript or the input box; double-click a word (paths and kebab-case stay whole), triple-click a line. Releasing copies — or set Pi's `fullscreenCopyOnSelect: false` and the selection stays highlighted, waiting for the copy key ([Pi #7720](https://github.com/earendil-works/pi/issues/7720), shipped in Pi 0.84.4).
|
|
56
|
-
- **Clean copies.** Transcript selections drop Starline's rails, rule rows and pi-toolbox frame borders before they reach the clipboard; editor selections copy the draft's text, not the painted rows.
|
|
57
|
-
- **Selection hint.** A selection that is not auto-copying shows exactly how many characters the copy key (`ctrl+x` by default, whatever `app.message.copy` is bound to) will copy, and a selection inside the editor names your editor — `ctrl+g to edit in nvim`.
|
|
58
|
-
- **Click to expand one component.** A plain click anywhere on a tool box — title, output, hint row, borders — toggles just that box (MCP boxes included); bash boxes, skill blocks, branch summaries, compaction summaries and custom entries count too. The direction comes from the hint row when one is on screen and from the component's own state otherwise, so a box with no hint left once expanded still closes on a click. Only a plain click toggles: dragging across a box still selects and copies, a double-click still word-selects, and a click on a link still opens it.
|
|
59
|
-
- **Click to move the caret** in the input box; **backspace/delete remove a selected range**; the **wheel scrolls the draft** over the input box, and a draft taller than the box keeps the `ctrl+g` external-editor hint on screen.
|
|
60
|
-
|
|
61
|
-
0.2.x's `fixedEditor` config block was renamed to `mouse` (migrated
|
|
62
|
-
automatically, see [the changelog](CHANGELOG.md)); the fixed editor itself is
|
|
63
|
-
gone, superseded by Pi's fullscreen mode.
|
|
64
|
-
|
|
65
|
-
### Git Status Icons
|
|
66
|
-
|
|
67
|
-
<details>
|
|
68
|
-
<summary>The indicators and what they mean</summary>
|
|
69
|
-
|
|
70
|
-
| Icon | Meaning |
|
|
71
|
-
| ---- | ---------- |
|
|
72
|
-
| `!` | Modified |
|
|
73
|
-
| `?` | Untracked |
|
|
74
|
-
| `+` | Staged |
|
|
75
|
-
| `✘` | Deleted |
|
|
76
|
-
| `»` | Renamed |
|
|
77
|
-
| `=` | Conflicted |
|
|
78
|
-
| `$` | Stashed |
|
|
79
|
-
| `↑` | Ahead |
|
|
80
|
-
| `↓` | Behind |
|
|
81
|
-
| `⇕` | Diverged |
|
|
82
|
-
|
|
83
|
-
</details>
|
|
84
|
-
|
|
85
|
-
### Runtime Detection
|
|
86
|
-
|
|
87
|
-
Detects Starship Nerd Font runtime/language modules, uses the Starship Nerd Font symbols, and keeps Starship-style defaults such as `bold green` for Node.js. By default Starline maps those styles through your active Pi theme; switch the Starship/footer color source to `terminal` in `/starline` if you want your terminal colorscheme to supply the exact ANSI colors.
|
|
88
|
-
|
|
89
|
-
<details>
|
|
90
|
-
<summary>All 57 detected runtimes and how they are recognised</summary>
|
|
91
|
-
|
|
92
|
-
| Runtime/language | Detection examples |
|
|
93
|
-
| ---------------- | ------------------------------------------------------------- |
|
|
94
|
-
| Buf | `buf.yaml`, `buf.gen.yaml`, `buf.work.yaml` |
|
|
95
|
-
| Bun | `bun.lock`, `bun.lockb` |
|
|
96
|
-
| C | `.c`, `.h` files |
|
|
97
|
-
| C++ | `.cpp`, `.cc`, `.cxx`, `.hpp` files |
|
|
98
|
-
| CMake | `CMakeLists.txt`, `CMakeCache.txt` |
|
|
99
|
-
| COBOL | `.cbl`, `.cob` files |
|
|
100
|
-
| Conda | `CONDA_DEFAULT_ENV` environment |
|
|
101
|
-
| Crystal | `.cr` files, `shard.yml` |
|
|
102
|
-
| Dart | `.dart` files, `pubspec.yaml`, `.dart_tool/` |
|
|
103
|
-
| Deno | `deno.json`, `deno.jsonc`, `deno.lock` |
|
|
104
|
-
| .NET | `.csproj`, `.fsproj`, `global.json`, `Directory.Build.*` |
|
|
105
|
-
| Elixir | `mix.exs` |
|
|
106
|
-
| Elm | `.elm` files, `elm.json`, `elm-stuff/` |
|
|
107
|
-
| Erlang | `rebar.config`, `erlang.mk` |
|
|
108
|
-
| Fennel | `.fnl` files |
|
|
109
|
-
| Fortran | `.f`, `.f90`, `.f95`, `.f03`, `.f08`, `.f18`, `fpm.toml` |
|
|
110
|
-
| Gleam | `.gleam` files, `gleam.toml` |
|
|
111
|
-
| Go | `go.mod` |
|
|
112
|
-
| Gradle | `build.gradle`, `build.gradle.kts`, `gradle/` |
|
|
113
|
-
| Guix shell | `GUIX_ENVIRONMENT` environment |
|
|
114
|
-
| Haskell | `.hs`, `.cabal`, `stack.yaml`, `cabal.project` |
|
|
115
|
-
| Haxe | `.hx`, `.hxml`, `haxelib.json`, `.haxerc` |
|
|
116
|
-
| Helm | `helmfile.yaml`, `Chart.yaml` |
|
|
117
|
-
| Java | `.java-version` |
|
|
118
|
-
| Julia | `.jl` files, `Project.toml`, `Manifest.toml` |
|
|
119
|
-
| Kotlin | `.kt`, `.kts` files |
|
|
120
|
-
| Lua | `.lua` files, `stylua.toml`, `.luarc.json`, `lua/` dir |
|
|
121
|
-
| Maven | `pom.xml` |
|
|
122
|
-
| Meson | `MESON_DEVENV=1` and `MESON_PROJECT_NAME` environment |
|
|
123
|
-
| Mojo | `.mojo` files |
|
|
124
|
-
| Nim | `.nim`, `.nims`, `.nimble`, `nim.cfg` |
|
|
125
|
-
| Nix shell | `IN_NIX_SHELL=pure` or `IN_NIX_SHELL=impure` environment |
|
|
126
|
-
| Node.js | `package.json`, `.nvmrc`, `.node-version` |
|
|
127
|
-
| OCaml | `.opam`, `.ml`, `.mli`, `dune`, `_opam/`, `esy.lock/` |
|
|
128
|
-
| Odin | `.odin` files |
|
|
129
|
-
| OPA/Rego | `.rego` files |
|
|
130
|
-
| Perl | `.pl`, `.pm`, `Makefile.PL`, `cpanfile`, `META.*` |
|
|
131
|
-
| PHP | `composer.json` |
|
|
132
|
-
| Pixi | `pixi.toml`, `pixi.lock`, `PIXI_ENVIRONMENT_NAME` environment |
|
|
133
|
-
| Pulumi | `Pulumi.yaml`, `Pulumi.yml` |
|
|
134
|
-
| PureScript | `.purs` files, `spago.dhall`, `spago.yaml`, `spago.lock` |
|
|
135
|
-
| Python | `pyproject.toml`, `requirements.txt`, `setup.py`, `Pipfile` |
|
|
136
|
-
| R | `.R`, `.Rmd`, `.Rproj`, `DESCRIPTION`, `.Rproj.user/` |
|
|
137
|
-
| Raku | `.raku`, `.rakumod`, `.p6`, `.pm6`, `META6.json` |
|
|
138
|
-
| Red | `.red`, `.reds` files |
|
|
139
|
-
| Ruby | `Gemfile`, `.ruby-version` |
|
|
140
|
-
| Rust | `Cargo.toml` |
|
|
141
|
-
| Scala | `.scala`, `.sbt`, `build.sbt`, `.metals/` |
|
|
142
|
-
| Solidity | `.sol` files |
|
|
143
|
-
| Spack | `SPACK_ENV` environment |
|
|
144
|
-
| Swift | `.swift` files, `Package.swift` |
|
|
145
|
-
| Terraform | `.tf`, `.tfplan`, `.tfstate`, `.terraform/` |
|
|
146
|
-
| Typst | `.typ` files, `template.typ` |
|
|
147
|
-
| Vagrant | `Vagrantfile` |
|
|
148
|
-
| V | `.v` files, `v.mod`, `vpkg.json` |
|
|
149
|
-
| Xmake | `xmake.lua` |
|
|
150
|
-
| Zig | `.zig` files, `build.zig` |
|
|
151
|
-
|
|
152
|
-
</details>
|
|
46
|
+
The fork's mouse enhancements use [`@xzzpig/pi-mouse-events`](https://www.npmjs.com/package/@xzzpig/pi-mouse-events) rather than installing a competing mouse patch. Install it alongside Starline; without it, these enhancements and pill click-away are disabled. Pi's own component clicks remain available. Version 0.3.0 or newer also shares pointer shapes, uses Pi's native clipboard when available, and routes editor scrolling with Pi's calculated wheel delta; older v2 installations fall back to the previous copy and wheel paths.
|
|
47
|
+
|
|
48
|
+
- Drag to select in the transcript or the draft; double-click keeps paths and kebab-case whole; triple-click takes a line.
|
|
49
|
+
- Clean copies: Starline's rails and rule rows and pi-toolbox frames are dropped before the clipboard.
|
|
50
|
+
- A selection hint says how many characters the copy key will copy.
|
|
51
|
+
- Click a tool, bash box, skill or summary to toggle that component; drag selection and links remain available.
|
|
52
|
+
- Click to move the caret; backspace/delete remove a selected range; the wheel scrolls the draft.
|
|
53
|
+
|
|
54
|
+
## Screenshots
|
|
55
|
+
|
|
56
|
+
<p align="center">
|
|
57
|
+
<img src="https://raw.githubusercontent.com/Andy8647/pi-starline/main/assets/starline.png" alt="Starline in a pi session: transcript, editor frame and pill bar" width="840">
|
|
58
|
+
</p>
|
|
59
|
+
|
|
60
|
+
A session as a whole: the transcript above, the editor frame in the middle, the bar along the bottom.
|
|
153
61
|
|
|
154
62
|
## Install
|
|
155
63
|
|
|
156
|
-
|
|
157
|
-
If you are on a distribution that bundles an older Pi, upgrade it or wait for it to catch up.
|
|
64
|
+
Needs **Pi 1.x** and a [Nerd Font](https://www.nerdfonts.com/) (or set `icons.mode` to `"ascii"`).
|
|
158
65
|
|
|
159
66
|
```bash
|
|
160
67
|
# From npm (local fork @xzzpig/pi-starline)
|
|
161
68
|
pi install npm:@xzzpig/pi-starline
|
|
162
69
|
|
|
163
|
-
#
|
|
70
|
+
# For fork mouse enhancements and shared pill interaction
|
|
71
|
+
pi install npm:@xzzpig/pi-mouse-events
|
|
72
|
+
|
|
73
|
+
# Or install the separate upstream package from git
|
|
164
74
|
pi install git:github.com/Andy8647/pi-starline
|
|
165
75
|
```
|
|
166
76
|
|
|
167
|
-
|
|
77
|
+
What changed in each version: **[Changelog](https://github.com/Andy8647/pi-starline/blob/main/CHANGELOG.md)**.
|
|
168
78
|
|
|
169
|
-
|
|
79
|
+
## Configure
|
|
170
80
|
|
|
171
|
-
|
|
81
|
+
`/starline` opens a menu for the everyday settings: colour sources, feature toggles, the order of the bar (`Pills`), and where other extensions' statuses go. The `Pills` tab is the bar itself: one row per segment, its value is the position it holds, and every status an extension published this session gets a row of its own, so one of them can be placed without editing JSON.
|
|
172
82
|
|
|
173
|
-
|
|
83
|
+
Everything else lives in `~/.pi/agent/starline.json`. The file is optional; missing keys fall back to defaults.
|
|
174
84
|
|
|
175
85
|
```json
|
|
176
86
|
{
|
|
177
|
-
"
|
|
87
|
+
"pill": { "segments": ["model", "cwd", "git", "context", "cost"] },
|
|
178
88
|
"colors": { "gitBranch": "bold purple" },
|
|
179
89
|
"mouse": { "clickToToggleExpandable": false }
|
|
180
90
|
}
|
|
181
91
|
```
|
|
182
92
|
|
|
183
|
-
|
|
93
|
+
## Docs
|
|
184
94
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
- [Pi](https://pi.dev) coding agent 0.84.4 or newer
|
|
190
|
-
- A [Nerd Font](https://www.nerdfonts.com/) for icons (or set `icons.mode` to `"ascii"`)
|
|
95
|
+
- [Configuration](https://github.com/Andy8647/pi-starline/blob/main/docs/configuration.md): every option and its default.
|
|
96
|
+
- [What the footer shows](https://github.com/Andy8647/pi-starline/blob/main/docs/segments.md): git status indicators and the detected runtimes.
|
|
97
|
+
- [Clickable pills for other extensions](https://github.com/Andy8647/pi-starline/blob/main/docs/pill-api.md): put your extension's content in a pill.
|
|
98
|
+
- [Clickable pills: design](https://github.com/Andy8647/pi-starline/blob/main/docs/clickable-pills.md): how the pills, bubbles and bridges work.
|
|
191
99
|
|
|
192
100
|
## Development
|
|
193
101
|
|
|
194
102
|
```bash
|
|
195
103
|
npm install
|
|
196
|
-
npm run verify
|
|
197
|
-
npm run
|
|
198
|
-
npm run pack:check
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
### Test in Pi
|
|
202
|
-
|
|
203
|
-
The project keeps Pi core packages as peer dependencies for runtime and dev dependencies for
|
|
204
|
-
typechecking. To avoid accidentally running the local `node_modules/.bin/pi` shim, the dev scripts use
|
|
205
|
-
the globally installed Pi binary by default:
|
|
206
|
-
|
|
207
|
-
```bash
|
|
208
|
-
npm run pi:dev
|
|
209
|
-
npm run pi:install-local
|
|
104
|
+
npm run verify # lint, typecheck, tests
|
|
105
|
+
npm run pi:dev # run Pi with this checkout and no other extensions
|
|
210
106
|
```
|
|
211
107
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
```bash
|
|
215
|
-
PI_BIN=/path/to/pi npm run pi:dev
|
|
216
|
-
```
|
|
108
|
+
`pi:dev` uses the globally installed Pi; set `PI_BIN=/path/to/pi` to use another.
|
|
217
109
|
|
|
218
110
|
## Credits
|
|
219
111
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
Inspired by:
|
|
223
|
-
|
|
224
|
-
- [Starship](https://starship.rs/) — the minimal, blazing-fast, and infinitely customizable prompt
|
|
225
|
-
- [Opencode](https://github.com/opencode-ai/opencode) — terminal-based AI coding assistant
|
|
112
|
+
Started as a fork of [pi-zentui](https://github.com/lmilojevicc/pi-zentui) by Luka. Inspired by [Starship](https://starship.rs/) and [Opencode](https://github.com/opencode-ai/opencode).
|
|
226
113
|
|
|
227
114
|
## License
|
|
228
115
|
|