Getman

Getting started

Install

Getman is one program with no runtime to install. Pick one:

With the install script (Linux and macOS):

Shell
curl -fsSL https://fzn0x.github.io/getman/install.sh | sh

With the install script (Windows, PowerShell):

PowerShell
irm https://fzn0x.github.io/getman/install.ps1 | iex

Both 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.

Shell
git clone https://github.com/fzn0x/getman.git
cd getman/web
npm ci
npm run build
cd ..
cargo install --path crates/getman

The browser UI is built first because it is embedded in the binary.

Check that it works:

Shell
getman --version

Your first requests

Make a workspace with example requests, in a new folder:

Shell
mkdir my-api && cd my-api
getman init --example

getman 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:

Shell
getman

Getman 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:

Shell
mkdir api && cd api
getman init --name "Orders API"

Then add requests in the UI, or by hand: each one is a YAML file.

YAML
# 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.id

Commit 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

Edit this page on GitHub

↑↓ moveEnter openEsc close