{"_id":"@arqade/parachute","name":"@arqade/parachute","dist-tags":{"latest":"0.2.0-alpha.1"},"versions":{"0.2.0-alpha.1":{"name":"@arqade/parachute","version":"0.2.0-alpha.1","description":"Standalone CDP runtime sidecar for Node.js debugging. Part of the Arqade toolkit.","repository":{"type":"git","url":"git+https://github.com/tempo-ai-labs/arqade.git","directory":"packages/parachute"},"license":"MIT","type":"module","main":"dist/index.js","publishConfig":{"access":"public"},"bin":{"parachute":"dist/index.js"},"dependencies":{"chrome-remote-interface":"^0.33.2","commander":"^13.1.0"},"devDependencies":{"@types/chrome-remote-interface":"^0.33.0","@types/node":"^22.13.0","typescript":"^5.7.0","vitest":"^3.0.0"},"engines":{"node":">=20.0.0"},"scripts":{"build":"rm -rf dist && tsc","dev":"tsc --watch","test":"vitest run","test:watch":"vitest"},"_id":"@arqade/parachute@0.2.0-alpha.1","gitHead":"796dfee9dd1bf6ba7bd15dafe8e790d14141462e","types":"./dist/index.d.ts","bugs":{"url":"https://github.com/tempo-ai-labs/arqade/issues"},"homepage":"https://github.com/tempo-ai-labs/arqade#readme","_integrity":"sha512-nanr4f1F3mosY1Lc33+b6yA7mSmxAw9aRch26WAx8y1uAFL6fehhDw2yRDWI6W437q0Y3VEYUTxP2QV313u7qg==","_resolved":"/private/var/folders/90/ttd06r1x0bg8qy51qfbd6bch0000gn/T/d76844aed5d1f3eec2981030e9ceaf53/arqade-parachute-0.2.0-alpha.1.tgz","_from":"file:arqade-parachute-0.2.0-alpha.1.tgz","_nodeVersion":"23.5.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-nanr4f1F3mosY1Lc33+b6yA7mSmxAw9aRch26WAx8y1uAFL6fehhDw2yRDWI6W437q0Y3VEYUTxP2QV313u7qg==","shasum":"289864dfea115242e40bd7a967a9152b1d75eec0","tarball":"https://registry.npmjs.org/@arqade/parachute/-/parachute-0.2.0-alpha.1.tgz","fileCount":45,"unpackedSize":123253,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIH3MhktGfBxyIt/SIXVtjfxcFIW4YwRet+kQnjZjsH8HAiBzX488qu2qHPWnCr7WmW6uf3BL9CAq5a4hdU6fF04wsQ=="}]},"_npmUser":{"name":"antoinenei","email":"antoine.neidecker@gmail.com"},"directories":{},"maintainers":[{"name":"antoinenei","email":"antoine.neidecker@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/parachute_0.2.0-alpha.1_1779093702296_0.49931452079634564"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-18T08:41:42.217Z","0.2.0-alpha.1":"2026-05-18T08:41:42.436Z","modified":"2026-05-18T08:41:42.687Z"},"maintainers":[{"name":"antoinenei","email":"antoine.neidecker@gmail.com"}],"description":"Standalone CDP runtime sidecar for Node.js debugging. Part of the Arqade toolkit.","homepage":"https://github.com/tempo-ai-labs/arqade#readme","repository":{"type":"git","url":"git+https://github.com/tempo-ai-labs/arqade.git","directory":"packages/parachute"},"bugs":{"url":"https://github.com/tempo-ai-labs/arqade/issues"},"license":"MIT","readme":"# @arqade/parachute\n\n> Standalone CDP runtime sidecar for Node.js debugging.\n\nPart of [Arqade](../../README.md) — your AI QA partner for Electron and web apps. Used by [`@arqade/agent`](../agent/README.md) as the runtime-observation channel, but ships and runs standalone — drop it on any Node.js process to capture console output, exceptions, and on-demand evaluation.\n\n> **Renamed from `@thymic/parachute` in 0.2.0-alpha.1** (and previously from `@ladyfix/parachute` in 0.2.0-alpha.0). Old packages are deprecated; install `@arqade/parachute` instead.\n\n---\n\nRuntime debugging sidecar for Node.js applications. Attaches to any Node.js process via the V8 Inspector Protocol, captures console output and uncaught exceptions, and exposes a local HTTP API for external tools to query.\n\n## Quick Start\n\n```bash\nnpx @arqade/parachute your-app.js\n```\n\nThis will:\n1. Launch `your-app.js` with the Node.js inspector enabled\n2. Connect to the inspector via Chrome DevTools Protocol\n3. Start capturing all console output and uncaught exceptions\n4. Expose a local API at `http://127.0.0.1:7700`\n\n## API\n\n### `GET /events`\n\nReturns all captured events. Supports query parameters:\n- `?type=console`, `?type=exception`, or `?type=probe` — filter by event type\n- `?since=<event-id>` — return events after a given ID\n\n### `POST /evaluate`\n\nEvaluate a JavaScript expression in the running process.\n\n```bash\ncurl -X POST http://127.0.0.1:7700/evaluate \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"expression\": \"process.memoryUsage()\"}'\n```\n\n### `GET /health`\n\nHealth check with event count. Returns `{ status: \"ok\", events: <number> }`.\n\n### Other endpoints\n\nParachute's source also exposes endpoints for probes (`/probes`, `/probes/{trace,condition,watch}`), Chrome DevTools-style debugging (`/breakpoints`, `/debugger/{status,scopes,evaluate,resume,step-over,step-into,step-out}`), runtime context (`/context`), capture sessions (`/sessions`, `/sessions/:id/stream`, `/sessions/:id/actions`), and an SSE alert stream (`/alerts/stream`). These are used by `@arqade/agent` today and will be documented per-endpoint in a later release — see [`packages/parachute/src/api-server.ts`](./src/api-server.ts) for the source of truth.\n\n## CLI Options\n\n```\nparachute <entrypoint> [options]\n\nOptions:\n  -p, --port <number>          API server port (default: 7700)\n  --inspect-port <number>      Node.js inspector port (default: 9229)\n  --buffer-size <number>       Max events in memory (default: 1000)\n  -V, --version                Show version\n  -h, --help                   Show help\n```\n\n## How It Works\n\nParachute runs as a separate process alongside your app. It uses the Chrome DevTools Protocol (CDP) to connect to the V8 inspector, subscribe to runtime events, and evaluate expressions — all without any code changes to your application.\n\n## License\n\nMIT — see [LICENSE](../../LICENSE).\n\n## See also\n\n- [`@arqade/agent`](../agent/README.md) — MCP server that drives the browser; depends on this package.\n- [Root README](../../README.md) — what Arqade is, who it's for.\n- [CHANGELOG](../../CHANGELOG.md) — release notes.\n","readmeFilename":"README.md","_rev":"1-2b1fc841744c4a7fffa8cd8bbb67bf7b"}