Poppy Dog Icon
⚡ Native C++20 & Qt 6 • Offline-First API Client

The native API client
that stays yours.

Poppy is an ultra-fast, lightweight, offline-first API testing suite and automated CLI test runner. Sub-100ms startup, <30MB RAM footprint, and 100% git-versionable plain text collections.

Windows Installer (.exe) 📦 Windows Portable (.zip) macOS (.dmg) 🐧 Linux (.tar.gz) 📖 Documentation All Releases ↗

Release v1.4.5 · Windows x64 · macOS · Linux x64

Poppy — Pet Store API Collection [Development]
GET
{{baseUrl}}/api/v1/users?limit=20
Send ↵
200 OK ⓘ ⏱ 14 ms 📦 2.4 KB DNS: 2ms | TCP: 3ms | TTFB: 8ms
Pretty
Raw
Headers (8)
Tests (4/4)
SSL / TLS
Visualize (Table & Chart)
Cookies (2)
ID Name Role Status Score
101Alice VanceAdminActive98.4
102Bob JenkinsDeveloperActive87.2
103Carol DanversStaffPending74.0

Native C++ vs. Electron Runtimes

Why native code matters when developing and testing APIs all day.

Metric Postman Bruno Poppy (v1.4.5)
Architecture Electron (Chromium + Node) Electron (Chromium + Node) Native C++20 + Qt 6 + libcurl
Cold Startup 3.0s – 6.0s 2.0s – 3.5s < 100 ms (Instantaneous)
Idle Memory (RAM) 350 MB – 600 MB 180 MB – 320 MB < 30 MB
Data-Driven Testing Paid / Complex CLI Only Built-in GUI (CSV/JSON Fixtures)
Response Cookies Tab Basic Table Raw Headers Only Parsed Tab with Flags & Counts
cURL Paste Auto-Detect Manual Import Modal Manual Import Modal Instant Paste in Main URL Bar
API Doc Generator Cloud Hosted Only None Offline Single-Page HTML & Markdown
Local Mock Server Cloud Only (Paid) None Built-in with Latency Sim
Response Visualizer Manual JS Scripts None Auto JSON Table & ASCII Chart
Protocols Full Partial (Plugins required) HTTP, WS, gRPC, SSE, GraphQL

⇄ Swipe horizontally to compare runtimes

✨

JSON Prettifier & Minifier

One-click format and minify for request JSON payloads with real-time live syntax validation and byte-offset error hints directly inside the editor.

🔐

Git-Safe Secrets & CI Overlays

Keep collections reviewable in Pull Requests without leaking credentials. Sensitive tokens are isolated into gitignored .secret.env files, while the CLI injects secrets from CI environment variables.

📈

Session Network Telemetry

Real-time status bar telemetry (⚡ N reqs | 📦 N KB | ⏱ avg N ms) and interactive modal breakdown of throughput, success rate, and latency.

📝

Markdown API Runbook Exporter

Export collections into GitHub-flavored Markdown runbooks (API_RUNBOOK.md) complete with tables, auth, body blocks, assertions, and cURL snippets.

🔎

Global Find & Replace (Ctrl+Shift+F)

Deep collection search and batch replace across request names, URLs, headers, parameters, JSON/raw bodies, and test scripts in one keystroke.

🍪

Response Cookies Inspector

Dedicated response tab parses all Set-Cookie headers into Name, Value, Domain, Path, Expires, Secure, and HttpOnly columns with badge count indicators.

📋

cURL Paste Auto-Detection

Paste any raw curl ... command directly into the URL bar to instantly parse and populate method, URL, headers, and body into the editor.

🧪

Data-Driven Test Runner

Run collections against CSV or JSON data fixture files. Poppy auto-sizes iterations and dynamically injects row variables into {{key}} templates.

📖

API Documentation Generator

Export collections into standalone, responsive single-file HTML documentation (docs.html) with live search, method tags, and multi-language snippets.

📊

Response Visualizer & Charts

Automatically turns JSON arrays into interactive, sortable data grids with instant row filtering and comparative ASCII bar charts.

🔍

Variable Hover & Autocomplete

Hover over any {{variable}} to inspect its resolved value and originating scope (Environment, Folder, Collection), with fast URL bar autocomplete.

🎭

Embedded Mock Server

Spin up local mock APIs on any port, simulate network latency, inspect incoming traffic, and auto-import endpoints directly from collections.

🌊

Server-Sent Events (SSE)

Inspect real-time text/event-stream connections with sub-millisecond timeline logging and a built-in live LLM token accumulator.

🌓

Instant Theme Toggle (Ctrl+T)

One-key runtime switching between high-contrast dark mode and clean modern light mode with synchronized syntax highlighters.

Everything You Need. Nothing Extra.

WebSocket Client

Full RFC 6455 support (ws/wss) with live frame timeline, auto-pong, and formatted JSON inspector.

gRPC Client

Load .proto files, inspect services & methods, generate mock JSON, and call unary RPCs over HTTP/2.

Response Diff Viewer

Compare two response bodies side-by-side with synchronized scrolling and visual line-by-line diff highlighting.

Sidebar Git Sync

Inspect branch status, commit, pull, and push your .bru collections with one click.

Bruno-compatible Collections

Import and use .bru files directly. Your data stays in plain text on disk.

Multi-tab Workspace

Work across multiple requests simultaneously with pinned tabs, dirty markers, and auto-save.

Pre & Post Scripts

Run JavaScript snippets via QJSEngine before and after requests to dynamically set variables or assert values.

Declarative Assertions

Define zero-code pass/fail conditions against status, latency, headers, and nested dot-path JSON keys.

GraphQL Split Editor

First-class GraphQL editor with schema introspection, query variables, and syntax highlighting.

Auth: AWS, OAuth2, mTLS

AWS SigV4, OAuth 2.0 Loopback, Basic, Bearer, Digest, NTLM, and mutual TLS — all built in.

Cookie Jar & Manager

Inspect, filter, edit, and persist cross-request session cookies using Netscape cookie storage.

Request History

Every executed request is logged with status codes, latency badges, and one-click replay.

Code Generators

Export any request as cURL, Python, JavaScript (Fetch & Axios), Go, Rust, C#, Java, PHP, or Ruby.

Two-Way Interoperability

Two-way import and export across Postman v2.1, Insomnia v4, OpenAPI 3.0, and HTTP Archive (.har).

JSONPath Evaluator

Query and filter JSON responses in real-time with $.items[*].name expressions.

Quick Open Palette (Ctrl+P)

Navigate your entire collection instantly with a fuzzy-search command palette.

Quick Sidebar Codegen

Right-click any request in collection or history to copy JS Fetch or Python scripts directly.

RFC Status Tooltips

Hover over status badges for official RFC explanations and status semantics across all HTTP response codes.

Automate with Standalone CLI

Run your entire test suite headless in GitHub Actions, GitLab CI, or Jenkins with zero dependencies.

$ poppy-cli run ./my-collection --env staging --reporter junit > results.xml