@codesook/pi-welcome-screen 0.3.0 → 0.3.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.
Files changed (2) hide show
  1. package/README.md +252 -149
  2. package/package.json +36 -33
package/README.md CHANGED
@@ -1,208 +1,311 @@
1
- # pi-welcome-screen
1
+ <h1 align="center">pi-welcome-screen</h1>
2
2
 
3
- Customizable animated ASCII art welcome **overlay** for the [Pi coding agent](https://github.com/earendil-works/pi-mono).
3
+ <p align="center">
4
+ Customizable animated ASCII art welcome overlay for the <a href="https://github.com/earendil-works/pi-mono">Pi coding agent</a>.<br/>
5
+ Shows on session start with animated banner, info panel, countdown, and auto-dismiss.
6
+ </p>
4
7
 
5
- Displays an animated ASCII art banner inside a styled box with borders, countdown timer, and auto-dismiss. Fully customizable: text, URL, animation style, border style, and colors (Catppuccin Mocha palette).
8
+ <p align="center">
9
+ <img src="https://github.com/seenark/pi-welcome-screen/blob/main/assets/show-case.png?raw=true" alt="pi-welcome-screen showcase" width="1100" />
10
+ </p>
6
11
 
7
- ## Features
12
+ <p align="center">
13
+ <a href="https://www.npmjs.com/package/@codesook/pi-welcome-screen"><img src="https://img.shields.io/npm/v/@codesook/pi-welcome-screen?color=mauve&label=npm" alt="npm" /></a>
14
+ <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white" alt="TypeScript" />
15
+ <img src="https://img.shields.io/badge/No_Build_Step-jiti-green" alt="No build step" />
16
+ </p>
8
17
 
9
- - 🎨 **Animated ASCII banner** — Multiple animation styles (wave, rainbow, glitch, matrix, typewriter)
10
- - 📦 **Styled overlay box** — Box-drawing borders with background fill
11
- - ⏱️ **Countdown timer** — Auto-dismisses after configurable seconds
12
- - ⌨️ **Keyboard dismiss** — Press any key to dismiss immediately
13
- - 🤖 **Auto-dismiss** — Hides when agent starts responding
14
- - 🎨 **Catppuccin colors** — Full Mocha palette support
18
+ ---
15
19
 
16
- ## How It Works
20
+ ## Features
17
21
 
18
- This is a **Pi extension** that:
22
+ - 🎨 **6 animation styles** — wave, rainbow, glitch, matrix, typewriter, static
23
+ - 📦 **Styled overlay box** — box-drawing borders with background fill
24
+ - 📊 **Info panel** — model, keyboard tips, loaded resources, recent sessions (two-column layout on wide terminals)
25
+ - 🖼️ **Custom banner** — bring your own ASCII art via `banner.txt`
26
+ - ⏱️ **Auto-dismiss** — countdown, keypress, or agent activity
27
+ - 🎨 **Catppuccin Mocha** — full palette, all colors by name
19
28
 
20
- 1. Subscribes to the `session_start` event
21
- 2. Shows an overlay using `ctx.ui.custom({ overlay: true })`
22
- 3. The overlay displays an animated ASCII banner inside a styled box
23
- 4. Dismisses automatically on countdown, keypress, or agent activity
24
-
25
- ## Installation
26
-
27
- ### Option A — Local directory (recommended for development)
29
+ ## 📦 Install
28
30
 
29
31
  ```bash
30
- # Clone the repo
31
- git clone https://github.com/codesook/pi-welcome-screen.git
32
- cd pi-welcome-screen
33
- ```
32
+ # From npm (recommended)
33
+ pi install npm:@codesook/pi-welcome-screen
34
34
 
35
- Add to your Pi `settings.json` (`~/.pi/agent/settings.json`):
35
+ # Try without installing
36
+ pi -e npm:@codesook/pi-welcome-screen
36
37
 
37
- ```json
38
- {
39
- "extensions": ["/path/to/pi-welcome-screen"]
40
- }
41
- ```
42
-
43
- Or use the `-e` flag for quick testing:
38
+ # From git
39
+ pi install git:github.com/seenark/pi-welcome-screen
44
40
 
45
- ```bash
41
+ # Local development
42
+ git clone https://github.com/seenark/pi-welcome-screen.git
46
43
  pi -e /path/to/pi-welcome-screen
47
44
  ```
48
45
 
49
- ### Option BCopy to extensions directory
46
+ After installing, just start `pi` the welcome screen appears automatically on every session.
50
47
 
51
- ```bash
52
- cp -r /path/to/pi-welcome-screen ~/.pi/agent/extensions/pi-welcome-screen
53
- ```
48
+ ## 🖼️ Custom Banner
54
49
 
55
- Pi auto-discovers extensions in `~/.pi/agent/extensions/`.
50
+ Replace the built-in ASCII banner with your own art. Create a plain text file:
56
51
 
57
- ### Option C — Pi package (npm/git)
52
+ **`~/.pi/agent/pi-welcome-screen/banner.txt`**
58
53
 
59
- ```bash
60
- pi install git:github.com/codesook/pi-welcome-screen
61
- ```
54
+ ````
55
+ ██████╗ ██████╗ ██████╗ ███████╗ ███████╗ ██████╗ ██████╗ ██╗ ██╗
56
+ ██╔════╝██╔═══██╗██╔══██╗██╔════╝ ██╔════╝██╔═══██╗██╔═══██╗██║ ██╔╝
57
+ ██║ ██║ ██║██║ ██║█████╗ ███████╗██║ ██║██║ ██║█████╔╝
58
+ ██║ ██║ ██║██║ ██║██╔══╝ ╚════██║██║ ██║██║ ██║██╔═██╗
59
+ ╚██████╗╚██████╔╝██████╔╝███████╗ ███████║╚██████╔╝╚██████╔╝██║ ██╗
60
+ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝```
62
61
 
63
- Or add to `settings.json` under `packages`:
62
+ Or point to any file via config:
64
63
 
65
64
  ```json
66
65
  {
67
- "packages": ["git:github.com/codesook/pi-welcome-screen"]
66
+ "bannerFile": "/path/to/my-banner.txt"
68
67
  }
69
- ```
68
+ ````
69
+
70
+ **Search order** (first found wins):
71
+
72
+ 1. Explicit `bannerFile` path from config
73
+ 2. `~/.pi/agent/pi-welcome-screen/banner.txt`
74
+ 3. `./welcome-screen.banner.txt` (project root)
70
75
 
71
- ## Configuration
76
+ > **Tip:** Keep your banner under ~80 characters wide for best results on all terminals.
72
77
 
73
- Create `~/.pi/welcome-screen.config.json`:
78
+ ## ⚙️ Configuration
79
+
80
+ Create a config file — only the fields you want to override are needed:
81
+
82
+ **`~/.pi/welcome-screen.config.json`**
74
83
 
75
84
  ```json
76
85
  {
77
- "mainText": "CodeSook",
78
- "url": "https://codesook.dev",
79
- "animationStyle": "rainbow",
80
- "frameDelayMs": 80,
81
- "fgColor": "lavender",
82
- "accentColor": "blue",
83
- "urlColor": "sapphire",
84
- "animationColor": "pink",
85
- "paddingTop": 2,
86
- "paddingBottom": 2,
87
-
88
- "borderStyle": "rounded",
89
- "bgFillChar": "",
90
- "minTerminalWidth": 80,
91
- "overlayWidth": 120,
92
- "countdown": -1
86
+ "mainText": "Your Name",
87
+ "url": "https://yourwebsite.dev",
88
+ "animationStyle": "rainbow",
89
+ "animationColor": "pink",
90
+ "borderStyle": "rounded",
91
+ "countdown": -1,
92
+ "showInfoPanel": true
93
93
  }
94
94
  ```
95
95
 
96
- ### Config Options
97
-
98
- | Option | Type | Default | Description |
99
- |--------|------|---------|-------------|
100
- | `mainText` | string | "CodeSook" | Main text below banner |
101
- | `url` | string | "https://codesook.dev" | URL displayed below main text |
102
- | `animationStyle` | string | "rainbow" | Animation style |
103
- | `frameDelayMs` | number | 80 | Animation speed (ms between frames) |
104
- | `fgColor` | string | "lavender" | Main text color |
105
- | `urlColor` | string | "sapphire" | URL text color |
106
- | `animationColor` | string | "pink" | Color for animated elements |
107
- | `accentColor` | string | "blue" | Border/background fill color |
108
- | `paddingTop` | number | 2 | Empty lines above content |
109
- | `paddingBottom` | number | 2 | Empty lines below content |
110
- | `countdown` | number | -1 | Auto-dismiss: `-1` = wait for keypress, `0` = never, `>0` = seconds |
111
- | `borderStyle` | string | "rounded" | Border style (rounded/square/double/minimal) |
112
- | `bgFillChar` | string | "" | Background fill (empty = no background) |
113
- | `minTerminalWidth` | number | 80 | Minimum terminal width to show overlay |
114
- | `overlayWidth` | number | 120 | Width of the overlay box |
115
-
116
- Config file search order:
96
+ **Config file search order** (first found wins):
97
+
117
98
  1. `~/.pi/welcome-screen.config.json`
118
99
  2. `~/.pi/config/welcome-screen.json`
119
- 3. `./welcome-screen.config.json`
100
+ 3. `./welcome-screen.config.json` (project root)
101
+
102
+ ### All Options
103
+
104
+ #### Text & Content
105
+
106
+ | Option | Type | Default | Description |
107
+ | ---------------- | ------ | ------------------------ | ---------------------------------------------- |
108
+ | `mainText` | string | `"CodeSook"` | Text shown below the banner |
109
+ | `url` | string | `"https://codesook.dev"` | URL shown below main text |
110
+ | `animationStyle` | string | `"rainbow"` | Animation style (see below) |
111
+ | `animationText` | string | `"Welcome"` | Text used for some animations |
112
+ | `frameDelayMs` | number | `80` | Milliseconds between animation frames (0–1000) |
113
+ | `bannerFile` | string | `""` | Path to custom banner `.txt` file |
114
+
115
+ #### Layout
116
+
117
+ | Option | Type | Default | Description |
118
+ | ------------------ | ------ | ----------- | ------------------------------------------------------- |
119
+ | `paddingTop` | number | `2` | Empty lines above content |
120
+ | `paddingBottom` | number | `2` | Empty lines below content |
121
+ | `borderStyle` | string | `"rounded"` | Border style: `rounded`, `square`, `double`, `minimal` |
122
+ | `bgFillChar` | string | `""` | Background fill character (e.g. `"░"`). Empty = no fill |
123
+ | `minTerminalWidth` | number | `80` | Hide overlay if terminal is narrower than this |
124
+ | `overlayWidth` | number | `120` | Width of the overlay box |
125
+
126
+ #### Behavior
127
+
128
+ | Option | Type | Default | Description |
129
+ | ----------------- | ------- | ------- | ------------------------------------------------------------- |
130
+ | `countdown` | number | `-1` | `-1` = wait for keypress, `0` = never dismiss, `>0` = seconds |
131
+ | `debug` | boolean | `false` | Overlay stays visible forever (never auto-dismisses) |
132
+ | `enableScrolling` | boolean | `true` | Allow arrow-key scrolling when content overflows |
133
+
134
+ #### Colors (Catppuccin Mocha names)
135
+
136
+ | Option | Type | Default | Description |
137
+ | ---------------- | ------ | ------------ | -------------------------------------- |
138
+ | `fgColor` | string | `"lavender"` | Main text color |
139
+ | `bgColor` | string | `"base"` | Background color |
140
+ | `accentColor` | string | `"blue"` | Border / accent color |
141
+ | `urlColor` | string | `"sapphire"` | URL text color |
142
+ | `animationColor` | string | `"pink"` | Animation / highlighted elements color |
143
+
144
+ #### Visibility Toggles
145
+
146
+ | Option | Type | Default | Description |
147
+ | --------------- | ------- | ------- | ------------------------------------- |
148
+ | `showBanner` | boolean | `true` | Show the ASCII art banner |
149
+ | `showMainText` | boolean | `true` | Show the main text line |
150
+ | `showUrl` | boolean | `true` | Show the URL line |
151
+ | `showCountdown` | boolean | `true` | Show countdown / "press any key" hint |
152
+ | `showPadding` | boolean | `true` | Show top/bottom padding |
153
+ | `showBorder` | boolean | `true` | Show the border box |
154
+
155
+ #### Info Panel
156
+
157
+ The info panel appears on the right side when the terminal is ≥ 100 chars wide, or below the banner on narrower terminals.
158
+
159
+ | Option | Type | Default | Description |
160
+ | ------------------- | -------- | ------------------------------------------------------------ | ----------------------------------------------- |
161
+ | `showInfoPanel` | boolean | `true` | Show the info panel |
162
+ | `showVersion` | boolean | `true` | Show Pi version |
163
+ | `showModel` | boolean | `true` | Show model name & provider |
164
+ | `showTips` | boolean | `true` | Show keyboard tips |
165
+ | `showLoaded` | boolean | `true` | Show loaded counts (extensions, skills, etc.) |
166
+ | `showResources` | boolean | `true` | Show detailed resource listings |
167
+ | `showSessions` | boolean | `true` | Show recent sessions |
168
+ | `infoPanelSections` | string[] | `["version","model","tips","loaded","resources","sessions"]` | Section order |
169
+ | `modelName` | string | `""` | Override model name (auto-detected if empty) |
170
+ | `providerName` | string | `""` | Override provider name (auto-detected if empty) |
171
+ | `logoChar` | string | `"π"` | Character used for the logo |
172
+
173
+ ### Animation Styles
174
+
175
+ | Style | Description |
176
+ | ------------ | -------------------------------------------------- |
177
+ | `wave` | Letters shift with a sinusoidal wave effect |
178
+ | `rainbow` | Each line cycles through the Catppuccin spectrum |
179
+ | `glitch` | Random glitch artifacts appear on lines |
180
+ | `matrix` | Text is revealed from left to right (Matrix-style) |
181
+ | `typewriter` | Characters appear one-by-one |
182
+ | `static` | No animation — banner shown in full color |
183
+
184
+ ### Border Styles
185
+
186
+ | Style | Corners | Sides |
187
+ | --------- | --------------- | ------- |
188
+ | `rounded` | `╭` `╮` `╰` `╯` | `│` `─` |
189
+ | `square` | `┌` `┐` `└` `┘` | `│` `─` |
190
+ | `double` | `╔` `╗` `╚` `╝` | `║` `═` |
191
+ | `minimal` | `+` `+` `+` `+` | `│` `─` |
192
+
193
+ ### Color Palette (Catppuccin Mocha)
194
+
195
+ All color options accept these names:
196
+
197
+ | Name | Hex | Preview | Name | Hex | Preview |
198
+ | ---------- | --------- | ------- | ----------- | --------- | ------- |
199
+ | `base` | `#1e1e2e` | 🟣 | `lavender` | `#b4befe` | 💜 |
200
+ | `mantle` | `#181825` | ⬛ | `blue` | `#89b4fa` | 💙 |
201
+ | `crust` | `#11111b` | ⬛ | `sapphire` | `#74c7ec` | 🩵 |
202
+ | `surface0` | `#313244` | 🔘 | `sky` | `#89dceb` | 🩵 |
203
+ | `surface1` | `#45475a` | 🔘 | `teal` | `#94e2d5` | 🩵 |
204
+ | `surface2` | `#585b70` | 🔘 | `green` | `#a6e3a1` | 💚 |
205
+ | `overlay0` | `#6c7086` | 🔘 | `yellow` | `#f9e2af` | 💛 |
206
+ | `overlay1` | `#7f849c` | 🔘 | `peach` | `#fab387` | 🧡 |
207
+ | `overlay2` | `#9399b2` | 🔘 | `maroon` | `#eba0ac` | 🩷 |
208
+ | `subtext0` | `#a6adc8` | 🔘 | `red` | `#f38ba8` | ❤️ |
209
+ | `subtext1` | `#bac2de` | 🔘 | `mauve` | `#cba6f7` | 💜 |
210
+ | `text` | `#cdd6f4` | ⬜ | `pink` | `#f5c2e7` | 🩷 |
211
+ | | | | `flamingo` | `#f2cdcd` | 🩷 |
212
+ | | | | `rosewater` | `#f5e0dc` | 🩷 |
213
+
214
+ ## 🎮 Commands
215
+
216
+ | Command | Description |
217
+ | ------------------ | ------------------------------------ |
218
+ | `/welcome-dismiss` | Manually dismiss the welcome overlay |
219
+ | `/welcome-reload` | Reload config and reshow the overlay |
120
220
 
121
- ## Border Styles
221
+ ## 🧩 Example Configs
122
222
 
123
- | Style | Example |
124
- |-------|---------|
125
- | `rounded` | `╭────╮│ │╰────╯` |
126
- | `square` | `┌────┐│ │└────┘` |
127
- | `double` | `╔════╗║ ║╚════╝` |
128
- | `minimal` | `+----++ ++----+` |
223
+ ### Minimal just change the name
129
224
 
130
- ## Animation Styles
225
+ ```json
226
+ {
227
+ "mainText": "acme-corp"
228
+ }
229
+ ```
131
230
 
132
- | Style | Description |
133
- |-------|-------------|
134
- | `wave` | Letters shift with a sinusoidal wave effect |
135
- | `rainbow` | Each line cycles through the full Catppuccin spectrum |
136
- | `glitch` | Random glitch artifacts appear on lines |
137
- | `matrix` | Text is revealed from left to right (Matrix-style) |
138
- | `typewriter` | Characters appear one-by-one |
139
- | `static` | No animation — just the banner in full color |
231
+ ### Dark cyberpunk theme
140
232
 
141
- ## Commands
233
+ ```json
234
+ {
235
+ "mainText": "NEON::CORP",
236
+ "url": "https://neon.corp",
237
+ "animationStyle": "glitch",
238
+ "animationColor": "red",
239
+ "fgColor": "red",
240
+ "urlColor": "mauve",
241
+ "borderStyle": "double",
242
+ "bgFillChar": "░"
243
+ }
244
+ ```
142
245
 
143
- | Command | Description |
144
- |---------|-------------|
145
- | `/welcome-dismiss` | Manually dismiss the welcome overlay |
146
- | `/welcome-reload` | Reload config and reshow overlay |
147
-
148
- ## Color Names (Catppuccin Mocha)
149
-
150
- | Name | Hex | Name | Hex |
151
- |------|-----|------|-----|
152
- | `base` | #1e1e2e | `lavender` | #b4befe |
153
- | `mantle` | #181825 | `blue` | #89b4fa |
154
- | `crust` | #11111b | `sapphire` | #74c7ec |
155
- | `surface0` | #313244 | `sky` | #89dceb |
156
- | `surface1` | #45475a | `teal` | #94e2d5 |
157
- | `surface2` | #585b70 | `green` | #a6e3a1 |
158
- | `overlay0` | #6c7086 | `yellow` | #f9e2af |
159
- | `overlay1` | #7f849c | `peach` | #fab387 |
160
- | `overlay2` | #9399b2 | `maroon` | #eba0ac |
161
- | `subtext0` | #a6adc8 | `red` | #f38ba8 |
162
- | `subtext1` | #bac2de | `mauve` | #cba6f7 |
163
- | `text` | #cdd6f4 | `pink` | #f5c2e7 |
164
- | | | `flamingo` | #f2cdcd |
165
- | | | `rosewater` | #f5e0dc |
166
-
167
- ## Compatibility with pi-powerline-footer
168
-
169
- If you use [pi-powerline-footer](https://github.com/nicobailon/pi-powerline-footer), you can disable its welcome screen to avoid conflicts:
246
+ ### Clean & minimal — no animation, no border
170
247
 
171
248
  ```json
172
- // ~/.pi/settings.json
173
249
  {
174
- "powerline": {
175
- "welcome": false
176
- }
250
+ "mainText": "my-project",
251
+ "url": "https://github.com/me/my-project",
252
+ "animationStyle": "static",
253
+ "animationColor": "blue",
254
+ "showBorder": false,
255
+ "showInfoPanel": false,
256
+ "paddingTop": 1,
257
+ "paddingBottom": 0,
258
+ "countdown": 3
177
259
  }
178
260
  ```
179
261
 
180
- ## Project Structure
262
+ ### Custom banner with your brand
181
263
 
264
+ ```json
265
+ {
266
+ "mainText": "My Brand",
267
+ "url": "https://mybrand.io",
268
+ "bannerFile": "~/.pi/agent/pi-welcome-screen/banner.txt",
269
+ "animationStyle": "rainbow",
270
+ "animationColor": "green"
271
+ }
182
272
  ```
183
- pi-welcome-screen/
184
- ├── package.json # pi.extensions → ./src/index.ts
185
- ├── src/
186
- │ ├── index.ts # Extension entry exports factory function
187
- │ ├── WelcomeOverlay.ts # Overlay component class
188
- │ ├── config.ts # Defaults + config file loading
189
- │ ├── animations.ts # ASCII banner + frame builders
190
- │ ├── renderer.ts # ANSI color + box-drawing utilities
191
- │ └── types.ts # TypeScript interfaces
192
- └── README.md
273
+
274
+ ## 🤝 Compatibility
275
+
276
+ **pi-powerline-footer** — if you use [pi-powerline-footer](https://github.com/nicobailon/pi-powerline-footer), disable its welcome screen to avoid conflicts:
277
+
278
+ ```json
279
+ {
280
+ "powerline": { "welcome": false }
281
+ }
193
282
  ```
194
283
 
195
- ## Development
284
+ ## 🛠️ Development
196
285
 
197
- No build step needed — Pi loads TypeScript extensions via [jiti](https://github.com/unjs/jiti).
286
+ No build step — Pi loads TypeScript directly via [jiti](https://github.com/unjs/jiti).
198
287
 
199
288
  ```bash
200
289
  # Test locally
201
290
  pi -e .
202
291
 
203
- # Or install as extension and run pi normally
292
+ # Install from local path
293
+ pi install /path/to/pi-welcome-screen
294
+ ```
295
+
296
+ ## 📁 Project Structure
297
+
298
+ ```
299
+ src/
300
+ ├── index.ts # Entry point — Pi extension factory
301
+ ├── WelcomeOverlay.ts # Overlay component with two-column layout
302
+ ├── config.ts # Defaults, Catppuccin palette, config loading
303
+ ├── animations.ts # ASCII banner data + frame builders per style
304
+ ├── renderer.ts # ANSI escape codes, color mapping, centering
305
+ ├── info-panel.ts # Loaded counts, recent sessions discovery
306
+ └── types.ts # Config interface, animation & border types
204
307
  ```
205
308
 
206
- ## License
309
+ ## 📄 License
207
310
 
208
- MIT
311
+ MIT © [Code Sook](https://github.com/seenark)
package/package.json CHANGED
@@ -1,35 +1,38 @@
1
1
  {
2
- "name": "@codesook/pi-welcome-screen",
3
- "version": "0.3.0",
4
- "description": "Customizable animated ASCII art welcome overlay for pi coding agent — shows on session start with countdown and auto-dismiss",
5
- "type": "module",
6
- "files": [
7
- "src/",
8
- "README.md",
9
- "AGENTS.md"
10
- ],
11
- "keywords": [
12
- "pi-package",
13
- "pi",
14
- "coding-agent",
15
- "welcome",
16
- "ascii",
17
- "extension"
18
- ],
19
- "author": "Code Sook",
20
- "license": "MIT",
21
- "repository": {
22
- "type": "git",
23
- "url": "https://github.com/seenark/pi-welcome-screen"
24
- },
25
- "scripts": {
26
- "build": "echo 'No build needed — Pi loads TypeScript extensions via jiti'",
27
- "test": "echo 'No tests yet'"
28
- },
29
- "peerDependencies": {
30
- "@earendil-works/pi-coding-agent": "*"
31
- },
32
- "pi": {
33
- "extensions": ["./src/index.ts"]
34
- }
2
+ "name": "@codesook/pi-welcome-screen",
3
+ "version": "0.3.1",
4
+ "description": "Customizable animated ASCII art welcome overlay for pi coding agent — shows on session start with countdown and auto-dismiss",
5
+ "type": "module",
6
+ "files": [
7
+ "src/",
8
+ "README.md",
9
+ "AGENTS.md"
10
+ ],
11
+ "keywords": [
12
+ "pi-package",
13
+ "pi",
14
+ "coding-agent",
15
+ "welcome",
16
+ "ascii",
17
+ "extension"
18
+ ],
19
+ "author": "Code Sook",
20
+ "license": "MIT",
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "https://github.com/seenark/pi-welcome-screen"
24
+ },
25
+ "scripts": {
26
+ "build": "echo 'No build needed — Pi loads TypeScript extensions via jiti'",
27
+ "test": "echo 'No tests yet'",
28
+ "publish": "npm publish --access public"
29
+ },
30
+ "peerDependencies": {
31
+ "@earendil-works/pi-coding-agent": "*"
32
+ },
33
+ "pi": {
34
+ "extensions": [
35
+ "./src/index.ts"
36
+ ]
37
+ }
35
38
  }