pi-openui 0.1.0 → 0.1.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 (3) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +27 -60
  3. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.1.1 (2026-10-30)
6
+
7
+ - The README now renders on pi.dev and npm: screenshots are markdown images (pi.dev drops raw HTML tables and images) and
8
+ links to the documentation are absolute (pi.dev rewrote the relative ones to a CDN copy of the package, which has no `docs/`).
9
+ Nothing changes in the extension.
10
+
5
11
  ## 0.1.0 (2026-10-30)
6
12
 
7
13
  - **Notes.** Pin a comment to a table cell, node, slice, point or paragraph; the notes go into pi's message box as one numbered
package/README.md CHANGED
@@ -6,22 +6,9 @@ coding agent. The agent writes a few lines of OpenUI Lang. pi draws a widget you
6
6
  It uses unicode characters, and real pictures where the terminal can show them. There is no browser, no HTML, no runtime
7
7
  dependency and no network access.
8
8
 
9
- <table>
10
- <tr>
11
- <td valign="top"><img src="docs/screenshots/dashboard.png" width="440" alt="A dashboard: three metric tiles, a bar chart and a button"></td>
12
- <td valign="top"><img src="docs/screenshots/dag-tooltip.png" width="360" alt="A CI pipeline graph with a focused node, a hint bubble and its tooltip panel"></td>
13
- </tr>
14
- <tr>
15
- <td valign="top"><img src="docs/screenshots/infra.png" width="440" alt="An infrastructure map with three zones"></td>
16
- <td valign="top"><img src="docs/screenshots/image-tooltip.png" width="360" alt="A picture in a frame with a tooltip bubble"></td>
17
- </tr>
18
- <tr>
19
- <td valign="top"><img src="docs/screenshots/notes-tray.png" width="440" alt="Two notes pinned on a table, with a tray listing them"></td>
20
- <td valign="top"><img src="docs/screenshots/markdown-image.png" width="360" alt="A README-style view: one markdown with a picture between its paragraphs"></td>
21
- </tr>
22
- </table>
23
-
24
- <sub>Screenshots are drawn by `npm run screenshots` from the widget's real output, with pi's dark theme and JetBrains Mono.</sub>
9
+ ![Dashboards, diagrams with tooltips, an infrastructure map, a picture in a frame, and notes pinned on a table and on a graph](https://raw.githubusercontent.com/newtonapple/pi-openui/main/docs/screenshots/hero.png)
10
+
11
+ *Screenshots are drawn by `npm run screenshots` from the widget's real output, with pi's dark theme and JetBrains Mono.*
25
12
 
26
13
  ## What you get
27
14
 
@@ -29,18 +16,18 @@ dependency and no network access.
29
16
  numbers, so it fixes them and tries again. After a successful draw it says one short sentence.
30
17
  - **23 components.** Layout and text, metric tiles, tables, tabs, buttons and choices, FAQ, markdown, code with
31
18
  highlighting and a copy button, images, bar, line, area, pie and radar charts, a world map, and four diagram types
32
- (DAG, ER, infrastructure map, sequence). See the [component gallery](docs/components/README.md).
19
+ (DAG, ER, infrastructure map, sequence). See the [component gallery](https://github.com/newtonapple/pi-openui/blob/main/docs/components/README.md).
33
20
  - **Interaction.** Click, or use Tab, the arrow keys, Enter and Esc. A button or a choice sends text to the agent as your next
34
- message. See [docs/interaction.md](docs/interaction.md).
21
+ message. See [docs/interaction.md](https://github.com/newtonapple/pi-openui/blob/main/docs/interaction.md).
35
22
  - **Notes.** Pin a comment to a table cell, a graph node or a pie slice, then send all of them to the agent as one numbered
36
23
  message. You read and edit the message before it goes. See [Notes](#notes).
37
24
  - **Tooltips.** An element with a tooltip shows a small `◆`. Hover for a hint bubble, click or press Enter for a panel with
38
- detail, code and a link. See [Tooltip](docs/components/Tooltip.md).
25
+ detail, code and a link. See [Tooltip](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Tooltip.md).
39
26
  - **Pictures.** An `Image` draws the real picture in terminals that speak the Kitty graphics protocol, inside a frame that
40
27
  can carry a tooltip. A line of Markdown that is only a picture, `![alt](path "caption")`, is drawn the same way, so a
41
- README-style view is one `Markdown`. See [Image](docs/components/Image.md) and [Markdown](docs/components/Markdown.md).
28
+ README-style view is one `Markdown`. See [Image](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Image.md) and [Markdown](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Markdown.md).
42
29
  - **Robust diagrams.** Every graph, schema and map is routed on a character grid with one wire per edge. The tests decode
43
- the finished picture back into its edges and compare them with the input. See [docs/diagrams.md](docs/diagrams.md).
30
+ the finished picture back into its edges and compare them with the input. See [docs/diagrams.md](https://github.com/newtonapple/pi-openui/blob/main/docs/diagrams.md).
44
31
 
45
32
  ## Install
46
33
 
@@ -63,7 +50,7 @@ and run `/openui-gallery`. It needs pi 1.4 or newer.
63
50
  | Remove | `pi remove npm:pi-openui` |
64
51
 
65
52
  It is in pi's [package catalog](https://pi.dev/packages), which lists npm packages that carry the `pi-package` keyword. After an
66
- update pi shows this package's [changelog](CHANGELOG.md). Maintainers: see [docs/releasing.md](docs/releasing.md).
53
+ update pi shows this package's [changelog](CHANGELOG.md). Maintainers: see [docs/releasing.md](https://github.com/newtonapple/pi-openui/blob/main/docs/releasing.md).
67
54
 
68
55
  ## Use it
69
56
 
@@ -85,56 +72,36 @@ The mouse needs pi's default fullscreen mode. Everything also works from the key
85
72
  Pin a comment to one part of a widget, then send all your comments to the agent as a single message. Use it to say "this row
86
73
  is wrong" or "explain this node" without describing where it is.
87
74
 
88
- <table>
89
- <tr>
90
- <td valign="top"><img src="docs/screenshots/notes-dag.png" width="440" alt="A note pinned on a graph node, with the tray under the graph"></td>
91
- <td valign="top">
75
+ ![A note pinned on a graph node, with the tray under the graph](https://raw.githubusercontent.com/newtonapple/pi-openui/main/docs/screenshots/notes-dag.png)
92
76
 
93
77
  1. Click `[ notes ]` under a widget, or run `/openui-notes`.
94
78
  2. Click a cell, node, slice or paragraph, or Tab to it and press Enter. pi's own editor opens. Type, press Enter.
95
79
  3. Click `[ Add 2 notes to your message ]`, or Tab to it and press Enter. The notes land in pi's message box as a numbered list.
96
80
  4. Read it, edit it, press Enter. Nothing is sent before that.
97
81
 
98
- </td>
99
- </tr>
100
- </table>
101
-
102
82
  Each note names its target the way the agent wrote it, for example `tbl` (Table) > row 3, column `State`, so the agent can find
103
83
  the line in its own source and answer by number. Words that come from the widget are cleaned before they reach your message,
104
84
  so a widget cannot slip an `@file` reference or a code span into something you are about to send.
105
85
 
106
86
  A widget holds 20 notes. They live in memory and are gone when the session ends. Keys, what each component lets you pick, and
107
- the details are in [docs/interaction.md](docs/interaction.md#notes).
87
+ the details are in [docs/interaction.md](https://github.com/newtonapple/pi-openui/blob/main/docs/interaction.md#notes).
108
88
 
109
89
  ## Components
110
90
 
111
- <table>
112
- <tr>
113
- <td valign="top" width="25%"><a href="docs/components/Table.md"><img src="docs/screenshots/table.png" width="200" alt="Table"></a><br><sub>Table</sub></td>
114
- <td valign="top" width="25%"><a href="docs/components/LineChart.md"><img src="docs/screenshots/line.png" width="200" alt="LineChart"></a><br><sub>LineChart</sub></td>
115
- <td valign="top" width="25%"><a href="docs/components/PieChart.md"><img src="docs/screenshots/pie.png" width="200" alt="PieChart"></a><br><sub>PieChart</sub></td>
116
- <td valign="top" width="25%"><a href="docs/components/GeoMap.md"><img src="docs/screenshots/geo.png" width="200" alt="GeoMap"></a><br><sub>GeoMap</sub></td>
117
- </tr>
118
- <tr>
119
- <td valign="top"><a href="docs/components/Erd.md"><img src="docs/screenshots/erd.png" width="200" alt="Erd"></a><br><sub>Erd</sub></td>
120
- <td valign="top"><a href="docs/components/SequenceDiagram.md"><img src="docs/screenshots/sequence.png" width="200" alt="SequenceDiagram"></a><br><sub>SequenceDiagram</sub></td>
121
- <td valign="top"><a href="docs/components/CodeBlock.md"><img src="docs/screenshots/code.png" width="200" alt="CodeBlock"></a><br><sub>CodeBlock</sub></td>
122
- <td valign="top"><a href="docs/components/RadarChart.md"><img src="docs/screenshots/radar.png" width="200" alt="RadarChart"></a><br><sub>RadarChart</sub></td>
123
- </tr>
124
- </table>
125
-
126
- All 23, with signatures, every argument, a checked example and tips: **[docs/components/](docs/components/README.md)**.
91
+ ![Eight of the components: Table, LineChart, PieChart, GeoMap, Erd, SequenceDiagram, CodeBlock, RadarChart](https://raw.githubusercontent.com/newtonapple/pi-openui/main/docs/screenshots/components.png)
92
+
93
+ All 23, with signatures, every argument, a checked example and tips: **[docs/components/](https://github.com/newtonapple/pi-openui/blob/main/docs/components/README.md)**.
127
94
 
128
95
  | Group | Components |
129
96
  |---|---|
130
- | Layout and text | [Stack](docs/components/Stack.md), [Text](docs/components/Text.md), [Card](docs/components/Card.md), [Callout](docs/components/Callout.md) |
131
- | Data | [Metric](docs/components/Metric.md), [Table](docs/components/Table.md) |
132
- | Interactive | [Tabs](docs/components/Tabs.md), [Button](docs/components/Button.md), [Choice](docs/components/Choice.md), [Faq](docs/components/Faq.md) |
133
- | Rich content | [Markdown](docs/components/Markdown.md), [CodeBlock](docs/components/CodeBlock.md), [Image](docs/components/Image.md) |
134
- | Charts | [BarChart](docs/components/BarChart.md), [LineChart](docs/components/LineChart.md), [AreaChart](docs/components/AreaChart.md), [PieChart](docs/components/PieChart.md), [RadarChart](docs/components/RadarChart.md) |
135
- | Diagrams and maps | [Dag](docs/components/Dag.md), [Erd](docs/components/Erd.md), [InfraMap](docs/components/InfraMap.md), [SequenceDiagram](docs/components/SequenceDiagram.md), [GeoMap](docs/components/GeoMap.md) |
136
-
137
- [Tooltip](docs/components/Tooltip.md) attaches to Dag, Erd, InfraMap, SequenceDiagram, Table, Metric, BarChart,
97
+ | Layout and text | [Stack](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Stack.md), [Text](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Text.md), [Card](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Card.md), [Callout](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Callout.md) |
98
+ | Data | [Metric](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Metric.md), [Table](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Table.md) |
99
+ | Interactive | [Tabs](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Tabs.md), [Button](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Button.md), [Choice](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Choice.md), [Faq](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Faq.md) |
100
+ | Rich content | [Markdown](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Markdown.md), [CodeBlock](https://github.com/newtonapple/pi-openui/blob/main/docs/components/CodeBlock.md), [Image](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Image.md) |
101
+ | Charts | [BarChart](https://github.com/newtonapple/pi-openui/blob/main/docs/components/BarChart.md), [LineChart](https://github.com/newtonapple/pi-openui/blob/main/docs/components/LineChart.md), [AreaChart](https://github.com/newtonapple/pi-openui/blob/main/docs/components/AreaChart.md), [PieChart](https://github.com/newtonapple/pi-openui/blob/main/docs/components/PieChart.md), [RadarChart](https://github.com/newtonapple/pi-openui/blob/main/docs/components/RadarChart.md) |
102
+ | Diagrams and maps | [Dag](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Dag.md), [Erd](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Erd.md), [InfraMap](https://github.com/newtonapple/pi-openui/blob/main/docs/components/InfraMap.md), [SequenceDiagram](https://github.com/newtonapple/pi-openui/blob/main/docs/components/SequenceDiagram.md), [GeoMap](https://github.com/newtonapple/pi-openui/blob/main/docs/components/GeoMap.md) |
103
+
104
+ [Tooltip](https://github.com/newtonapple/pi-openui/blob/main/docs/components/Tooltip.md) attaches to Dag, Erd, InfraMap, SequenceDiagram, Table, Metric, BarChart,
138
105
  LineChart, AreaChart, PieChart, RadarChart, GeoMap and Image.
139
106
 
140
107
  ## How it works
@@ -151,7 +118,7 @@ OpenUI Lang --parse--> typed tree --render--> blocks (rows of cells + click targ
151
118
  - `src/diagram/` is the layout and routing engine for Dag, Erd and InfraMap.
152
119
  - `src/pi/` is the pi extension: the tool, the commands, the themed component, mouse and keyboard handling, pictures.
153
120
 
154
- More in [docs/design.md](docs/design.md).
121
+ More in [docs/design.md](https://github.com/newtonapple/pi-openui/blob/main/docs/design.md).
155
122
 
156
123
  ## Requirements
157
124
 
@@ -175,13 +142,13 @@ After you change the code, run `/reload` in pi. The rest:
175
142
  ```sh
176
143
  npm test # a few seconds, no network, no model calls
177
144
  npm run docs # regenerate docs/components/ from the signature table
178
- npm run screenshots # regenerate docs/screenshots/ (needs Python with Pillow, and the font)
145
+ npm run screenshots # regenerate docs/screenshots/, and the two README composites (needs Python with Pillow, and the font)
179
146
  npm run gallery # print every component to the terminal (-- --plain for no colour)
180
147
  make help # the release process (check, version, publish, tag, push)
181
148
  ```
182
149
 
183
- Tests are described in [docs/testing.md](docs/testing.md). Releases are described in [docs/releasing.md](docs/releasing.md).
184
- Contributors and agents working in this repository should read [AGENTS.md](AGENTS.md).
150
+ Tests are described in [docs/testing.md](https://github.com/newtonapple/pi-openui/blob/main/docs/testing.md). Releases are described in [docs/releasing.md](https://github.com/newtonapple/pi-openui/blob/main/docs/releasing.md).
151
+ Contributors and agents working in this repository should read [AGENTS.md](https://github.com/newtonapple/pi-openui/blob/main/AGENTS.md).
185
152
 
186
153
  ## Limits
187
154
 
@@ -194,7 +161,7 @@ Contributors and agents working in this repository should read [AGENTS.md](AGENT
194
161
  saved at all.
195
162
  - A widget has size limits (100 KB of source, 100 table rows, 60 graph nodes, 30 map nodes, and so on). Over a limit the
196
163
  agent gets an error with the number and fixes it. They keep pi fast: it draws every widget on every frame. See the
197
- [list](docs/components/README.md#size-limits).
164
+ [list](https://github.com/newtonapple/pi-openui/blob/main/docs/components/README.md#size-limits).
198
165
 
199
166
  ## License
200
167
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-openui",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "type": "module",
5
5
  "description": "Pi extension: interactive dashboards, charts, diagrams and maps in the terminal. The agent draws with OpenUI Lang; you click, hover and pin notes.",
6
6
  "license": "MIT",
@@ -49,7 +49,7 @@
49
49
  "scripts": {
50
50
  "test": "node --import ./test/register-pi.mjs --test --test-reporter=spec test/*.test.ts",
51
51
  "gallery": "node scripts/langgallery.ts",
52
- "screenshots": "node --import ./test/register-pi.mjs scripts/shots.ts && python3 scripts/render_shots.py",
52
+ "screenshots": "node --import ./test/register-pi.mjs scripts/shots.ts && python3 scripts/render_shots.py && python3 scripts/hero.py",
53
53
  "docs": "node scripts/gen_docs.ts",
54
54
  "prepublishOnly": "npm test"
55
55
  }