Noodle
Choose it when requests should be readable files beside your code, shared by the TUI, CLI, CI, and coding agents.
Noodle is not trying to win every feature column. It is built for API work that belongs beside your code, from terminal exploration to CI and coding agents.
Each tool is strong for a different reason. Noodle's distinction is architectural: the repository is the workspace.
| Capability | Noodle | Posting | Yaak | Bruno |
|---|---|---|---|---|
| Best at | Repo-native terminal API workflow + automation/agents | Focused interactive terminal HTTP workflow | Modern local desktop client with broad protocols | Full API testing and automation platform |
| Requests are true files | ⭐ Yes, core architecture | ⭐ Yes | ◐ Optional synchronized representation | ⭐ Yes |
| Terminal-first | ⭐ Yes | ⭐ Yes | No | No |
| Protocol breadth | HTTP today | HTTP today | ⭐ Very high | ⭐ Very high |
| Auth and networking | ⭐ Very high | Basic | ⭐ Very high | ⭐ Very high |
| Scripting and testing today | Developing toward v1 | Good scripting, tests planned | Chaining/templates, no arbitrary scripting | ⭐ Most complete |
| Headless and CI automation | ⭐ Yes | Limited | ⭐ Yes | ⭐ Very mature |
| AI-agent workflow | ⭐ Skill + files + CLI | Minimal | ⭐ Skill + CLI + MCP | In-app BYOK AI + CLI |
| Main differentiator | The repository is the workspace | HTTP client inside the terminal | Local-first GUI without Postman weight | Git-native testing powerhouse |
All four products work offline. Their storage and interaction models are very different.
| Capability | Noodle | Posting | Yaak | Bruno |
|---|---|---|---|---|
| Primary experience | Terminal TUI + non-interactive CLI | Terminal TUI | Desktop GUI + CLI | Desktop GUI + CLI |
| Core philosophy | Repository-first; requests live beside code | Terminal-first HTTP client | Local-first desktop API client | Git-friendly offline API development and testing |
| Canonical request storage | ✅ One readable .yml file per request | ✅ .posting.yaml files | ◐ Local app database; optional YAML sync | ✅ File-native .bru or OpenCollection .yml |
| Git-friendly | ✅ Native consequence of file model | ✅ Native consequence of file model | ✅ YAML sync + built-in Git actions | ✅ File-native + built-in Git UI |
| Built-in Git UI | ❌ Use normal Git tooling | ❌ Use normal Git tooling | ✅ Branch, commit, diff, and more | ✅ Core Git UI; advanced operations may be paid |
| Works offline | ✅ | ✅ | ✅ | ✅ Offline-only |
| Cloud account required | ❌ | ❌ | ❌ for normal use | ❌ |
| License and pricing | Apache-2.0 · free OSS | Apache-2.0 · free OSS | MIT source; commercial prebuilt license for work | MIT core + paid Pro/Ultimate tiers |
Noodle and Posting deliberately focus on HTTP today. Yaak and Bruno cover more protocol types.
| Capability | Noodle | Posting | Yaak | Bruno |
|---|---|---|---|---|
| HTTP / REST | ✅ | ✅ | ✅ | ✅ |
| GraphQL, first-class | 🧭 Planned | ❌ | ✅ | ✅ |
| gRPC | 🧭 Planned | ❌ | ✅ reflection/proto | ✅ |
| WebSocket | 🧭 Planned | 🧭 Planned | ✅ | ✅ |
| Server-Sent Events | 🧭 Planned | 🧭 Planned | ✅ | ◐ Supported, not a separate top-level type |
| SOAP | ❌ | ❌ | ❌ dedicated type | ✅ |
| Variables and environments | ✅ | ✅ | ✅ | ✅ |
| Folder inheritance | ✅ Headers + auth | ❌ Limited collection model | ✅ Workspace/folder/request | ✅ |
| JSON body editor | ✅ Tree-sitter, validation, folding, completion | ✅ Syntax highlighting | ✅ | ✅ |
| Multipart and file upload | ✅ | 🧭 Richer uploads planned | ✅ | ✅ |
| Client code generation | ✅ Multiple languages and libraries | ◐ cURL export | ✅ Code snippets | ✅ |
| Response filtering | ✅ JSONPath | ◐ Normal response inspection | ✅ JSONPath and rich tools | ✅ Query/filtering |
| Persistent response history | ✅ Per-request timeline | ❌ Not documented | ✅ | ✅ |
| Network and redirect debugging | ✅ Detailed trace | ◐ Basic trace/status | ✅ Timeline/debugging | ✅ DevTools network tools |
| Custom response visualization | 🧭 Planned | ❌ | ❌ Generic arbitrary renderer | ✅ bru.visualize() / Handlebars |
Noodle's recent releases substantially expanded authentication, secrets, TLS, proxy, and cookie handling.
| Capability | Noodle | Posting | Yaak | Bruno |
|---|---|---|---|---|
| Basic | ✅ | ◐ Programmatic, not a rich Auth UI | ✅ | ✅ |
| Bearer | ✅ | ✅ | ✅ | ✅ |
| API key auth | ✅ Header/query | ◐ Manual header or Python | ✅ | ✅ |
| OAuth 1.0 | ✅ | ❌ | ✅ | ✅ |
| OAuth 2.0 | ✅ | 🧭 Planned | ✅ | ✅ |
| AWS SigV4 | ✅ | ❌ Native | ✅ | ✅ |
| NTLM | ✅ NTLMv2 | ❌ Native | ✅ | ✅ |
| JWT auth generation | 🧭 Planned | ❌ | ✅ | ◐ Scripting/auth workflows |
| Persistent cookie jar | ✅ Per collection | ◐ Response cookies; editor planned | ✅ Automatic jar + editor | ✅ |
| Custom CA | ✅ | ✅ | ✅ | ✅ |
| mTLS and client certificates | ✅ | ✅ Cert path | ✅ | ✅ |
| Proxy | ✅ System/direct/custom + bypass | ❌ Dedicated configuration not documented | ✅ System/custom/none + SOCKS5 | ✅ System/manual/PAC |
| Secure secret storage | ✅ OS credential vault | ◐ No secure vault documented | ✅ Encrypted secrets + keychain/1Password | ✅ Secret manager + external vaults |
Bruno leads in mature testing. Noodle already has headless execution; its roadmap adds scripts, assertions, chaining, and a richer runner.
| Capability | Noodle | Posting | Yaak | Bruno |
|---|---|---|---|---|
| Pre-request scripts | 🧭 v0.9 JavaScript | ✅ Python | ❌ Arbitrary scripts; under consideration | ✅ JavaScript |
| Post-response scripts | 🧭 v0.9 JavaScript | ✅ Python | ❌ Arbitrary scripts; under consideration | ✅ JavaScript |
| Extract response into variables | 🧭 v0.8 declarative capture | ✅ Via Python | ✅ Request chaining | ✅ |
| Request chaining | 🧭 v0.8 | ◐ Python/session variables | ✅ Declarative response() | ✅ Extensive |
| Assertions and tests | 🧭 v0.8 assertions; v0.9 advanced tests | 🧭 Test framework planned | ❌ No current framework | ✅ Chai/JS assertions |
| Run one request headlessly | ✅ | ❌ Documented runner | ✅ | ✅ |
| Run folder/collection headlessly | ✅ | ❌ | ✅ Workspace/folder | ✅ |
| Parallel and batch execution | ◐ Batch now; richer runner v0.10, parallel v1.5 | ❌ | ✅ CLI --parallel | ✅ Runner |
| Dedicated runner/results UI | 🧭 v0.10 | ❌ | ◐ Bulk CLI; data runner considered | ✅ |
| Data-driven CSV/JSON runs | 🧭 Planned | ❌ | 🧭 Under consideration | ✅ CSV, paid feature |
| CI-friendly structured output | ✅ JSON | ❌ Dedicated CI runner | ✅ CLI | ✅ CLI + JUnit/reports |
| Docker runner | ❌ Official image | ❌ | ❌ Official image found | ✅ Official CLI images |
| GitHub Action | ❌ Dedicated action | ❌ | ❌ Dedicated action found | ✅ Official action |
Noodle combines broad import support with readable native YAML and useful export paths.
| Capability | Noodle | Posting | Yaak | Bruno |
|---|---|---|---|---|
| cURL import | ✅ | ✅ Experimental | ✅ | ✅ |
| OpenAPI 3 import | ✅ | ✅ Experimental | ✅ 3.0/3.1 | ✅ |
| Swagger 2 import | ✅ | ❌ Documented | ✅ | ✅ |
| Postman import | ✅ | ✅ Experimental | ✅ | ✅ |
| Insomnia import | ✅ | ❌ | ✅ | ✅ |
| OpenAPI export | ✅ | ❌ | 🧭 Backlog | ✅ |
| Postman export | ✅ | ❌ | ❌ | ✅ |
| Portable native format | ✅ Plain YAML | ✅ Plain YAML | ✅ Yaak JSON; optional sync YAML | ✅ .bru + OpenCollection YAML |
| Open native specification | YAML schema and documentation | Posting YAML format | Yaak-specific sync format | ✅ OpenCollection specification |
Noodle's file model, CLI, and managed skill make agent workflows a first-class part of the product rather than an export path.
| Capability | Noodle | Posting | Yaak | Bruno |
|---|---|---|---|---|
| Requests naturally editable by agents | ✅ Plain YAML source of truth | ✅ Plain YAML | ◐ CLI/database or sync YAML | ✅ Files |
| Dedicated agent CLI workflow | ✅ | ❌ | ✅ | ◐ General CLI |
| Agent Skill | ✅ noodle-use | ❌ | ✅ As of 2026.6 | ❌ Equivalent found |
| Claude/Codex/Cursor/OpenCode | ✅ | ❌ Dedicated integration | ✅ | ◐ General tooling |
| MCP server | ❌ | ❌ | ✅ Plugin | ❌ Official equivalent found |
| Built-in AI assistant | ❌ External-agent workflow by design | ❌ | ❌ | ✅ BYOK AI in v4 |
| Plugin system | ❌ | ❌ Python scripting instead | ✅ Substantial plugin system | ◐ Apps + scripting |
The right choice depends on where you work, which protocols you need, and how much testing automation you expect today.
Choose it when requests should be readable files beside your code, shared by the TUI, CLI, CI, and coding agents.
Choose it for a focused interactive HTTP workflow with capable Python scripting inside the terminal.
Choose it for a polished local desktop client with broad protocol support and modern authentication.
Choose it for mature scripting, assertions, runners, CI, and a broader API-testing platform.
Features, licensing, and pricing were verified against the linked product documentation on . Products change, so use these sources for the latest details.
Plain YAML is the source of truth. The same collection works from the TUI, CLI, CI, and coding-agent workflow.
curl -LsSf https://noodlerest.dev/install.sh | sh