{"_id":"@dreki-gg/pi-ask-mode","_rev":"6-bd65dcc81189f86c70996d41e8af1c59","name":"@dreki-gg/pi-ask-mode","dist-tags":{"latest":"0.3.3"},"versions":{"0.1.0":{"name":"@dreki-gg/pi-ask-mode","version":"0.1.0","keywords":["pi-package"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","_id":"@dreki-gg/pi-ask-mode@0.1.0","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"homepage":"https://github.com/dreki-gg/pi-extensions#readme","bugs":{"url":"https://github.com/dreki-gg/pi-extensions/issues"},"pi":{"extensions":["./extensions/ask-mode"]},"dist":{"shasum":"1e645f56ba375fcb9c8f4fcd99fa880889a79d71","tarball":"https://registry.npmjs.org/@dreki-gg/pi-ask-mode/-/pi-ask-mode-0.1.0.tgz","fileCount":8,"integrity":"sha512-x8YSmBI6N7zShtkX2U5hExoMJUbqwRZBExj3eHWlXCvoBQ+VYhUSecMwX/py4vMr5Vc9aBakeNT7eFgmnUy6qA==","signatures":[{"sig":"MEUCICkNzNrsQgHjRN+cD2tQOx166yK5sQWn0ehRgyomnYZnAiEA+JN1qZkfSHnb8TG5NmAc066NqkNkCTWnu3HWdCfzz78=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13144},"type":"module","gitHead":"8e9aa0963fe81286e9c5972f6a9d666645807f1a","scripts":{"lint":"oxlint extensions","format":"oxfmt --write extensions","typecheck":"tsc --noEmit","format:check":"oxfmt --check extensions"},"_npmUser":{"name":"jalbarrang","email":"jalbarrandev@gmail.com"},"repository":{"url":"git+https://github.com/dreki-gg/pi-extensions.git","type":"git","directory":"packages/ask-mode"},"_npmVersion":"11.12.1","description":"Read-only ask mode for pi — restricts tools to read-only operations, blocking file creation, editing, and deletion","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.43.0","oxlint":"^1.58.0","typescript":"^6.0.0","@types/node":"24"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-ask-mode_0.1.0_1778626975944_0.8957848142231708","host":"s3://npm-registry-packages-npm-production"},"deprecated":"No longer maintained."},"0.3.0":{"name":"@dreki-gg/pi-ask-mode","version":"0.3.0","keywords":["pi-package"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","_id":"@dreki-gg/pi-ask-mode@0.3.0","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"homepage":"https://github.com/dreki-gg/pi-extensions#readme","bugs":{"url":"https://github.com/dreki-gg/pi-extensions/issues"},"pi":{"extensions":["./extensions/ask-mode"]},"dist":{"shasum":"0333f96183b4fee153674147f4bf47486e0204ce","tarball":"https://registry.npmjs.org/@dreki-gg/pi-ask-mode/-/pi-ask-mode-0.3.0.tgz","fileCount":12,"integrity":"sha512-MPaXJLMnr4YIP1GGMFx7YWBsbshuZsOL+Jl3HJDW6K0aMBGHfXxHpQjPC2KxZjdZ5XU3xUyYQJ0+OsrbT70CMg==","signatures":[{"sig":"MEUCIFF0Uxn/5mpzj7X67/Rhmh69DzqUU8eRc/QgMlt2JdSsAiEAmvyEvEfTX+rijPtkTx+dpntIXIS7aRAZG3fJ6X44G7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dreki-gg%2fpi-ask-mode@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28158},"type":"module","gitHead":"0d38aadbf7b8f9f0db93f8cb0770522ae1e65e6c","scripts":{"lint":"oxlint extensions","format":"oxfmt --write extensions","prepack":"node --experimental-strip-types scripts/prepack.js","postpack":"rm -rf node_modules/@dreki-gg","typecheck":"tsc --noEmit","format:check":"oxfmt --check extensions"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8fe5fbf9-4a7f-45e2-88ac-7fb1f78e2935"}},"repository":{"url":"git+https://github.com/dreki-gg/pi-extensions.git","type":"git","directory":"packages/ask-mode"},"_npmVersion":"11.11.0","description":"Read-only ask mode for pi — restricts tools to read-only operations, blocking file creation, editing, and deletion","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@dreki-gg/pi-command-sandbox":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.43.0","oxlint":"^1.58.0","typescript":"^6.0.0","@types/node":"24"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"bundleDependencies":["@dreki-gg/pi-command-sandbox"],"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-ask-mode_0.3.0_1778660839846_0.44592333320959","host":"s3://npm-registry-packages-npm-production"},"deprecated":"No longer maintained."},"0.3.1":{"name":"@dreki-gg/pi-ask-mode","version":"0.3.1","keywords":["pi-package"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","_id":"@dreki-gg/pi-ask-mode@0.3.1","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"homepage":"https://github.com/dreki-gg/pi-extensions#readme","bugs":{"url":"https://github.com/dreki-gg/pi-extensions/issues"},"pi":{"extensions":["./extensions/ask-mode"]},"dist":{"shasum":"d463f9256ffd42205e2db441d601af518c3019d4","tarball":"https://registry.npmjs.org/@dreki-gg/pi-ask-mode/-/pi-ask-mode-0.3.1.tgz","fileCount":12,"integrity":"sha512-tJ+2E4URNNbSIRnCNNljwCnQVHRgndRrNmYZrBRM5dFChWWxbl3QMsj047FXL7tXVc9DQWNQ7z0WnV3Ys/3N0g==","signatures":[{"sig":"MEYCIQCxMdHMuU1cZFWsBPSlc0jUXwi61FLfWL+CqbftYsdJCwIhAINhr6N4GF+YsB5i78UrO4aKkdgyL0WiiEjqQq0XL+ys","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dreki-gg%2fpi-ask-mode@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28746},"type":"module","gitHead":"afbf96a5bc6ed1d18d2c7e204ea016a460356b3b","scripts":{"lint":"oxlint extensions","format":"oxfmt --write extensions","prepack":"node --experimental-strip-types scripts/prepack.js","postpack":"rm -rf node_modules/@dreki-gg","typecheck":"tsc --noEmit","format:check":"oxfmt --check extensions"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8fe5fbf9-4a7f-45e2-88ac-7fb1f78e2935"}},"repository":{"url":"git+https://github.com/dreki-gg/pi-extensions.git","type":"git","directory":"packages/ask-mode"},"_npmVersion":"11.12.1","description":"Read-only ask mode for pi — restricts tools to read-only operations, blocking file creation, editing, and deletion","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@dreki-gg/pi-command-sandbox":"0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.43.0","oxlint":"^1.58.0","typescript":"^6.0.0","@types/node":"24"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"bundleDependencies":["@dreki-gg/pi-command-sandbox"],"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-ask-mode_0.3.1_1779511278789_0.03279075386558428","host":"s3://npm-registry-packages-npm-production"},"deprecated":"No longer maintained."},"0.3.2":{"name":"@dreki-gg/pi-ask-mode","version":"0.3.2","keywords":["pi-package"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","_id":"@dreki-gg/pi-ask-mode@0.3.2","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"homepage":"https://github.com/dreki-gg/pi-extensions#readme","bugs":{"url":"https://github.com/dreki-gg/pi-extensions/issues"},"pi":{"extensions":["./extensions/ask-mode"]},"dist":{"shasum":"9f47c49d148456d717bad6828e6c2ff6e654fa76","tarball":"https://registry.npmjs.org/@dreki-gg/pi-ask-mode/-/pi-ask-mode-0.3.2.tgz","fileCount":9,"integrity":"sha512-hb/KFWQFDaEGFPwZAeIb2f/9c8mdz05UAwPqns5i1eGIRM0wUMXNMWwIATyLgUDgyW8n2e1QxmElMSgwOgW4ag==","signatures":[{"sig":"MEQCIDFP+mznzQ36Et55Dg4W+fdtZx+oZANM88TGuZ57XmG9AiB3ZldFmHwuzKUxPMau/PGDuhgZF8hwlDfu54C+wDTg+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dreki-gg%2fpi-ask-mode@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12493},"type":"module","gitHead":"65fe939faa4de5e7348ac97c631aec9ac8697172","scripts":{"lint":"oxlint extensions","format":"oxfmt --write extensions","typecheck":"tsc --noEmit","format:check":"oxfmt --check extensions"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8fe5fbf9-4a7f-45e2-88ac-7fb1f78e2935"}},"repository":{"url":"git+https://github.com/dreki-gg/pi-extensions.git","type":"git","directory":"packages/ask-mode"},"_npmVersion":"11.13.0","description":"Read-only ask mode for pi — restricts tools to read-only operations, blocking file creation, editing, and deletion","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@dreki-gg/pi-command-sandbox":"^0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.43.0","oxlint":"^1.58.0","typescript":"^6.0.0","@types/node":"24"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-ask-mode_0.3.2_1779840488116_0.0667559505884534","host":"s3://npm-registry-packages-npm-production"},"deprecated":"No longer maintained."},"0.3.3":{"name":"@dreki-gg/pi-ask-mode","version":"0.3.3","keywords":["pi-package"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","_id":"@dreki-gg/pi-ask-mode@0.3.3","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"homepage":"https://github.com/dreki-gg/pi-extensions#readme","bugs":{"url":"https://github.com/dreki-gg/pi-extensions/issues"},"pi":{"extensions":["./extensions/ask-mode"]},"dist":{"shasum":"e73ebfa5ea5e5015058fb3e5510e8a8cd5794881","tarball":"https://registry.npmjs.org/@dreki-gg/pi-ask-mode/-/pi-ask-mode-0.3.3.tgz","fileCount":9,"integrity":"sha512-Ed3FRqTYwmJJDAgsZBenbGv2Y78GlHMZOj/2hxsClSAjSQG6XM2WGX6TxuUq1gzzBrj6iKwG6M062vm9BfvR+Q==","signatures":[{"sig":"MEYCIQDlZrs97IyE6uaV3J/n6xM+IPeyT0TXAkC3JSyO1rK8YwIhAM2EcIritgG3eY0p+v1SqWc6SA1j4pyIJV7Q6Va/4rgt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dreki-gg%2fpi-ask-mode@0.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12589},"type":"module","gitHead":"a10e4fe63b0ac0d7bce23df85cc46a61a0134bea","scripts":{"lint":"oxlint extensions","format":"oxfmt --write extensions","typecheck":"tsc --noEmit","format:check":"oxfmt --check extensions"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8fe5fbf9-4a7f-45e2-88ac-7fb1f78e2935"}},"repository":{"url":"git+https://github.com/dreki-gg/pi-extensions.git","type":"git","directory":"packages/ask-mode"},"_npmVersion":"11.13.0","description":"Read-only ask mode for pi — restricts tools to read-only operations, blocking file creation, editing, and deletion","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@dreki-gg/pi-command-sandbox":"^0.3.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.43.0","oxlint":"^1.58.0","typescript":"^6.0.0","@types/node":"24"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-ask-mode_0.3.3_1780002382034_0.46795499524092254","host":"s3://npm-registry-packages-npm-production"},"deprecated":"No longer maintained."}},"time":{"created":"2026-05-12T23:02:55.873Z","modified":"2026-06-25T01:38:06.585Z","0.1.0":"2026-05-12T23:02:56.094Z","0.3.0":"2026-05-13T08:27:20.019Z","0.3.1":"2026-05-23T04:41:18.965Z","0.3.2":"2026-05-27T00:08:08.271Z","0.3.3":"2026-05-28T21:06:22.154Z"},"bugs":{"url":"https://github.com/dreki-gg/pi-extensions/issues"},"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","homepage":"https://github.com/dreki-gg/pi-extensions#readme","keywords":["pi-package"],"repository":{"url":"git+https://github.com/dreki-gg/pi-extensions.git","type":"git","directory":"packages/ask-mode"},"description":"Read-only ask mode for pi — restricts tools to read-only operations, blocking file creation, editing, and deletion","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"readme":"# @dreki-gg/pi-ask-mode\n\nRead-only ask mode for [pi](https://github.com/badlogic/pi-mono). Toggle with `/ask` — pi can read, search, and answer but cannot create, edit, or delete files.\n\n## Install\n\n```bash\npi install npm:@dreki-gg/pi-ask-mode\n```\n\n## Usage\n\n| Feature | Name | Notes |\n|---|---|---|\n| Flag | `--ask` | Start pi in ask mode |\n| Command | `/ask` | Toggle ask mode on/off |\n| Shortcut | `Ctrl+Alt+A` | Toggle ask mode |\n\nStart in ask mode:\n\n```bash\npi --ask\n```\n\nToggle inside pi:\n\n```text\n/ask\n```\n\nEnter ask mode and send a prompt in one step:\n\n```text\n/ask How does authentication work in this codebase?\n```\n\nRun `/ask` again to exit ask mode.\n\n## Allowed\n\n- `read` — Read file contents\n- `bash` — Read-only commands only (`ls`, `grep`, `cat`, `git status`, `git log`, etc.)\n- `grep` — Search file contents\n- `find` — Find files by pattern\n- `ls` — List directories\n\n## Blocked\n\n- `edit` — File editing\n- `write` — File creation/overwriting\n- Destructive bash commands — `rm`, `mv`, `cp`, `mkdir`, `git commit`, `git push`, `npm install`, redirects, editors, and similar commands\n\n## How it works\n\nAsk mode uses two layers of protection:\n\n1. **Tool whitelist** — Only read-only tools are exposed to the LLM via `setActiveTools()`.\n2. **Defense-in-depth** — A `tool_call` handler blocks `edit`, `write`, and destructive bash commands even if the LLM somehow attempts them.\n\nAsk mode has no end-of-turn menu and creates no `.plans/` files. It stays active until you run `/ask` again.\n\nState persists across session restarts and tree navigation.\n\n## Difference from pi-modes\n\n[`@dreki-gg/pi-modes`](https://github.com/dreki-gg/pi-extensions/tree/main/packages/modes) provides configurable presets that can also restrict tools. Use pi-modes if you want multiple configurable modes with model/thinking presets. Use pi-ask-mode if you just want a simple dedicated read-only toggle.\n","readmeFilename":"README.md"}