Getting started
Install
Getman is one program with no runtime to install. Pick one:
With the install script (Linux and macOS):
curl -fsSL https://fzn0x.github.io/getman/install.sh | shWith the install script (Windows, PowerShell):
irm https://fzn0x.github.io/getman/install.ps1 | iexBoth scripts download the latest release for your system from GitHub,
check its SHA-256 checksum against the release's SHA256SUMS, and install
getman for your user only. On Linux and macOS it goes in ~/.local/bin,
and the script tells you what to add to your PATH if that directory is
not on it yet. On Windows it goes in %LOCALAPPDATA%\Programs\getman,
which the script adds to your user PATH.
Set GETMAN_VERSION (such as v0.1.0) to install a given release, or
GETMAN_INSTALL_DIR to choose the directory.
By hand: download the archive for your system from the
releases page, unpack it and
put getman (or getman.exe) somewhere on your PATH.
From source: you need Rust 1.88 or newer and Node.js 22.12 or newer.
git clone https://github.com/fzn0x/getman.git
cd getman/web
npm ci
npm run build
cd ..
cargo install --path crates/getmanThe browser UI is built first because it is embedded in the binary.
Check that it works:
getman --versionYour first requests
Make a workspace with example requests, in a new folder:
mkdir my-api && cd my-api
getman init --examplegetman init writes getman.yaml, which marks the folder as a workspace,
and a .gitignore that keeps machine-only files out of git. --example
adds a few requests against JSONPlaceholder,
a free test API, and two environments.
Now open it:
getmanGetman starts a server on http://127.0.0.1:7878 (or the next free port)
and opens your browser on it. Press Ctrl K (or
Cmd K on a Mac), type list, press Enter to open
List posts, then Ctrl Enter to send it.
Run in a directory that is not a workspace, getman opens your personal
workspace instead, kept in your user data folder, so you always have
somewhere to try a request.
A workspace in your repository
Getman works best with requests next to the code they call. In your repository:
mkdir api && cd api
getman init --name "Orders API"Then add requests in the UI, or by hand: each one is a YAML file.
# api/orders/create-order.yaml
name: Create order
method: POST
url: "{{baseUrl}}/orders"
headers:
- name: Accept
value: application/json
body:
type: json
content: |
{ "sku": "BOOK-42", "quantity": 1 }
checks:
- status == 201
- json.id exists
captures:
orderId: json.idCommit the YAML files. Everything that is yours alone, such as tokens
and personal overrides, goes in *.local.yaml files, which the generated
.gitignore leaves out. See Workspaces for the full
format.
Three ways in
| Command | What it opens |
|---|---|
getman |
The browser UI, on 127.0.0.1 |
getman tui |
The terminal UI, for SSH sessions and keyboard purists |
getman run |
Every request, with results for people or for CI |
They all read and write the same files, so you can edit a request in the browser, send it from the terminal and run it in CI without exporting anything.
Keyboard
| Keys | Does |
|---|---|
| Ctrl Enter | Send the request |
| Ctrl S | Save |
| Ctrl K | Find a request or command |
| Alt N | New request |
| Alt L | Edit the URL |
| Alt E | Switch environment |
| Alt C | Copy the request as code |
| Alt W | Close the tab |
| Alt [ Alt ] | Previous and next tab |
| / | Filter the sidebar |
| ? | Show every shortcut |
On a Mac, Cmd takes the place of Ctrl. Tab and window keys use Alt because browsers keep Ctrl N, Ctrl W and Ctrl Tab for themselves.
Next
- Workspaces: the files and how they fit together
- Variables and environments
- Checks and scripts
- Running in CI
- Coming from Postman