{"_id":"@profullstack/r3q","_rev":"5-a68db97dae8a1c09ae09878d427c0925","name":"@profullstack/r3q","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@profullstack/r3q","version":"0.1.0","keywords":["rest","http","client","tui","terminal","hqtui"],"license":"MIT","_id":"@profullstack/r3q@0.1.0","maintainers":[{"name":"moshcoder","email":"anthony@chovy.com"},{"name":"devpreshy","email":"devpreshy@gmail.com"}],"homepage":"https://github.com/profullstack/r3q","bugs":{"url":"https://github.com/profullstack/r3q/issues"},"bin":{"r3q":"bin/r3q.mjs"},"dist":{"shasum":"1f396c2f3fb21f777e8e1e9062b6e67fee90e8fc","tarball":"https://registry.npmjs.org/@profullstack/r3q/-/r3q-0.1.0.tgz","fileCount":16,"integrity":"sha512-BCkkCzDumzM1Z+3W3HjeKQuQyePivr72bc50DMEIAJDbppJXtxWzLCDy4Rol5hLvoUXV/v0GEn74Dcd47JZlcQ==","signatures":[{"sig":"MEYCIQDpdKNT2q3YhkDYGNEIOYEhtPdAbCdzRpL1KvA4QkDtXgIhAPsiY9L13s/Bn1GjV/fQWrlfaBjRI6egIO2m4EpHu7hX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50068},"type":"module","engines":{"bun":">=1.1","node":">=22.6"},"gitHead":"d89b62cc3005b4a8e9314b9c5feaf9e12fde4711","scripts":{"test":"bun test test","build":"bun x tsc -p tsconfig.json","start":"bun src/main.ts","typecheck":"bun x tsc -p tsconfig.json --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshcoder","email":"anthony@chovy.com"},"repository":{"url":"git+https://github.com/profullstack/r3q.git","type":"git"},"_npmVersion":"11.16.0","description":"A REST client for your terminal. Requests are files you can commit; the TUI is just a good way to look at them.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"@profullstack/hqtui":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26"},"_npmOperationalInternal":{"tmp":"tmp/r3q_0.1.0_1789286649901_0.9441312374362545","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@profullstack/r3q","version":"0.1.1","keywords":["rest","http","client","tui","terminal","hqtui"],"license":"MIT","_id":"@profullstack/r3q@0.1.1","maintainers":[{"name":"moshcoder","email":"anthony@chovy.com"},{"name":"devpreshy","email":"devpreshy@gmail.com"}],"homepage":"https://github.com/profullstack/r3q","bugs":{"url":"https://github.com/profullstack/r3q/issues"},"bin":{"r3q":"bin/r3q.mjs"},"dist":{"shasum":"76db7a3a42911a4247ed53996606edeffcbb0661","tarball":"https://registry.npmjs.org/@profullstack/r3q/-/r3q-0.1.1.tgz","fileCount":16,"integrity":"sha512-RJ2MdIEy7HE4q8Nnz7b93tXcUHxb/RxwOj7grl312ssHt+isYseGi+JZEt75Yv6/iyd4rIAXwQgYH+hV6Ba3mA==","signatures":[{"sig":"MEYCIQCfDcUlDOSFPs3jqEohcxeW66flHx+226DLy4cD+q6MagIhANbpvAd0DpThYV6Lq9lW6lvD2fySNie0JNLhdXgZUTW7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICJgI7d6HRMFbac/bupJTc4/bfz/jZ8WxWwZST3yNt3HAiArQCFYIOtymKcBKhU7NiZbuasxqA/wht4bU5131Y0qEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51059},"type":"module","engines":{"bun":">=1.1","node":">=22.6"},"gitHead":"bec9a030b489c9cf3638db868e62f0e3a3ff567b","scripts":{"test":"bun test test","build":"bun x tsc -p tsconfig.json","start":"bun src/main.ts","typecheck":"bun x tsc -p tsconfig.json --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshcoder","email":"anthony@chovy.com"},"repository":{"url":"git+https://github.com/profullstack/r3q.git","type":"git"},"_npmVersion":"11.16.0","description":"A REST client for your terminal. Requests are files you can commit; the TUI is just a good way to look at them.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"@profullstack/hqtui":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26"},"_npmOperationalInternal":{"tmp":"tmp/r3q_0.1.1_1789286984953_0.651238395781716","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@profullstack/r3q","version":"0.1.2","keywords":["rest","http","client","tui","terminal","hqtui"],"license":"MIT","_id":"@profullstack/r3q@0.1.2","maintainers":[{"name":"moshcoder","email":"anthony@chovy.com"},{"name":"devpreshy","email":"devpreshy@gmail.com"}],"homepage":"https://github.com/profullstack/r3q","bugs":{"url":"https://github.com/profullstack/r3q/issues"},"bin":{"r3q":"bin/r3q.mjs"},"dist":{"shasum":"8aaba9716679d7d27764d2be6fdbc79cddf60996","tarball":"https://registry.npmjs.org/@profullstack/r3q/-/r3q-0.1.2.tgz","fileCount":16,"integrity":"sha512-nas8u1+PgQmfslSlNtN2YJknu/BQku7KZWCzO554lGUK9XJqCvKsBZ60OKHySZ/GcoPxDDu8AkpjSA0YXwtqew==","signatures":[{"sig":"MEUCIQCNHvO9gcpNaS+2lL8V36ia/nqaB6f7QCegCfa1a3lBvgIgW0Ts03wSvvOanLFTgcHRn7HWnU5pu+pMArrqHUraLH4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGMDH8JKTk9Sz59SLoROB7dkVg/RgaERwN+2OH40BbMSAiEAj1K+UJ5Wpd5KW/8ILeTXgZaoF/e0/V7ZsuwABBmw9sU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55335},"type":"module","engines":{"bun":">=1.1","node":">=22.6"},"gitHead":"1b18c012f4cb52600feb613ba05c581632c20818","scripts":{"test":"bun test test","build":"bun x tsc -p tsconfig.json","start":"bun src/main.ts","typecheck":"bun x tsc -p tsconfig.json --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshcoder","email":"anthony@chovy.com"},"repository":{"url":"git+https://github.com/profullstack/r3q.git","type":"git"},"_npmVersion":"11.16.0","description":"A REST client for your terminal. Requests are files you can commit; the TUI is just a good way to look at them.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"@profullstack/hqtui":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26"},"_npmOperationalInternal":{"tmp":"tmp/r3q_0.1.2_1789287493911_0.09294465273549646","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@profullstack/r3q","version":"0.1.3","keywords":["rest","http","client","tui","terminal","hqtui"],"license":"MIT","_id":"@profullstack/r3q@0.1.3","maintainers":[{"name":"moshcoder","email":"anthony@chovy.com"},{"name":"devpreshy","email":"devpreshy@gmail.com"}],"homepage":"https://github.com/profullstack/r3q","bugs":{"url":"https://github.com/profullstack/r3q/issues"},"bin":{"r3q":"bin/r3q.mjs"},"dist":{"shasum":"b7b7b6d6f1e3499522fa4b818fbcb5f4afd4d766","tarball":"https://registry.npmjs.org/@profullstack/r3q/-/r3q-0.1.3.tgz","fileCount":16,"integrity":"sha512-gjLXVAtVVE3C+peruA2XWbj1F4Rlm+AwNzwVGedd/xqQnrpI6m2fGjYe0D74XjGBceFNujP6r5gCEFX24Sv4Cg==","signatures":[{"sig":"MEQCIB+yU2KOyuFOh5Ztdu7Cpi86qtHGa6huOobEH6bk/uv5AiBnUoc+otIYjwsRPVnYFwc6HYjFZcM1JIwnVHkI1jyxlA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDEinMiobdb+eAAKGRpKwXJcKtBubrzIrNSkDaBXvcHDAIgfI7kmU/ZvYUTCnOaqOTu0im3u3RrDBDhURUSKhrYWwo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62961},"type":"module","engines":{"bun":">=1.1","node":">=22.6"},"scripts":{"test":"bun test test","build":"bun x tsc -p tsconfig.json","start":"bun src/main.ts","typecheck":"bun x tsc -p tsconfig.json --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"moshcoder","email":"anthony@chovy.com"},"repository":{"url":"git+https://github.com/profullstack/r3q.git","type":"git"},"_npmVersion":"11.16.0","description":"A REST client for your terminal. Requests are files you can commit; the TUI is just a good way to look at them.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"@profullstack/hqtui":"^0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26"},"_npmOperationalInternal":{"tmp":"tmp/r3q_0.1.3_1789287748763_0.8637603065534183","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"_id":"@profullstack/r3q@0.1.4","bin":{"r3q":"bin/r3q.mjs"},"bugs":{"url":"https://github.com/profullstack/r3q/issues"},"dist":{"shasum":"da29f865dc7d1842fcec00ac5dd782ecfe4e4ce5","tarball":"https://registry.npmjs.org/@profullstack/r3q/-/r3q-0.1.4.tgz","fileCount":33,"integrity":"sha512-+S0pz1QYST7NWf9AqAIipbF7snEocDj0ZlMiiU/9hPCAlZbkAo4/kdvVjP41jujepb4rA3LCWouYXUsiYYqjrQ==","signatures":[{"sig":"MEYCIQDBICudWg4OfOMfGWptK8g2XEsk8SVAaVGL5MT70MkE+QIhAL4A9OotyxvXo/hydVtYTz2KqqOdnahOGF0u8DubQPeS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICXoBmjQroIhUmpSA6klVpMr/+drTqL0Y+CCe5iJQq5CAiABvk8N7rDWzwMPs9DM3t1HRihBOGISkVgRQy4Q/47htw=="}],"unpackedSize":142476},"name":"@profullstack/r3q","type":"module","engines":{"bun":">=1.1","node":">=22.6"},"license":"MIT","scripts":{"test":"bun test test","build":"bun x tsc -p tsconfig.json","start":"bun src/main.ts","typecheck":"bun x tsc -p tsconfig.json --noEmit","prepublishOnly":"bun run build"},"version":"0.1.4","_npmUser":{"name":"moshcoder","email":"anthony@chovy.com"},"homepage":"https://github.com/profullstack/r3q","keywords":["rest","http","client","tui","terminal","hqtui"],"repository":{"url":"git+https://github.com/profullstack/r3q.git","type":"git"},"_npmVersion":"11.16.0","description":"A REST client for your terminal. Requests are files you can commit; the TUI is just a good way to look at them.","directories":{},"maintainers":[{"name":"moshcoder","email":"anthony@chovy.com"},{"name":"devpreshy","email":"devpreshy@gmail.com"}],"_nodeVersion":"24.18.1","dependencies":{"@profullstack/hqtui":"^0.6.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/r3q_0.1.4_1789290945639_0.8115995271542329"}}},"time":{"created":"2026-09-13T08:04:09.720Z","modified":"2026-09-13T09:15:45.868Z","0.1.0":"2026-09-13T08:04:10.030Z","0.1.1":"2026-09-13T08:09:45.043Z","0.1.2":"2026-09-13T08:18:13.987Z","0.1.3":"2026-09-13T08:22:28.845Z","0.1.4":"2026-09-13T09:15:45.717Z"},"bugs":{"url":"https://github.com/profullstack/r3q/issues"},"license":"MIT","homepage":"https://github.com/profullstack/r3q","keywords":["rest","http","client","tui","terminal","hqtui"],"repository":{"url":"git+https://github.com/profullstack/r3q.git","type":"git"},"description":"A REST client for your terminal. Requests are files you can commit; the TUI is just a good way to look at them.","maintainers":[{"name":"moshcoder","email":"anthony@chovy.com"},{"name":"devpreshy","email":"devpreshy@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/profullstack/r3q/main/logo.svg\" alt=\"r3q — a REST client for your terminal\" width=\"800\" />\n</p>\n\n# r3q\n\nA REST client for your terminal. Requests are files you can commit; the TUI is just a good way to look at them.\n\n```\ncurl -fsSL https://bun.sh/install | bash   # if you need it\nmkdir -p ~/api\nbunx @profullstack/r3q ~/api\n```\n\nClick **New request** or press `n` in the empty collection. Choose a method, edit the prefilled name, file path, URL, headers and body, then review and save. The new `.http` file is selected immediately. Press `Enter` when you want to send it.\n\n## Create and manage requests\n\nThe three-step wizard provides method-specific boilerplate. `Tab` and `Shift+Tab` move between fields and buttons; `Enter` adds a line in Headers or Body. `Ctrl+U` clears a field, `Ctrl+S` saves, and `Esc` cancels. Bracketed paste supports multiline headers and bodies.\n\nSelect a saved request and press `v` to read its raw file, `e` to edit, `d` to duplicate, or `x` to delete. New files never overwrite an existing path. Editing preserves comments and variable placeholders, and refuses to replace a file changed by another editor. `Ctrl+D` keeps an unsaved edit as a separately named copy. Deletion asks for confirmation, defaults to Cancel, and moves the file into `.r3q-trash` so you can restore it.\n\nSaving, viewing, editing, duplicating and deleting files do not send network requests. A request is sent only when you press `Enter` on it in the main screen.\n\n## HTTP method examples\n\nThese templates use httpbin's echo endpoint: it returns the request you sent, so CRUD examples do not persist or delete real items. Change the URL for your own API. The examples are also included in the npm package.\n\n| Method | Example |\n| --- | --- |\n| GET | [Read items](examples/methods/get.http) |\n| POST | [Create an item with JSON](examples/methods/post.http) |\n| PUT | [Replace an item](examples/methods/put.http) |\n| PATCH | [Update selected fields](examples/methods/patch.http) |\n| DELETE | [Delete an item](examples/methods/delete.http) |\n| HEAD | [Inspect response headers](examples/methods/head.http) |\n| OPTIONS | [Inspect allowed methods](examples/methods/options.http) |\n| TRACE | [Diagnostic template](examples/methods/trace.http), for saving and viewing |\n\nThe fetch runtime does not send TRACE or CONNECT. TRACE is supported by the `.http` parser and wizard; CONNECT is not supported by the parser.\n\n```\n r3q  ~/api                                        3 requests  Tab panes  Enter send  r reload  q quit\n╭─ Collection ────────────────╮ ╭─ Request ────────────────────────────────────────────────────────────╮\n│ ERR     broken.http         │ │  POST    https://httpbin.org/post                                    │\n│ GET     httpbin-get.http    │ │                                                                      │\n│ POST    httpbin-post.http   │ │ Content-Type:                                       application/json │\n│                             │ │ Authorization:                                  Bearer sk-live-xxxxx │\n│                             │ │ ─ body ───────────────────────────────────────────────────────────── │\n│                             │ │ {\"name\": \"r3q\", \"ok\": true}                                          │\n│                             │ ╰──────────────────────────────────────────────────────────────────────╯\n│                             │ ╭─ Response ───────────────────────────────────── 200 OK  215ms  168B ─╮\n│                             │ │ {                                                                    │\n│                             │ │   \"args\": { \"hello\": \"world\" }                                       │\n╰─────────────────────────────╯ ╰──────────────────────────────────────────────────────────────────────╯\n Enter Send  Tab Collection  ↑↓ Move  r Reload  q Quit\n```\n\n## Requests are files\n\nA request is a `.http` file, the format your editor already understands. Save this as `~/api/example.http`:\n\n```http\n# Comments before the request line are ignored.\nPOST https://api.example.com/things\nContent-Type: application/json\nAuthorization: Bearer {{TOKEN}}\n\n{\"name\": \"thing\"}\n```\n\nA blank line ends the headers and begins the body. That's the whole format.\n\nCollections load in the background, so the terminal opens immediately even in a large directory.\nRequests appear as they are found; `r` restarts the scan and `q` stops it and quits.\nHidden directories, `node_modules`, and symlinks are skipped.\n\nBecause a request is a file, it diffs, reviews and merges like everything else in the repository. There is no binary workspace to export from, and no account to sign into.\n\n## Secrets stay out of the files\n\n`{{NAME}}` is filled from a `.env` beside the collection, falling back to the process environment. The file you commit holds the template; the value stays on your machine.\n\n```\nTOKEN=sk-live-xxxxx\n```\n\n`.env` is gitignored by default.\n\n## Keys\n\n| Key | Does |\n|---|---|\n| `n` | Create a request with the wizard |\n| `v` | View the selected raw `.http` file |\n| `e` | Edit the selected request |\n| `d` | Duplicate the selected request |\n| `x` / `Delete` | Confirm moving the selected file to `.r3q-trash` |\n| `Enter` | Send the selected request, or open the wizard when empty |\n| `Tab` | Move between the collection and the response |\n| `↑` `↓` | Move the selection, or scroll the response body |\n| `PgUp` `PgDn` `Home` | Scroll the response body faster |\n| `r` | Reload the collection from disk |\n| `q` | Quit |\n\n## Status\n\nEarly. It creates and manages request files, resolves variables, sends requests, and shows syntax-highlighted JSON responses. Collection runs, assertions, cookie jars, and OpenAPI/Postman import are not implemented yet. The in-app editor handles files up to 1 MiB; larger or malformed request files can still be edited externally.\n\n## Built with\n\n[hqtui](https://hqtui.com) — the terminal UI library. r3q exists partly to keep hqtui honest: a real application finds the gaps that a widget gallery does not.\n\n## Development\n\nRun `bun install`, `bun run typecheck`, `bun test test`, and `bun run build`. The optional real-terminal CRUD check is `python scripts/verify-wizard-pty.py` (requires Python's `pyte` package). It creates an isolated collection and uses a local HTTP server to verify that requests are sent only on explicit Enter.\n\n## Brand assets\n\n[Logo SVG](logo.svg) · [Logo PNG](logo.png) · [Favicon SVG](favicon.svg) · [Favicon PNG](favicon.png)\n\nBoth logo banners work on light and dark backgrounds. The favicon PNG has a transparent background. See [asset provenance and generation prompts](docs/branding.md).\n\n## Licence\n\nMIT\n","readmeFilename":"README.md"}