{"_id":"@aarsh21/open-pi","_rev":"8-22d93b68f574f99d600ee7aeef4e3071","name":"@aarsh21/open-pi","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@aarsh21/open-pi","version":"0.1.0","keywords":["opencode","opencode-plugin","open-pi","pi","agent","tools"],"license":"MIT","_id":"@aarsh21/open-pi@0.1.0","maintainers":[{"name":"aarsh21","email":"aarshpersonal@proton.me"}],"bin":{"open-pi":"dist/cli.js"},"dist":{"shasum":"3e45cbbde7be36e88e0abeedb653ab2c97c73e06","tarball":"https://registry.npmjs.org/@aarsh21/open-pi/-/open-pi-0.1.0.tgz","fileCount":8,"integrity":"sha512-M75F+9PRGMEBZuvOMU8w33vvvnHFg6PziINpjAS9vSH82t0dqzRAgYZk2UTmYmzL0cYywWlohWFthJqyjW8O1g==","signatures":[{"sig":"MEUCICVmoCRkRlU1nhL5Po/bYLyoSER7qVv0u7U1fpPAdFPIAiEA1rxTTky6dXaGAR8G3swXqnJM7fYUYDIWuIA5EFGBN+Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20325},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4a000bc1a76979fccb18d0abc0645a32ec33bae2","scripts":{"build":"tsc -p tsconfig.json && node -e \"require('fs').chmodSync('dist/cli.js', 0o755)\"","prepare":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"aarsh21","email":"aarshpersonal@proton.me"},"_npmVersion":"11.12.1","description":"Pi-style agent and tool plugin for OpenCode.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"latest","@types/node":"latest"},"_npmOperationalInternal":{"tmp":"tmp/open-pi_0.1.0_1778830815621_0.04906483153297092","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@aarsh21/open-pi","version":"0.1.2","keywords":["opencode","opencode-plugin","open-pi","pi","agent","tools"],"license":"MIT","_id":"@aarsh21/open-pi@0.1.2","maintainers":[{"name":"aarsh21","email":"aarshpersonal@proton.me"}],"bin":{"open-pi":"dist/cli.js"},"dist":{"shasum":"a9d7f356b8f83c5f098488fbfacb5af736bca9d6","tarball":"https://registry.npmjs.org/@aarsh21/open-pi/-/open-pi-0.1.2.tgz","fileCount":8,"integrity":"sha512-tnEC+gX4yv+9ntQHTUJ4crOX2as6T3UfS8DLMdF03gchf+NSAcqH4JbkHbR5THQ/yIcPH44ucyCyPEksGiB3Ag==","signatures":[{"sig":"MEYCIQDNYgzGNDZsfoUvr+OBBGE2Dzb/wvcy6qWBNvuK4hRQGwIhAMGd7piArzz6fYz3jSyLPzstgGd3u/+h2Rta34pmVNSG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21768},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"14014470357645d97e8686ca4b8ea6c282e48a63","scripts":{"build":"tsc -p tsconfig.json && node -e \"require('fs').chmodSync('dist/cli.js', 0o755)\"","prepare":"npm run build","release":"npm version patch && npm publish --access public && git push --follow-tags","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"aarsh21","email":"aarshpersonal@proton.me"},"_npmVersion":"11.12.1","description":"Pi-style agent and tool plugin for OpenCode.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"latest","@types/node":"latest"},"_npmOperationalInternal":{"tmp":"tmp/open-pi_0.1.2_1778831428828_0.25873154453331715","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@aarsh21/open-pi","version":"0.1.3","keywords":["opencode","opencode-plugin","open-pi","pi","agent","tools"],"license":"MIT","_id":"@aarsh21/open-pi@0.1.3","maintainers":[{"name":"aarsh21","email":"aarshpersonal@proton.me"}],"bin":{"open-pi":"dist/cli.js"},"dist":{"shasum":"239642187e322af16040539288f8f50ecc900792","tarball":"https://registry.npmjs.org/@aarsh21/open-pi/-/open-pi-0.1.3.tgz","fileCount":8,"integrity":"sha512-vJY8jL1zXarkI0a6kLHcbElC9hDUcCIEale4xoURrA5BoIvp9an+cVc4mlZoM3U2TpGS6+DQ4i9PXBhyFOs1vw==","signatures":[{"sig":"MEYCIQDuRQBzuKDh+6Om+BN/6gOiSYJQ/sqip0XHOF5145OhkAIhAL4uBtNl7r73ud13FDKmvxBX42m0J03K/YOuNzwNCGCi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22505},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"35a2b87721579bbe7fb246a458a0d0648f3c00e0","scripts":{"build":"tsc -p tsconfig.json && node -e \"require('fs').chmodSync('dist/cli.js', 0o755)\"","prepare":"npm run build","release":"npm version patch && npm publish --access public && git push --follow-tags","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"aarsh21","email":"aarshpersonal@proton.me"},"_npmVersion":"11.12.1","description":"Pi-style agent and tool plugin for OpenCode.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"latest","@types/node":"latest"},"_npmOperationalInternal":{"tmp":"tmp/open-pi_0.1.3_1778832463994_0.9963163368896351","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@aarsh21/open-pi","version":"0.1.5","keywords":["opencode","opencode-plugin","open-pi","pi","agent","tools"],"license":"MIT","_id":"@aarsh21/open-pi@0.1.5","maintainers":[{"name":"aarsh21","email":"aarshpersonal@proton.me"}],"bin":{"open-pi":"dist/cli.js"},"dist":{"shasum":"40723f5ef44a8d0fac54aa4f653227fa8d22e91c","tarball":"https://registry.npmjs.org/@aarsh21/open-pi/-/open-pi-0.1.5.tgz","fileCount":8,"integrity":"sha512-V/xzME/n52B7GLea/xgVrPtG1RCkZKnDOxRXh0esI+Q13NT9r19O6GSlFnlPDEHK6wRg5Xzw31idAlhl2uKIcQ==","signatures":[{"sig":"MEYCIQCgFB8Lwi4wj9h1Jo4bplIiCVn/Q8BAqoiGKE9SqqMTVAIhAI/ZFIOgCvzJ9J76A8nORe84GXOj7q35ISwvnPHoV1p5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22699},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"08b09e946d59085fa3c0103150b85f6571807c2f","scripts":{"build":"tsc -p tsconfig.json && node -e \"require('fs').chmodSync('dist/cli.js', 0o755)\"","prepare":"npm run build","release":"npm version patch && npm publish --access public && git push --follow-tags","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"aarsh21","email":"aarshpersonal@proton.me"},"_npmVersion":"11.12.1","description":"Pi-style agent and tool plugin for OpenCode.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"latest","@types/node":"latest"},"_npmOperationalInternal":{"tmp":"tmp/open-pi_0.1.5_1778832643649_0.23358782160685054","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@aarsh21/open-pi","version":"0.1.7","keywords":["opencode","opencode-plugin","open-pi","pi","agent","tools"],"license":"MIT","_id":"@aarsh21/open-pi@0.1.7","maintainers":[{"name":"aarsh21","email":"aarshpersonal@proton.me"}],"bin":{"open-pi":"dist/cli.js"},"dist":{"shasum":"a266d030688b8e36ccab2324e6ef012084462896","tarball":"https://registry.npmjs.org/@aarsh21/open-pi/-/open-pi-0.1.7.tgz","fileCount":20,"integrity":"sha512-cvyg94TVd3XBrabjmPE3F7jY2Lzs/sc8ogEjPfpqbmajtToEPrJkYai5f5993OatLA6MezHIPzCsOnqZMgtPeg==","signatures":[{"sig":"MEQCIC+mdLwYQtEom54VBvCgQx5Eg9U9i8WOkW3+q3WIXqRKAiBVOSdfYeJnl0RNOFXWgeOjALguj9/ZHmxaEYHKIvvc/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28421},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f64f9d3cb01386712306b5c0d06e45d818844a70","scripts":{"build":"tsc -p tsconfig.json && node dist/syncAgent.js && node -e \"require('fs').chmodSync('dist/cli.js', 0o755)\"","prepare":"npm run build","release":"npm version patch && npm publish --access public && git push --follow-tags","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"aarsh21","email":"aarshpersonal@proton.me"},"_npmVersion":"11.12.1","description":"Pi-style agent and tool plugin for OpenCode.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"latest","@types/node":"latest"},"_npmOperationalInternal":{"tmp":"tmp/open-pi_0.1.7_1778837576414_0.29087959094037585","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aarsh21/open-pi","version":"0.2.0","keywords":["opencode","opencode-plugin","open-pi","pi","agent","tools"],"license":"MIT","_id":"@aarsh21/open-pi@0.2.0","maintainers":[{"name":"aarsh21","email":"aarshpersonal@proton.me"}],"bin":{"open-pi":"dist/cli.js"},"dist":{"shasum":"e2daf93075610b37cd075352ac765b1dc67fe403","tarball":"https://registry.npmjs.org/@aarsh21/open-pi/-/open-pi-0.2.0.tgz","fileCount":26,"integrity":"sha512-LKvCW7l1PU1z3cMPNBGSklZTrl74ENbyBRXeyDOna05Z2AK0pz+qSbQfW6LwY0p3Ey4XPQZvqlRKwcos6zGZ1A==","signatures":[{"sig":"MEYCIQDL32cABbpVDZ930EiXyF98StxCK5UFbm8g1mTGcanRmAIhAMNLkZk2P8tHaCVK6ugEamUk/jLV+SEeSAkCGSiAHAds","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59832},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"fedd9b9b3df00677f00dc023d669b7eb13296d89","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json && node dist/syncAgent.js && node -e \"require('fs').chmodSync('dist/cli.js', 0o755)\"","prepare":"npm run build","release":"npm version patch && npm publish --access public && git push --follow-tags","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"aarsh21","email":"aarshpersonal@proton.me"},"_npmVersion":"11.16.0","description":"Pi-style agent and tool plugin for OpenCode.","directories":{},"_nodeVersion":"26.3.1","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"latest","typescript":"latest","@types/node":"latest"},"_npmOperationalInternal":{"tmp":"tmp/open-pi_0.2.0_1784135314518_0.35664649714522634","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@aarsh21/open-pi","version":"0.2.1","keywords":["opencode","opencode-plugin","open-pi","pi","agent","tools"],"license":"MIT","_id":"@aarsh21/open-pi@0.2.1","maintainers":[{"name":"aarsh21","email":"aarshpersonal@proton.me"}],"bin":{"open-pi":"dist/cli.js"},"dist":{"shasum":"0f8ba35ab08ed786d944ad424f2c25fa2f016a6b","tarball":"https://registry.npmjs.org/@aarsh21/open-pi/-/open-pi-0.2.1.tgz","fileCount":26,"integrity":"sha512-xjg9usxMdFyBHyzKLYGMFEjoCdNMaCFBYCmslV0nlmGxBdFbnCANTE6X8dvmNXNKHM7s1NEAxVCO5d2n3nZFqg==","signatures":[{"sig":"MEUCIQDfBgLKkx2Gvmd9vYI6hgZqM9lCxH5Avvj/z3Q1+NU00QIgIqMIMsnkXqaDhZ1rejFNvgmQVl4jpG9j7QKbW3DHmss=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60526},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"2f3ac17291e49df5a4b251c0d99fe7181827395f","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json && node dist/syncAgent.js && node -e \"require('fs').chmodSync('dist/cli.js', 0o755)\"","prepare":"npm run build","release":"npm version patch && npm publish --access public && git push --follow-tags","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"aarsh21","email":"aarshpersonal@proton.me"},"_npmVersion":"11.16.0","description":"Pi-style agent and tool plugin for OpenCode.","directories":{},"_nodeVersion":"26.3.1","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"latest","typescript":"latest","@types/node":"latest"},"_npmOperationalInternal":{"tmp":"tmp/open-pi_0.2.1_1784136017585_0.20564954313808936","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@aarsh21/open-pi","version":"0.2.2","description":"Pi-style agent and tool plugin for OpenCode.","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"bin":{"open-pi":"dist/cli.js"},"scripts":{"build":"tsc -p tsconfig.json && node dist/syncAgent.js && node -e \"require('fs').chmodSync('dist/cli.js', 0o755)\"","prepare":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","test":"vitest run","prepublishOnly":"npm run build","release":"npm version patch && npm publish --access public && git push --follow-tags"},"dependencies":{"@opencode-ai/plugin":"latest"},"devDependencies":{"@types/node":"latest","typescript":"latest","vitest":"latest"},"keywords":["opencode","opencode-plugin","open-pi","pi","agent","tools"],"license":"MIT","gitHead":"1b0c9d5d1107143f597471205b6fce4111612894","_id":"@aarsh21/open-pi@0.2.2","_nodeVersion":"26.3.1","_npmVersion":"11.16.0","dist":{"integrity":"sha512-wxgVx/JZ477PTBBECOrnuakoYvnn/KDe5jNkUH/FG4ETjJZZ/bDJmLCMf1rvWVyZqkId+ciFJBq5sshmccAcoQ==","shasum":"2ffea98ab4933931506c54535fe5d70160577d45","tarball":"https://registry.npmjs.org/@aarsh21/open-pi/-/open-pi-0.2.2.tgz","fileCount":26,"unpackedSize":62535,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHUjRVWAMzTyltN+8J0ywQ4UtBUGVhH9LjO/DqqOSO4jAiBSj0MkTS306Jp/ZArXE7nxmH5/s9LDPOmALqr6gbHPfw=="}]},"_npmUser":{"name":"aarsh21","email":"aarshpersonal@proton.me"},"directories":{},"maintainers":[{"name":"aarsh21","email":"aarshpersonal@proton.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/open-pi_0.2.2_1784136403492_0.17513613793490967"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-15T07:40:15.554Z","modified":"2026-07-15T17:26:43.764Z","0.1.0":"2026-05-15T07:40:15.766Z","0.1.2":"2026-05-15T07:50:28.960Z","0.1.3":"2026-05-15T08:07:44.144Z","0.1.5":"2026-05-15T08:10:43.799Z","0.1.7":"2026-05-15T09:32:56.575Z","0.2.0":"2026-07-15T17:08:34.666Z","0.2.1":"2026-07-15T17:20:17.757Z","0.2.2":"2026-07-15T17:26:43.665Z"},"license":"MIT","keywords":["opencode","opencode-plugin","open-pi","pi","agent","tools"],"description":"Pi-style agent and tool plugin for OpenCode.","maintainers":[{"name":"aarsh21","email":"aarshpersonal@proton.me"}],"readme":"# open-pi\n\nPi-style agent and tool plugin for OpenCode.\n\nIt installs:\n\n- OpenCode plugin `open-pi`\n- Primary OpenCode agent `pi` (a separate agent — your other agents are untouched; the installer asks whether to make it the default)\n- Pi's system prompt and Pi-style tools that override OpenCode built-ins:\n  - `read`\n  - `bash` (always real bash, SIGKILL process-tree cleanup)\n  - `edit` (Pi's exact-then-fuzzy matching: smart quotes, trailing whitespace, BOM, CRLF)\n  - `write`\n- `web_search` — OpenAI web search, available when OpenAI credentials exist (ChatGPT-subscription OAuth from `/connect` or `OPENAI_API_KEY`). Credentials are checked at plugin load, so restart OpenCode after running `/connect`.\n- Optional ask-user questions: the installer asks whether to enable OpenCode's native `question` tool for the pi agent (multiple-choice questions with custom answers, rendered in the TUI). Off by default to keep pi interruption-free.\n\nTool output truncation is left to OpenCode's built-in cap, keeping tool results token-lean.\n\n## Install\n\n```bash\nbunx @aarsh21/open-pi install\n```\n\nor:\n\n```bash\nnpx @aarsh21/open-pi install\n```\n\nThe installer updates your OpenCode config and writes the agent prompt to:\n\n```txt\n~/.config/opencode/agents/pi.md\n```\n\nThen restart OpenCode and switch to the `pi` agent.\n\n## Manual config\n\nIf you do not want to use the installer, add the plugin to `opencode.json`:\n\n```json\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"plugin\": [\"@aarsh21/open-pi\"],\n  \"agent\": {\n    \"pi\": {\n      \"description\": \"Pi-style coding agent with read, bash, edit, and write tools\",\n      \"mode\": \"primary\",\n      \"prompt\": \"{file:./agents/pi.md}\",\n      \"permission\": {\n        \"read\": \"allow\",\n        \"bash\": \"allow\",\n        \"edit\": \"allow\",\n        \"glob\": \"deny\",\n        \"grep\": \"deny\",\n        \"list\": \"deny\",\n        \"task\": \"deny\",\n        \"todowrite\": \"deny\",\n        \"webfetch\": \"deny\",\n        \"websearch\": \"deny\",\n        \"lsp\": \"deny\",\n        \"skill\": \"deny\",\n        \"question\": \"deny\"\n      }\n    }\n  }\n}\n```\n\nAnd copy `agents/pi.md` into your OpenCode config agents directory.\n\n## Development\n\n```bash\nnpm install\nnpm run build\n```\n\nFor local install while developing:\n\n```bash\nnode dist/cli.js install\n```\n\nThe installer detects local development and adds the local package path to OpenCode's plugin array.\n","readmeFilename":"README.md"}