A lightweight, browser-native API client and Chrome extension for testing, debugging, and inspecting REST APIs.
Postmann is an in-browser REST API testing client built to eliminate context-switching between your code editor, browser, and external API testing applications. Designed as both a standalone web app and an unpacked Chrome Extension, Postmann allows you to quickly construct HTTP requests, inject environment variables, inspect syntax-highlighted responses, and persist request history locally.
- Send GET, POST, PUT, PATCH, and DELETE requests directly from your browser.
- Customize URL parameters, query strings, and custom request bodies (JSON or Raw Text).
- Set authentication tokens and custom request headers with instant autocomplete.
- Syntax-Highlighted JSON Viewer: Formatted and collapsible JSON display with 1-click clipboard copying.
- Raw & Prettified Views: Toggle between raw payload text and formatted JSON.
- Response Header Inspection: Inspect all headers returned by the server.
- Live Performance Metrics: Real-time HTTP status codes (color-coded badges), round-trip response time (ms), and payload size.
- Quick Header Presets: Pre-populate standard headers (
Authorization,Content-Type: application/json,Accept,Cache-Control,User-Agent) in a single click. - Environment Variables: Define reusable dynamic key-value pairs (e.g.,
{{baseUrl}},{{token}}) that automatically resolve in endpoints, headers, and request bodies.
- Local Request History: Automatically logs previous requests with method, URL, timestamp, and status. Re-execute any past request with one click.
- Integrated Notes: Keep quick notes, API endpoint references, and test scenarios directly inside the extension popup.
flowchart TD
subgraph UI ["Postmann UI (React + TypeScript)"]
Nav[Navigation & Tabs]
ReqBuilder[Request Builder]
VarsTab[Variables Manager]
MRHTab[Header Presets / MRH]
HistoryTab[History & Search]
NotesTab[Scratchpad Notes]
end
subgraph Core ["Execution & Storage"]
VarEngine[Template Resolver]
HTTPClient[Fetch API Engine]
Storage[(Browser localStorage)]
end
subgraph Viewer ["Response Viewer"]
Highlighter[JSON Syntax Highlighter]
HeaderViewer[Response Header Table]
Metrics[Status & Timing Badges]
end
ReqBuilder -->|Resolve variables| VarEngine
VarsTab --> Storage
VarEngine --> HTTPClient
HTTPClient -->|Response Payload| Viewer
HTTPClient -->|Log Entry| Storage
Storage --> HistoryTab
-
Clone the repository:
git clone https://github.com/Fire162/Postman.git cd Postman -
Install dependencies and build the extension:
pnpm install pnpm run build
[!NOTE] The production build output will be generated inside the
dist/directory. -
Load unpacked in Chromium browser:
- Open your browser and navigate to:
- Chrome:
chrome://extensions - Edge:
edge://extensions - Brave:
brave://extensions
- Chrome:
- Enable Developer mode (toggle switch in the top-right corner).
- Click Load unpacked (top-left button).
- Select the
dist/folder inside the clonedPostmanrepository. - Pin the Postmann icon to your browser toolbar for quick access.
- Open your browser and navigate to:
You can also run Postmann as a local development server:
# Install dependencies
pnpm install
# Start local Vite development server
pnpm run devVisit http://localhost:5173 in your browser.
Postmann includes built-in test endpoints for quick verification:
| API | Method | Sample Endpoint | Expected Status |
|---|---|---|---|
| ReqRes Users | GET |
https://reqres.in/api/users?page=2 |
200 OK |
| ReqRes Create | POST |
https://reqres.in/api/users |
201 Created |
| Cat Facts | GET |
https://catfact.ninja/fact |
200 OK |
| CoinDesk Bitcoin Price | GET |
https://api.coindesk.com/v1/bpi/currentprice.json |
200 OK |
| Agify Age Predictor | GET |
https://api.agify.io?name=alex |
200 OK |
| IPinfo Geo | GET |
https://ipinfo.io/json |
200 OK |
| Official Joke API | GET |
https://official-joke-api.appspot.com/random_joke |
200 OK |
Postman/
├── dist/ # Compiled extension output (load into Chrome)
├── public/ # Static icons & manifest assets
│ ├── postman16.png
│ ├── postman48.png
│ ├── postman128.png
│ └── manifest.json # Extension Manifest V3 configuration
├── src/
│ ├── components/
│ │ ├── historycomponent/ # History view, search, and reload logic
│ │ ├── mrhcomponent/ # Most Requested Headers preset manager
│ │ ├── notescomponent/ # Scratchpad notes editor
│ │ ├── postmanncomponent/# Core request builder, method selector & response view
│ │ ├── variablescomponent/# Variable replacement engine & key-value editor
│ │ └── LinkAlternator.tsx# Main tab navigation bar
│ ├── App.tsx # Main application container
│ ├── main.tsx # React DOM entry point
│ └── index.css # Global styling
├── index.html # Vite HTML template
├── package.json # Project dependencies & scripts
├── tsconfig.json # TypeScript compiler options
└── vite.config.ts # Vite build configuration
# Start development server
pnpm run dev
# Typecheck and build production bundle
pnpm run build
# Run ESLint validation
pnpm run lint
# Preview production build locally
pnpm run previewContributions, issues, and feature requests are welcome! Feel free to check the issues page if you want to contribute.
This project is licensed under the MIT License.
