pi-superwhisper-paste 0.1.1 → 0.1.3

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 CHANGED
@@ -4,6 +4,23 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  This project follows semantic versioning.
6
6
 
7
+ ## [0.1.3] - 2026-06-03
8
+
9
+ ### Changed
10
+
11
+ - Mark the package as archived in README and `package.json` description.
12
+ - Point new installs to the official Superwhisper Pi extension: `pi install npm:@superwhisper/pi`.
13
+
14
+ ## [0.1.2] - 2026-06-01
15
+
16
+ ### Fixed
17
+
18
+ - Register `/sw-paste:on` and `/sw-paste:off` as Pi slash commands so they appear in command autocomplete.
19
+
20
+ ### Changed
21
+
22
+ - Clarify that the Superwhisper paste controls are slash-autocomplete commands.
23
+
7
24
  ## [0.1.1] - 2026-05-31
8
25
 
9
26
  ### Added
package/README.md CHANGED
@@ -1,167 +1,61 @@
1
1
  # Pi Superwhisper Paste
2
2
 
3
+ > **Archived — use the official Superwhisper Pi extension instead**
4
+ >
5
+ > Superwhisper now ships an official Pi package. Install and maintain that going forward:
6
+ >
7
+ > ```bash
8
+ > pi install npm:@superwhisper/pi
9
+ > ```
10
+ >
11
+ > Docs: https://superwhisper.com/pi
12
+ >
13
+ > This repository (`pi-superwhisper-paste`) was a community bridge for the same problem (Superwhisper clipboard output not reaching the Pi TUI on Windows). It is **no longer maintained**. Issues and feature requests belong with Superwhisper's official Pi integration.
14
+
3
15
  [![CI](https://github.com/eiei114/pi-superwhisper-paste/actions/workflows/ci.yml/badge.svg)](https://github.com/eiei114/pi-superwhisper-paste/actions/workflows/ci.yml)
4
16
  [![Publish](https://github.com/eiei114/pi-superwhisper-paste/actions/workflows/publish.yml/badge.svg)](https://github.com/eiei114/pi-superwhisper-paste/actions/workflows/publish.yml)
5
17
  [![npm version](https://img.shields.io/npm/v/pi-superwhisper-paste.svg)](https://www.npmjs.com/package/pi-superwhisper-paste)
6
- [![npm downloads](https://img.shields.io/npm/dm/pi-superwhisper-paste.svg)](https://www.npmjs.com/package/pi-superwhisper-paste)
7
18
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
8
- [![Pi package](https://img.shields.io/badge/pi-package-purple.svg)](https://pi.dev/packages)
9
- [![Trusted Publishing](https://img.shields.io/badge/npm-Trusted%20Publishing-blue.svg)](docs/release.md)
10
-
11
- > Bridge Superwhisper clipboard dictation into the Pi TUI editor on Windows.
12
-
13
- ## Why This Exists
14
-
15
- Superwhisper can paste dictated text into normal Windows apps, but terminal TUIs can be a rough edge. In the original case, dictation worked in Notepad and PowerShell, and Typeless worked in Pi, but Superwhisper's automatic paste did not reliably reach Pi's TUI editor without a manual `Ctrl+V`.
16
-
17
- Pi Superwhisper Paste fixes that gap from the Pi side. It watches the Windows clipboard, detects new Superwhisper output, and inserts it into the active Pi editor with Pi's extension API.
18
-
19
- ## Observed Environment
20
-
21
- This package was created for an issue observed in one local setup:
22
-
23
- - Windows
24
- - VS Code integrated terminal
25
- - PowerShell
26
- - Pi running in the terminal
27
- - Superwhisper using clipboard-based auto-paste
28
-
29
- This may not be a universal Superwhisper or Pi issue. If Superwhisper already pastes into your Pi editor reliably, you probably do not need this package.
30
-
31
- ## Features
32
-
33
- - Default-on after the extension loads.
34
- - Inserts new clipboard text into the active Pi editor.
35
- - Avoids replaying clipboard content that existed before startup.
36
- - Pastes only into the active Pi tab when multiple tabs are open.
37
- - Ignores old clipboard content when switching tabs.
38
- - Continues inserting while Pi is thinking or waiting on an agent turn.
39
- - Provides two control commands: `/sw-paste:on` and `/sw-paste:off`.
40
-
41
- ## Install
42
-
43
- ```bash
44
- pi install npm:pi-superwhisper-paste
45
- ```
46
-
47
- Or install from GitHub:
48
-
49
- ```bash
50
- pi install git:github.com/eiei114/pi-superwhisper-paste
51
- ```
52
-
53
- ## Usage
54
-
55
- After installation, start Pi normally. The bridge is enabled by default.
56
-
57
- Dictate with Superwhisper while the Pi input box is focused. When Superwhisper writes the transcript to the clipboard, the active Pi tab receives it automatically.
58
-
59
- Toggle the bridge inside Pi's input box:
60
-
61
- ```txt
62
- /sw-paste:off
63
- /sw-paste:on
64
- ```
65
19
 
66
- The status line shows whether this tab is ready to receive dictation:
67
-
68
- ```txt
69
- SW paste: active
70
- SW paste: standby
71
- ```
72
-
73
- ## Local Development
74
-
75
- Run this repo as a local Pi extension:
20
+ ## Recommended install
76
21
 
77
22
  ```bash
78
- pi -e .
23
+ pi install npm:@superwhisper/pi
79
24
  ```
80
25
 
81
- Then run:
82
-
83
- ```txt
84
- /sw-paste:off
85
- /sw-paste:on
86
- ```
87
-
88
- ## Behavior
89
-
90
- ### Multiple Pi tabs
91
-
92
- Only the tab that most recently had terminal focus or keyboard input should paste the new clipboard text. Other tabs stay in standby.
93
-
94
- When you switch to another Pi tab, the current clipboard is treated as already seen. This prevents the previous dictation result from being pasted into the newly focused tab.
95
-
96
- ### Pi thinking state
97
-
98
- The bridge does not wait for Pi's agent turn to become idle. If Pi is thinking and the active tab is focused, the next Superwhisper clipboard update is still inserted into the editor.
99
-
100
- ### Clipboard baseline
101
-
102
- On startup and focus changes, existing clipboard text is used as a baseline and will not be pasted. Only later clipboard changes are treated as dictation input.
103
-
104
- ## Configuration
26
+ ## Historical context
105
27
 
106
- | Variable | Default | Purpose |
107
- |---|---:|---|
108
- | `PI_SUPERWHISPER_PASTE` | `on` | Set to `off`, `0`, `false`, or `no` to disable by default. |
109
- | `PI_SUPERWHISPER_PASTE_INTERVAL_MS` | `800` | Clipboard polling interval. |
110
- | `PI_SUPERWHISPER_PASTE_MAX_CHARS` | `8000` | Maximum clipboard text length to paste. |
111
-
112
- PowerShell example:
113
-
114
- ```powershell
115
- $env:PI_SUPERWHISPER_PASTE = "off"
116
- pi
117
- ```
118
-
119
- ## Troubleshooting
120
-
121
- If dictation does not appear, first confirm that Superwhisper can paste into Notepad or PowerShell. If it cannot, fix Superwhisper's own auto-paste settings first.
122
-
123
- If dictation appears in the wrong Pi tab, reload all open Pi tabs so old extension instances are gone.
124
-
125
- If text appears only after pressing a key, reload Pi and confirm the status line shows `SW paste: active`.
28
+ Superwhisper can paste dictated text into normal Windows apps, but terminal TUIs can be a rough edge. In the original case, dictation worked in Notepad and PowerShell, and Typeless worked in Pi, but Superwhisper's automatic paste did not reliably reach Pi's TUI editor without a manual `Ctrl+V`.
126
29
 
127
- ## Package contents
30
+ This package bridged that gap from the Pi side: it watched the Windows clipboard, detected new Superwhisper output, and inserted it into the active Pi editor with Pi's extension API.
128
31
 
129
- | Path | Purpose |
130
- |---|---|
131
- | `extensions/` | Pi TypeScript extension entrypoints (`*.ts` and `index.ts`) |
132
- | `docs/` | Release and setup docs |
32
+ ## Legacy install (not recommended)
133
33
 
134
- ## Development
34
+ If you still need this archived package for comparison or rollback:
135
35
 
136
36
  ```bash
137
- npm install
138
- npm run ci
37
+ pi install npm:pi-superwhisper-paste
139
38
  ```
140
39
 
141
- `npm run ci` runs typecheck, tests, and `npm pack --dry-run`.
142
-
143
- ## Release
144
-
145
- This package is set up for npm Trusted Publishing, so no `NPM_TOKEN` is required.
40
+ Or from GitHub:
146
41
 
147
42
  ```bash
148
- npm version patch
149
- git push --follow-tags
43
+ pi install git:github.com/eiei114/pi-superwhisper-paste
150
44
  ```
151
45
 
152
- See [`docs/release.md`](docs/release.md) for setup details.
153
-
154
- ## Security
46
+ ## Legacy behavior (v0.1.2 and earlier)
155
47
 
156
- Pi packages can execute code with your local permissions. Review extensions before installing third-party packages.
48
+ - Default-on after the extension loads.
49
+ - Slash commands: `/sw-paste:on` and `/sw-paste:off`.
50
+ - Windows clipboard polling with active-tab gating.
157
51
 
158
- For vulnerability reporting, see [`SECURITY.md`](SECURITY.md).
52
+ See [CHANGELOG.md](CHANGELOG.md) for version history.
159
53
 
160
54
  ## Links
161
55
 
162
- - npm: https://www.npmjs.com/package/pi-superwhisper-paste
163
- - GitHub: https://github.com/eiei114/pi-superwhisper-paste
164
- - Issues: https://github.com/eiei114/pi-superwhisper-paste/issues
56
+ - Official: https://superwhisper.com/pi — `@superwhisper/pi` on npm (`pi install npm:@superwhisper/pi`)
57
+ - Archived npm: https://www.npmjs.com/package/pi-superwhisper-paste
58
+ - Archived GitHub: https://github.com/eiei114/pi-superwhisper-paste
165
59
 
166
60
  ## License
167
61
 
@@ -414,6 +414,24 @@ async function runControlAction(
414
414
  }
415
415
 
416
416
  export default function superwhisperPaste(pi: ExtensionAPI) {
417
+ pi.registerCommand("sw-paste:on", {
418
+ description: "Enable the Superwhisper clipboard paste bridge",
419
+ handler: async (_args, ctx) => {
420
+ const runtimeCtx = ctx as PiRuntimeContext;
421
+ const generation = ensureCurrentSession(runtimeCtx);
422
+ await runControlAction("on", runtimeCtx, generation);
423
+ },
424
+ });
425
+
426
+ pi.registerCommand("sw-paste:off", {
427
+ description: "Disable the Superwhisper clipboard paste bridge",
428
+ handler: async (_args, ctx) => {
429
+ const runtimeCtx = ctx as PiRuntimeContext;
430
+ const generation = ensureCurrentSession(runtimeCtx);
431
+ await runControlAction("off", runtimeCtx, generation);
432
+ },
433
+ });
434
+
417
435
  pi.on("session_start", async (_event, ctx) => {
418
436
  const runtimeCtx = ctx as PiRuntimeContext;
419
437
  const generation = beginSession(runtimeCtx);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-superwhisper-paste",
3
- "version": "0.1.1",
4
- "description": "Pi extension that bridges Superwhisper clipboard output into the Pi TUI editor on Windows.",
3
+ "version": "0.1.3",
4
+ "description": "[Archived] Community Pi bridge for Superwhisper on Windows. Use npm:@superwhisper/pi instead.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "author": "Keisu",