{"_id":"@brett_lamy/rion","_rev":"3-a369e967dba5746b662400cd114596d8","name":"@brett_lamy/rion","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@brett_lamy/rion","version":"0.1.0","keywords":["rr","time-travel","debugging","recording","tracing","replay"],"license":"MIT","_id":"@brett_lamy/rion@0.1.0","maintainers":[{"name":"bel423","email":"bel423@gmail.com"}],"bin":{"rion":"bin/rion.mjs"},"dist":{"shasum":"7e041a596c7b11f5052788fe4cef91ce2cd7f17a","tarball":"https://registry.npmjs.org/@brett_lamy/rion/-/rion-0.1.0.tgz","fileCount":16,"integrity":"sha512-sdISJX1UEQM5OyFh2CadADV5IxbC0QViTRMT6zBCVvR7KaIzfrEgwMRs8Fk1VRK1xdBI9npQGC+9q6oz8vwaEA==","signatures":[{"sig":"MEUCIQCCTH5S8Lo6JicKvBMagS3RWHcNewU4d+1aIY1j6alhdQIgMxIYkGV9CyUEoNkKHE+j6VS9K3VmDebjEjYkR3STbiY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78691},"type":"module","engines":{"node":">=18"},"gitHead":"b8a148ca3767348c87c2f5a13593e7e12d4ef82e","scripts":{"prepack":"node scripts/sync-vendor.mjs"},"_npmUser":{"name":"bel423","email":"bel423@gmail.com"},"_npmVersion":"10.9.2","description":"Record your Rust/C/C++/Go program under rr and time-travel through every line in the rr-dash dashboard — created by replay.io","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@durable-streams/client":"^0.2.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rion_0.1.0_1783462411389_0.3814314574027935","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@brett_lamy/rion","version":"0.1.1","keywords":["rr","time-travel","debugging","recording","tracing","replay"],"license":"MIT","_id":"@brett_lamy/rion@0.1.1","maintainers":[{"name":"bel423","email":"bel423@gmail.com"}],"bin":{"rion":"bin/rion.mjs"},"dist":{"shasum":"b6e14a52500fbd2100da724850cd74792f8feae9","tarball":"https://registry.npmjs.org/@brett_lamy/rion/-/rion-0.1.1.tgz","fileCount":17,"integrity":"sha512-NRuy3nzveqKXa68brHM/GS7AyjxOSd430U5SnYGhGxf4SOcsK5BFggRbFFbClP3r3+bjlmZdnFwOKGYgnPQKWw==","signatures":[{"sig":"MEUCIQClPK/2wo5EjP4hy2ZfNpUQ+xfDzFCqsbqBAj+f5tMcVwIgH99ogXYabizyO9HPo1p6p+2dzQqY77GOHLJRqbKk6/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81614},"type":"module","engines":{"node":">=18"},"gitHead":"b8a148ca3767348c87c2f5a13593e7e12d4ef82e","scripts":{"prepack":"node scripts/sync-vendor.mjs"},"_npmUser":{"name":"bel423","email":"bel423@gmail.com"},"_npmVersion":"10.9.2","description":"Record your Rust/C/C++/Go program under rr and time-travel through every line in the rr-dash dashboard — created by replay.io","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@durable-streams/client":"^0.2.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/rion_0.1.1_1783462955434_0.8523615024808122","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@brett_lamy/rion","version":"0.1.2","description":"Record your Rust/C/C++/Go program under rr and time-travel through every line in the rr-dash dashboard — created by replay.io","type":"module","bin":{"rion":"bin/rion.mjs"},"engines":{"node":">=18"},"dependencies":{"@durable-streams/client":"^0.2.6"},"scripts":{"prepack":"node scripts/sync-vendor.mjs"},"keywords":["rr","time-travel","debugging","recording","tracing","replay"],"license":"MIT","publishConfig":{"access":"public"},"_id":"@brett_lamy/rion@0.1.2","gitHead":"b8a148ca3767348c87c2f5a13593e7e12d4ef82e","_nodeVersion":"23.11.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-nExLcRH8WAHlZm5c8++m9/RYWU6YtW0OnXjWllJwdNrF3wsdPVEtwzrVmuaGIkHr11Ot5bAq1QQFaKl7DO8GvQ==","shasum":"cdebf0fa825d4cd85d3bb0af6b64ab66184f4471","tarball":"https://registry.npmjs.org/@brett_lamy/rion/-/rion-0.1.2.tgz","fileCount":18,"unpackedSize":84938,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBKsIBlcD7s4c1Q9adLlscinA20l0d6IUq+CB+v35a3PAiEA62P9FbnhNhj5zV36p+sBgGJYrAQAvVu2wPfWNhge6NI="}]},"_npmUser":{"name":"bel423","email":"bel423@gmail.com"},"directories":{},"maintainers":[{"name":"bel423","email":"bel423@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rion_0.1.2_1783463427801_0.12421879953584036"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-07T22:13:31.260Z","modified":"2026-07-07T22:30:28.114Z","0.1.0":"2026-07-07T22:13:31.601Z","0.1.1":"2026-07-07T22:22:35.564Z","0.1.2":"2026-07-07T22:30:27.964Z"},"license":"MIT","keywords":["rr","time-travel","debugging","recording","tracing","replay"],"description":"Record your Rust/C/C++/Go program under rr and time-travel through every line in the rr-dash dashboard — created by replay.io","maintainers":[{"name":"bel423","email":"bel423@gmail.com"}],"readme":"# rion\n\nRecord your **Rust / C / C++ / Go** program under [rr](https://rr-project.org)\nand time-travel through every line it executed — hit counts, call stacks,\nwatch values at every step, a flamechart, and a scrubbable timeline that\nstreams in **live while the recording is still running**.\n\nCreated by [replay.io](https://replay.io) — the time-travel debugging\nindustry leaders.\n\n```bash\nnpx @brett_lamy/rion record -- ./your-program\n```\n\nYour default browser pops open on the live trace the moment recording\nstarts.\n\n## Requirements\n\n- **Docker** — recording runs inside a sandboxed `rr` container (rion builds\n  the image on first use: `npx @brett_lamy/rion doctor --build`)\n- **Node 18+**\n- A program built with debug info (`-g -O0`, cargo dev profile, or\n  `go build -gcflags='all=-N -l'`) — the binary must be a **Linux** build,\n  since it runs inside the container\n\n## Getting started\n\n```bash\n# 1. Sign in (opens your browser to approve this CLI):\nnpx @brett_lamy/rion login\n\n# 2. Check your setup (and build the recorder image on first run):\nnpx @brett_lamy/rion doctor --build\n\n# 3. Record, from your project directory:\nnpx @brett_lamy/rion record -- ./target/debug/your-program\n```\n\nThe trace uploads to [rr-dash](https://rr-dash-brett.netlify.app) under\nyour account and starts streaming immediately — you can watch execution\narrive line by line while the program is still being recorded.\n\n## Commands\n\n| Command | What it does |\n| --- | --- |\n| `rion login [--server <url>]` | Browser-approval sign-in; token cached at `~/.config/rion/auth.json` |\n| `rion logout` | Forget the saved token |\n| `rion doctor [--build]` | Verify Docker, the recorder images, and connectivity |\n| `rion record [opts] -- <cmd…>` | Record `<cmd>` under rr and upload the trace |\n\n### `record` options\n\n| Flag | Default | Description |\n| --- | --- | --- |\n| `--lang rust\\|c\\|cpp\\|go` | auto-detected | Source language |\n| `--src <dir>` | cwd | Project directory (mounted into the sandbox) |\n| `--title <string>` | the command | Trace title in the dashboard |\n| `--id <recordingId>` | generated | Explicit recording id |\n| `--server <url>` | rr-dash prod | Dashboard host |\n\n### Environment variables\n\n| Variable | Purpose |\n| --- | --- |\n| `RION_API_KEY` | Non-interactive auth (create one at [/welcome](https://rr-dash-brett.netlify.app/welcome)) — the CI equivalent of `rion login` |\n| `RION_HOST` | Override the default dashboard host |\n| `RION_NO_OPEN` | Set to `1` to skip auto-opening the trace in a browser |\n\n## How it works\n\n`rion record` runs your command under `rr record` (software-counters mode)\nin a Docker sandbox, replays the trace under gdb to extract per-line hit\ncounts, an ordered linetrace, and sampled call stacks + locals at every\nstep, then uploads everything through the dashboard's authenticated API.\nNothing is uploaded anonymously; recordings are attributed to your account.\n\nPrefer zero local setup? The\n[Playground](https://rr-dash-brett.netlify.app/playground) compiles and\nrecords small programs in a cloud sandbox instead.\n","readmeFilename":"README.md"}