
Install
Install from Homebrew core:
brew install noodle
Or use the standalone installer:
curl -LsSf https://noodlerest.dev/install.sh | sh
Prebuilt binaries support macOS and Linux (glibc) on arm64 and x86_64, plus Windows x64
in beta.
See installation options
for Homebrew and source builds.
Run noodle agent install after a brew upgrade to refresh an installed skill. If you used wilfredinni/noodle,
follow the tap migration instructions.
Windows x64 (beta)
Windows x64 binaries are included from v0.9.7. Install from PowerShell:
irm https://noodlerest.dev/install.ps1 | iex
The installer verifies the release checksum, installs to
%LOCALAPPDATA%\Programs\Noodle\noodle.exe, and updates your user PATH.
Windows executables are unsigned; browser downloads may trigger Windows trust
prompts. Ordinary-account and interactive terminal testing remains pending.
The v0.10.1 Defender report
remains unresolved; it is not a confirmed false positive or evidence about every
later build. See the Windows support statement.
For prerelease testing, manually dispatched CI runs provide a Windows beta ZIP
containing noodle.exe, checksums, and build information.
GitHub Actions
After checking out your collection, install Noodle and run it in a separate step:
- uses: noodle-rest/setup-noodle@v1
with:
version: v0.10.4
- run: noodle collection run ./api --reporter junit --output results.xml
@v1 selects the setup action. The required version selects the exact Noodle
CLI release. The action verifies the binary's SHA-256 checksum before adding it
to the runner's PATH. See setup-noodle
and the CI workflow with report upload.
Quick start
Follow the quick start guide
to create a collection, send your first request, and inspect the response.
Features
- 📁 File-based collections:
Keep requests in YAML, organize them into folders, and version them with Git.
- ✏️ Request editor:
Edit URLs, parameters, headers, JSON, XML, forms, and file uploads in the terminal.
- 🔍 Response inspection:
Explore JSON and XML in Source or Visual views, filter JSON with JSONPath,
and inspect headers and network traces.
- 📥 Images and downloads:
Preview supported images, save response files, and open them in their default app.
- 🗝️ Environments and secrets:
Switch between environments, reuse variables, and store secrets in the OS vault.
- 🔐 Authentication:
Use bearer tokens, basic auth, API keys, OAuth 1.0a, OAuth 2.0, NTLMv2, and AWS SigV4.
- 🛡️ Proxies and TLS:
Configure proxy policies, custom certificate authorities, and mutual TLS.
- 🧪 Response assertions:
Check status, timing, headers, and JSON values in the TUI or CI.
- ✅ Scripted tests:
Check responses with synchronous or async tests, JSON Schema draft-07,
property, length, type, and partial-object matchers.
- 🎯 Response captures:
Pass response values to later requests or save them to an environment or secret.
- 📜 Scripting:
Prepare requests and process responses with sandboxed JavaScript.
Share inline scripts or external JavaScript files across collections and folders.
Pre scripts, post scripts, and tests each run collection → folders → request,
so request-specific successful writes override inherited values.
Author Pre Script, Post Script, and Tests in the TUI with completion, diagnostics,
folding, and formatting; browse logs in Console.
- 🎲 Body templates:
Generate test data and timestamps with
$random and $time placeholders.
- ⚡ Collection runner and automation:
Run requests or folders with tag filters, fail-fast behavior, delays, CSV/JSON
iteration data, and JSON results. Save collection reports with
--json --output results.json or --reporter junit --output results.xml.
See the automation contract and CI example.
Optional saved setup and teardown requests
surround each run or data row; configure them in Collection Settings > General.
Empty selections send nothing, and cancellation skips teardown.
Interrupt CLI collection runs with Ctrl+C to
retain completed results and inspect what was cancelled or never started.
In the TUI, inspect completed Results and Console while later requests run;
press s or click Stop to cancel, and use F5 to return after browsing elsewhere.
Try the local data-run example.
- 🕘 Response history and
cookies:
Revisit past responses and manage a cookie jar for each collection.
- 🎨 Themes and
keybindings:
Follow your terminal palette or choose a theme, and customize your shortcuts.
- 🔄 Import and
export:
Bring OpenAPI, Swagger, Postman, and Insomnia collections into Noodle;
preserve compatible Postman and Insomnia scripts without translating foreign APIs.
Imports that retain scripts or tests require a new collection.
Export to OpenAPI or Postman.
- 🤖 AI agent skills:
Install the Noodle skill with
noodle agent install so coding agents can
create, maintain, and run collections.
Documentation
Contributing
Noodle is built with Bun, TypeScript, React, and OpenTUI.
bun install
bun run dev
This starts the local HTTP, HTTPS, authentication, and proxy services and opens
the development collection in dev/collection/. Run bun run dev:server for
services alone, or bun run dev:check to validate the local scenarios. See the
development guide for suites and fixture credentials.
See AGENTS.md for the architecture, conventions, and test commands.
Sponsor
Noodle is free and open source. If it saves you time, you can
sponsor its continued development.
Sponsorship supports maintenance, bug fixes, documentation, and platform testing.
License
Apache-2.0.