{"_id":"@arcanemachine/pi-stash","_rev":"2-d62190f7690875b17e713ed742cf6316","name":"@arcanemachine/pi-stash","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@arcanemachine/pi-stash","version":"0.1.0","keywords":["pi","pi-coding-agent","pi-extension","pi-package","prompt","stash"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-stash@0.1.0","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-stash#readme","bugs":{"url":"https://github.com/arcanemachine/pi-stash/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-stash/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"3ac5d6d0fce610c6469c0de3ad22c37fa7521833","tarball":"https://registry.npmjs.org/@arcanemachine/pi-stash/-/pi-stash-0.1.0.tgz","fileCount":6,"integrity":"sha512-M51Zuf73UVEsu2+FOdsdmLWSrwXU8KHSfPdw03BOpnWsv/psrr5bM2to31krP0nhLJlJSSxQQA+l5MjBhZ9RIw==","signatures":[{"sig":"MEYCIQC/UJOuatUf3BSYql/qZhPVtcCZgsQG9u6AOjGHWXKpLgIhALiJe9haG1CTEDivapp1gaGTuHQlYr4YJ19NaElzisEQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65317},"type":"module","engines":{"node":">=22.19.0"},"scripts":{"test":"vitest run --exclude '**/dist/**'","build":"tsc","watch":"tsc --watch","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" package.json README.md AGENTS.md CHANGELOG.md LICENSE.md tsconfig.json","typecheck":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" package.json README.md AGENTS.md CHANGELOG.md LICENSE.md tsconfig.json","prepublishOnly":"npm run format:check && npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-stash.git","type":"git"},"_npmVersion":"11.13.0","description":"Stash and restore an ephemeral Pi prompt with a keyboard shortcut","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^5.9.3","@types/node":"^25.3.3","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-stash_0.1.0_1788423771668_0.7627238397021918","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-stash/main/logo.jpg","extensions":["./src/index.ts"]},"_id":"@arcanemachine/pi-stash@0.1.1","bugs":{"url":"https://github.com/arcanemachine/pi-stash/issues"},"dist":{"shasum":"85b93a3a2169a7dd81f56f05fda8f6c5deeaa8bd","tarball":"https://registry.npmjs.org/@arcanemachine/pi-stash/-/pi-stash-0.1.1.tgz","fileCount":7,"integrity":"sha512-UEB3A67kOR5i54vQgAQVoc6S2LEW2DHLNorwrvp+43oP4Drtv8up019ltU/X8YphFozH17E2rVt9IIav9IczYw==","signatures":[{"sig":"MEQCID9Ria8NzBCrp6T9AfvDMIBaO+rmXm4S3AFYqrYwpg3eAiBjhxPhLn23jEBntUWx13/VsQtQ54ytfZw7humT9QXXqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGhd87JYrl4O2HEAFJJz+Bbnti0hG2bAxFLUP439JeznAiBysav1YZrft9yqsZiYC3mElYLa2Ix0fZOLnYkilkz7iw=="}],"unpackedSize":68449},"name":"@arcanemachine/pi-stash","type":"module","author":{"name":"Nicholas Moen"},"engines":{"node":">=22.19.0"},"license":"MIT","scripts":{"test":"vitest run --exclude '**/dist/**'","build":"tsc","watch":"tsc --watch","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" package.json README.md AGENTS.md CHANGELOG.md LICENSE.md tsconfig.json","typecheck":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" package.json README.md AGENTS.md CHANGELOG.md LICENSE.md tsconfig.json","prepublishOnly":"npm run format:check && npm run typecheck && npm run test && npm run build"},"version":"0.1.1","_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"homepage":"https://github.com/arcanemachine/pi-stash#readme","keywords":["pi","pi-coding-agent","pi-extension","pi-package","prompt","stash"],"repository":{"url":"git+https://github.com/arcanemachine/pi-stash.git","type":"git"},"_npmVersion":"11.13.0","description":"Stash and restore an ephemeral Pi prompt with a keyboard shortcut","directories":{},"maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^5.9.3","@types/node":"^25.3.3","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-stash_0.1.1_1788484358390_0.811711817736438"}}},"time":{"created":"2026-09-03T08:22:51.454Z","modified":"2026-09-04T01:12:38.615Z","0.1.0":"2026-09-03T08:22:51.818Z","0.1.1":"2026-09-04T01:12:38.483Z"},"bugs":{"url":"https://github.com/arcanemachine/pi-stash/issues"},"author":{"name":"Nicholas Moen"},"license":"MIT","homepage":"https://github.com/arcanemachine/pi-stash#readme","keywords":["pi","pi-coding-agent","pi-extension","pi-package","prompt","stash"],"repository":{"url":"git+https://github.com/arcanemachine/pi-stash.git","type":"git"},"description":"Stash and restore an ephemeral Pi prompt with a keyboard shortcut","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"readme":"# pi-stash\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/arcanemachine/pi-stash/main/logo.jpg\" alt=\"pi-stash logo\" width=\"250\" />\n</p>\n\nA [Pi](https://pi.dev) extension for stashing and restoring one ephemeral prompt.\n\n`pi-stash` adds one ephemeral prompt register to Pi's interactive editor. Use a keyboard shortcut to move a draft out of the editor, restore it later, or have it return automatically after you submit another prompt.\n\n> Like this extension? See [my other Pi extensions](https://github.com/arcanemachine/pi-projects).\n\n## Requirements\n\n- Pi 0.84.1 or later\n- Node.js 22.19.0 or later for package development\n\n## Installation\n\nFrom GitHub:\n\n```bash\npi install git:github.com/arcanemachine/pi-stash\n```\n\nFrom npm after publication:\n\n```bash\npi install npm:@arcanemachine/pi-stash\n```\n\nFor local development:\n\n```bash\npi -e ./src/index.ts\n```\n\n## Usage\n\nThe default shortcut is `Alt+S` (`alt+s`). It operates only while Pi's prompt editor is focused.\n\n| Editor    | Register  | Result                                                                                       |\n| --------- | --------- | -------------------------------------------------------------------------------------------- |\n| Non-empty | Any       | The exact editor text is stashed and the editor is cleared. Pi notifies that it was stashed. |\n| Empty     | Non-empty | The register is restored into the editor and cleared. Pi notifies that it was restored.      |\n| Empty     | Empty     | Pi appends `Stash register is empty` for this shortcut action.                               |\n\nStashing a new prompt replaces the previous register without confirmation. Meaningful whitespace inside a stashed prompt is preserved. Each stash action appends a plain Pi notification: `Message contents stashed. Press [configured shortcut] to restore.` The active shortcut is shown in readable form.\n\nAfter you submit another ordinary interactive prompt while a register exists, the register is restored into the editor immediately and cleared. This makes the stashed prompt available as the next draft while Pi processes the prompt you just sent, and appends `Stashed message restored` as a plain Pi notification. Manual restoration appends the same notification.\n\nThe register is in memory only. It survives `/reload` in the same Pi process and session, but is cleared when Pi starts another session or exits. It is not added to the conversation or written to disk.\n\n## Settings\n\nThe shortcut can be changed in Pi's normal global settings file, `~/.pi/agent/settings.json`:\n\n```json\n{\n  \"pi-stash\": {\n    \"shortcut\": \"alt+d\"\n  }\n}\n```\n\nUse a shortcut string from Pi's documented `modifier+key` format. Restart Pi or reload the extension after changing this setting. Invalid values fall back to `alt+s`.\n\nThis extension reads only the global Pi settings namespace shown above. It does not create a package-owned configuration file or modify settings automatically.\n\n## Development\n\n```bash\nnpm install --ignore-scripts --workspaces=false\nnpm run format:check\nnpm run typecheck\nnpm run test\nnpm run build\nnpm pack --dry-run\n```\n\nPi loads the TypeScript entrypoint directly from `src/index.ts`; no compiled runtime artifact is required by Pi.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}