{"_id":"008-cli","name":"008-cli","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"008-cli","version":"0.1.0","description":"008 — Approve Cursor AI agent actions from your Android phone. An Ipenga Consulting product.","bin":{"agent008":"bin/008.js"},"scripts":{"start":"node bin/008.js"},"engines":{"node":">=18.17.0"},"keywords":["cursor","ai","agent","approval","phone","android","developer-tools","008","ipenga"],"homepage":"https://008.ipengaconsulting.com","repository":{"type":"git","url":"git+https://github.com/ipenga/008-cli.git"},"author":{"name":"Ipenga Consulting","url":"https://ipengaconsulting.com"},"license":"MIT","dependencies":{"qrcode-terminal":"^0.12.0","web-push":"^3.6.7","ws":"^8.18.0"},"optionalDependencies":{"cloudflared":"^0.5.3"},"_id":"008-cli@0.1.0","bugs":{"url":"https://github.com/ipenga/008-cli/issues"},"_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-5A9dKtFgz917e+dwj7dh1JiOLdKvG6qFef5cc7IX2ZELEnSP/QY5/Y274y6MdOu6T7qQ6N9zZ/rqXWnCD52sCg==","shasum":"98bc3e6756d35ba5515e8ab72f1de0b8946fbf81","tarball":"https://registry.npmjs.org/008-cli/-/008-cli-0.1.0.tgz","fileCount":13,"unpackedSize":37324,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHhbCBDLGsoGaszSk9IObFQlLajkQAku3+jLQFP2piLVAiBQLUgTq/yMJpFIZ8lPiHftM+KUzkMqqSUfkBliiSqUOQ=="}]},"_npmUser":{"name":"ipenga","email":"carl@ipengaconsulting.com"},"directories":{},"maintainers":[{"name":"ipenga","email":"carl@ipengaconsulting.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/008-cli_0.1.0_1779129936112_0.028398001901303482"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-18T18:45:35.964Z","0.1.0":"2026-05-18T18:45:36.283Z","modified":"2026-05-18T18:45:36.495Z"},"maintainers":[{"name":"ipenga","email":"carl@ipengaconsulting.com"}],"description":"008 — Approve Cursor AI agent actions from your Android phone. An Ipenga Consulting product.","homepage":"https://008.ipengaconsulting.com","keywords":["cursor","ai","agent","approval","phone","android","developer-tools","008","ipenga"],"repository":{"type":"git","url":"git+https://github.com/ipenga/008-cli.git"},"author":{"name":"Ipenga Consulting","url":"https://ipengaconsulting.com"},"bugs":{"url":"https://github.com/ipenga/008-cli/issues"},"license":"MIT","readme":"# 008 — Cursor agent gate (CLI)\n\n> The agent has a license to run. You have a license to stop it.\n\nApprove every Cursor AI agent shell/MCP/file action from your Android phone, with a 25 s timeout that fails open if the tunnel is down. An [Ipenga Consulting](https://ipengaconsulting.com) product.\n\n## Install\n\n```\nnpm install -g 008-cli\n```\n\nYou'll also need [`cloudflared`](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/) on your `PATH` (or `008` will use the bundled `cloudflared` npm package if your platform supports it). And you need Cursor.\n\n## First run\n\n```\ncd path/to/your-cursor-workspace\nagent008 init        # writes .cursor/hooks.json for this workspace\nagent008 start       # boots local server + Cloudflare tunnel, prints a QR code\n```\n\nScan the QR with your Android phone. The PWA installs to your home screen and pairs with this machine. Open a Cursor agent task — every shell or MCP command pings your phone for APPROVE or DENY.\n\n## Commands\n\n| Command | What it does |\n| --- | --- |\n| `agent008 init` | Adds agent008 hooks to `.cursor/hooks.json` in the current directory (idempotent, merges with existing). |\n| `agent008 start` | Boots the local WebSocket server on `:7891`, launches `cloudflared`, prints a pairing QR code. |\n| `agent008 hook` | The hook Cursor calls per `hooks.json`. Reads stdin JSON, talks to the local server, writes `{\"permission\":\"allow\"\\|\"deny\"}` to stdout. Fail-open on any error. |\n| `agent008 activate <key>` | Validates a license key against `https://008-license.vercel.app/api/validate` and stores it. |\n| `agent008 status` | Prints license/trial state, paths, push subscription count. |\n\n## Pricing\n\n| Plan | Price | What you get |\n| --- | --- | --- |\n| Trial | Free for 14 days | Full Solo features, no credit card |\n| Solo | $5 / month | 1 device, email support |\n| Pro | $11 / month | Up to 5 devices, instruction back-channel, history sync, priority support |\n\nBuy at https://008.ipengaconsulting.com\n\n## How it works\n\n```\nCursor agent\n  → .cursor/hooks.json\n  → agent008 hook\n       ↓ ws://localhost:7891\n  agent008 start (WS server + cloudflared tunnel)\n       ↑ wss://*.trycloudflare.com\n  Android phone PWA (008-pwa.vercel.app)\n       ↓ approve / deny\n```\n\nThe 25 second decision timeout means a dead tunnel never blocks your agent — the hook returns `allow` and Cursor continues. Your traffic goes through *your own* Cloudflare Tunnel, not our servers.\n\n## Configuration\n\nAll state lives in `~/.008/config.json`:\n\n| Key | Purpose |\n| --- | --- |\n| `secret` | 16-byte hex shared pairing secret (auto-generated on first run) |\n| `vapid` | Web Push VAPID keypair (auto-generated) |\n| `licenseKey`, `licensePlan`, `licenseExpires`, `licenseValid`, `licenseLastChecked` | Set by `agent008 activate`. Revalidated every 24 h. 7-day offline grace. |\n| `installedAt` | First-run timestamp — used to compute 14-day trial expiry |\n| `subscriptions` | Web Push subscriptions for connected phones |\n| `tunnel`, `wsUrl`, `lastTunnelAt` | Last seen tunnel URL |\n\nEnvironment variable overrides:\n\n| Var | Default |\n| --- | --- |\n| `PORT_008` | `7891` |\n| `HOOK_WS_URL` | `ws://localhost:7891` |\n| `HOOK_TIMEOUT_MS` | `25000` |\n| `LICENSE_API_URL` | `https://008-license.vercel.app` |\n| `PAIR_HOST` | `https://008-pwa.vercel.app/pair` |\n\n## License\n\nMIT. Built by Ipenga Consulting · https://ipengaconsulting.com\n","readmeFilename":"README.md","_rev":"1-316e13cf199a2a3fb866f9bdc0d113ac"}