Github · GitHub Repository Radar
wilfredinni noodle
A delicious REST client for your terminal
Stars
341
Forks
6
Watchers: 299
Language
License: Apache License 2.0
Repository Radar Score
42 / 100
Growth
- 7d
- +0
- 30d
- +0
- %
- 0.0%
Not enough metric snapshots yet to chart growth for this repository.
Last observed: 4 days ago
Score breakdown
- popularity 40
- growth 0
- activity 75
- freshness 100
- community 54
Need help integrating this stack?
Our team builds with modern open-source stacks. Tell us what you are shipping.
Get a quote →API workflows, untangled.
Open-source terminal REST client
Write, send, inspect, and automate HTTP requests from readable files without leaving your terminal. Keep every collection versioned beside the code it exercises, ready for the TUI, CLI, scripts, and coding agents.
Fast by default. Made to review. Ready to automate.
Get started · Website · Docs · Changelog · Security
curl -LsSf https://noodlerest.dev/install.sh | shEvery request is a readable YAML file. Edit it in Noodle or your editor, review it in Git, and keep it beside the code it exercises.
name: Get User
method: GET
url: $base_url/users/:userId
path_params:
- name: userId
value: $user_id
headers:
Accept: application/jsonCreate a collection and open it in the TUI:
noodle collection create my-api
noodle request create users/get \
--url https://api.example.com/users/42 \
--collection ./my-api
noodle --collection ./my-apiCompose URLs, parameters, headers, authentication, and bodies from a keyboard-first workspace. Send the request, then inspect the body, headers, cookies, status, timing, and network timeline in the same place.
The request Assert and Capture tabs edit response checks and extracted values as structured rows, while request tags live in Settings. Manual sends use a fresh scope each time. Results stays available and gains a value indicator when the send has assertion or capture outcomes.
Assert and Capture rows use the same per-row checkboxes as Headers and Params. Disabled declarations remain in the request but are skipped by manual sends, the collection Runner, and CLI runs.
In jump mode, v opens Assert, c opens Capture, and t opens Settings.
Run Collection from the command palette opens a transient collection runner for choosing requests, environment, tag filters, and fail-fast behavior before inspecting ordered results. A folder's context palette opens the same runner scoped to that folder.
Noodle supports JSON and XML bodies, JSONPath filtering, redirects, proxies, TLS, mTLS, and request authentication including OAuth 1.0a and OAuth 2.0.
Switch between development, staging, and production variables. Secret declarations stay in the file while values live in the operating system credential vault or process environment.
Sensitive values are kept out of environment files, request history, generated code, search results, and exports.
Explore interactively in the TUI, run requests from the CLI, automate collection checks, or give coding agents the supported Noodle skill.
noodle request run users/get --collection ./my-api --env staging
noodle collection audit ./my-api --json
noodle collection run ./my-api --json
noodle collection run ./my-api auth/ health users/get --json
noodle collection run ./my-api --tag smoke --tag api --exclude-tag destructive --json
noodle agent installCommands support structured JSON output for scripts, CI, and agent workflows.
Requests and non-root folders can declare case-sensitive tags. Folder tags
apply to every descendant request, so collection run --tag smoke can execute a
dynamic suite without a second collection format. Repeat --tag to require
every Include tag and repeat --exclude-tag to remove requests matching any
Exclude tag. Exclusion wins, and --fail-fast records the remaining selected
request IDs as skipped.
Request YAML can also declare response assertions for status, timing, headers,
and JSON body paths. Edit them in the TUI Assert tab or as YAML. Manual
sends show results beside the response; request run and collection run also
evaluate them and exit nonzero when a check fails. Collection runs exit 0 on
success, 1 after any completed request failure, and 2 for a pre-run
configuration failure. JSON includes every executed result, fail-fast skips,
failure categories, and the aggregate run summary.
Captures can pass response values forward during a collection run or persist
them after an individual manual send or request run:
capture:
user_id:
value: body.id
access_token:
value: body.access_token
persist: secret
optional_trace:
value: headers.x-trace
enabled: falseEvery capture requires value, accepts optional persist: secret or
persist: environment, and accepts optional enabled: false. Omitted
persist means transient and omitted enabled means enabled.
Later requests use the same $variable syntax, such as
url: $base_url/users/$user_id. Transient captures override same-named
environment values and disappear when the run ends. On a manual TUI send or
CLI request run, persisted captures update the active or selected environment
after successful extraction, even if HTTP status or a later assertion fails.
Collection Runner and CLI collection run always keep captures transient.
Secret capture values are fully redacted from capture results. Timeline history
stores redacted assertion results, never capture results or RunScope values.
Import OpenAPI 3.0, Swagger 2.0, Postman, or Insomnia collections. Export to OpenAPI or Postman when another tool needs the same requests.
noodle import ./specs/api.yaml --output ./collectionsNoodle is built with Bun, TypeScript, React, and OpenTUI.
bun install
bun run dev -- --collection ./collections --env developmentSee AGENTS.md for the architecture, conventions, and test commands.
Apache-2.0 licensed.
Repository Radar analysis
Deterministic insights derived from public metadata and our observations — not personal testing or reviews.
Why this repository is interesting
- Maintained recently (last push 2 weeks ago).
Who should use it
- Developers working primarily with TypeScript
- Teams exploring AI tooling, agents, or ML infrastructure
- Backend engineers shipping APIs and product backends
- Early adopters evaluating emerging projects
Potential use cases
- Reference or evaluate TypeScript open-source approaches in this domain
- Prototype AI/agent workflows or study reference architectures
Strengths
- Recent repository activity
- README present in our index
- Declared license: Apache License 2.0
Limitations / considerations
- Insights are derived from public metadata and our observations — not a substitute for code review
What to watch
- Young repository — popularity and maintenance patterns can change quickly
Strong signals: Active maintenance
Source: GitHub (public metadata) + Repository Radar analysis. We do not claim ownership of third-party repositories.
Similar repositories
n8n-io/n8n
★ 203,331 · TypeScript · radar 67
google-gemini/gemini-cli
★ 106,800 · TypeScript · radar 67
lobehub/lobehub
★ 82,201 · TypeScript · radar 67
firecrawl/firecrawl
★ 176,446 · TypeScript · radar 66
langgenius/dify
★ 154,353 · TypeScript · radar 66
strapi/strapi
★ 73,064 · TypeScript · radar 66
