Send HTTP, GraphQL, WebSocket, Server-Sent Events, gRPC, SOAP and MCP requests from one desktop app.

Codestamp is an open source API client with a Rust core. It needs no account, keeps your collections on your computer, and shows each collection as numbered steps instead of a strip of tabs.

Opens GitHub Releases, where you pick Codestamp_0.5.0_x64-setup.exe.

Windows 10 and 11 Debian 12, Ubuntu 22.04 and later Apache-2.0 macOS planned

Install on Linux

Linux package
sudo apt install codestamp

Run it after you add the Codestamp APT repository. See the three steps.

Light because it does not ship a browser

Codestamp runs its network core in Rust on Tauri 2 and draws its Svelte 5 interface in the WebView your system already has: WebView2 on Windows, WebKitGTK on Linux. There is no copy of Chromium inside, so the installer is about 6.4 MB.

Large responses
Codestamp keeps the first 2 MB of a response in memory and only counts the size of the rest.
Scripts
Each script run gets a fresh QuickJS sandbox with a 64 MB memory limit, then it is thrown away.
Run all
Run all does not hold response bodies, so memory returns to where it started after a run.

What is in the installer

  1. Rust network coreTauri 2. Sends every request and checks every input from the interface again.
  2. Svelte 5 interfaceTypeScript, drawn by the system WebView.
  3. Chromium: not shippedCodestamp uses the WebView already on your system: WebView2 on Windows, WebKitGTK on Linux.

About 6.4 MB for the first two

A collection reads top to bottom, with no tabs to manage

Tab-based clients open each request in a new tab, and a busy day ends with a row of tabs to sort through. Codestamp shows a collection as numbered steps. The request you work on opens as a card in its place, and the others stay as one-line rows.

A generic API client with twelve open request tabs, five of them unsaved, next to the same work in Codestamp: a numbered notebook with one request open as a card.
  • One request open at a time

    Opening a step folds the one before it back into a row.

  • Nothing waits to be saved

    Codestamp saves each change as you type, so there is no unsaved tab to close at the end of the day.

  • Long collections stay short

    Sections fold away, and the step numbers of the other requests stay where they are.

Seven request types in one collection

HTTP, GraphQL, WebSocket, Server-Sent Events, gRPC, SOAP and MCP requests sit side by side as numbered steps in the same notebook.

HTTP

Query, headers and path variables, with bodies in JSON, text, XML, HTML, form, multipart or binary. A request takes its auth from the collection, or you set Basic, Bearer, API key, Digest, AWS Signature V4 or OAuth 2.0 on the request itself.

  • Path variables such as :id get their own table.
  • Save a response as an example, and the mock server answers with it.

GraphQL

Codestamp fetches the server's schema, so the query editor highlights your query and completes fields as you type. Variables go in a JSON editor below the query.

  • Fetch again reloads the schema after the server changes.

WebSocket

Open a connection, send messages, and read the replies in one log as they arrive. The log keeps what you sent and what came back in order, with the time of each message.

Server-Sent Events

Send a plain HTTP request, and when the server answers with an event stream, the body tab turns into a list of events. Each one shows its time, event name, id and data, with JSON pretty-printed.

gRPC

Load services through server reflection, or from your .proto files when reflection is off. Pick a method, write the message as JSON, and read the status, headers and trailers of the reply.

  • Unary, server stream, client stream and bidirectional stream methods.

SOAP

Load a WSDL from a URL or a file and pick an operation. Codestamp fills the SOAP version, the SOAPAction and a sample envelope, and never overwrites text you already typed. A SOAP Fault shows as its own error.

MCP

Connect to an MCP server over STDIO or Streamable HTTP, browse its tools, prompts and resources, and run a tool with JSON arguments. The Messages tab shows the JSON-RPC log.

  • Codestamp asks before it starts a local program, and asks again when its command or environment changes.

Your team shares collections through Git

There is no Codestamp server and no account. Each request is a file in a repository your team already has, and signing in stays with Git's credential manager.

Step 1: you save a request, and Codestamp writes it as the file requests/list-orders.json. Step 2: Git pushes that file to your team's repository. Step 3: a teammate pulls it, and Codestamp merges the change. Their edits come back to you the same way.

Two edits to one request, merged field by field

AYour edit

url
/orders?page=1
headers
Accept: application/json

BTeammate's edit

url
/orders?page=1&limit=50
headers
none

Merged No conflict

url
/orders?page=1&limit=50
headers
Accept: application/json
  1. 01

    Each request is a file

    Codestamp writes every request as its own file in a repository your team already has. Sync, conflicts and version history run on Git.

  2. 02

    Merged field by field

    Two people who edit different parts of one request do not get a conflict. When both change the same field, Codestamp shows it as a conflict to resolve.

  3. 03

    Access groups

    Values only part of the team may see go into an access group. The repository holds only their ciphertext, readable by the people you choose.

Secrets stay out of what you share

History
keeps {{token}}, not the value you sent
Exports
leave secret values empty
Copy as code
reads secrets from environment variables
Focus mode
can hide secrets on screen while you share it

Everything else you reach for in a day

The parts of an API client you use between requests, all in the same app and all working offline.

import

Bring your Postman collections and the specs you already have, and take them back out when you need to.

In

  • Postman Collection v2.0 and v2.1
  • Postman environments
  • OpenAPI 3
  • Swagger 2
  • cURL
  • WSDL

Out

  • Postman Collection v2.1
  • Codestamp bundle
  • Markdown docs

copy-as-code

Turn a request into code in 15 languages and tools. Secrets are read from environment variables by default, so the snippet is safe to paste.

  • cURL
  • HTTPie
  • PowerShell
  • JavaScript fetch
  • JavaScript axios
  • Python
  • PHP
  • Go
  • Java
  • Kotlin
  • C#
  • Dart
  • Swift
  • Ruby
  • Rust

run-all

Run a whole collection in order, once per row of a CSV or JSON data file.

orchestration

Flows pass values from one request to the next, drawn as a step map.

mock-server

Saved examples answer on 127.0.0.1, with a log of every request and the example that answered it.

scripts

Pre-request and test scripts with a Postman-style pm.* API, run in a QuickJS sandbox without file or process access.

auth

Basic, Bearer, API key, Digest, AWS Signature V4 and OAuth 2.0, including authorization code with PKCE.

workspaces

Keep collections, environments, flows and cookies apart per team or client, each with its own icon.

themes

Light, Dark and Dark Night redefine the same colors, so every screen follows.

focus-mode

Hides the sidebar and the other cards, and can hide secrets on screen. Esc brings everything back.

Run the same collection in CI

codestamp-cli runs the HTTP and GraphQL requests of a collection in notebook order, with their scripts and tests. It uses an in-memory database for the run, so it never reads or changes the app's data.

Input
A Collaboration folder, a Codestamp or Postman v2.1 collection file, or an OpenAPI 3 or Swagger 2 file.
Secrets
--var NAME reads the value from the process environment, so CI secrets stay off the command line.
Reports
--junit and --json write reports. --data file.csv runs once per row, and --bail stops at the first failure.
Exit code
0 when everything passes, 1 when something fails, 2 when the run could not start.
  • With a Postman environment and a JUnit report

    codestamp-cli run ./collection-folder --environment staging.postman_environment.json --var API_TOKEN --junit report.xml

  • Once per row of a data file, stop at the first failure

    codestamp-cli run ./shop --data orders.csv --bail --json report.json

codestamp-cli run ./shop --junit report.xmlExit code 1
  1. Passed: POSTSign in200 OK · 84 ms
  2. Passed: GETList orders200 OK · 61 ms
  3. Failed: GETOrder detail404 Not Found · 38 ms

    Failed test: status is 200

Requests 3 · 2 passed · 1 failed · 0 skipped

JUnit report: report.xml

Install Codestamp 0.5.0

For Windows 10 and 11 and for Debian-based Linux, both x64. Your data stays in a folder on your own machine.

Windows 10 and 11

An installer for your user account. It needs no administrator rights.

  1. Download Codestamp_0.5.0_x64-setup.exe from GitHub Releases.
  2. Run it. It installs WebView2 only if it is missing.
  3. When you update and the installer asks, choose Do not uninstall, so your data stays in place.

The installer is signed with a self-signed certificate for now, so SmartScreen may say “Windows protected your PC”. Choose More info, then Run anyway.

Data folder: %APPDATA%\dev.codestamp.desktop

Download for Windows

Debian 12, Ubuntu 22.04 and later

Also Linux Mint, Pop!_OS and other distributions built on them. Add the repository once; later versions arrive with sudo apt upgrade.

  1. Trust the key that signs the repository

    wget -qO- https://oneshield7.github.io/codestamp/apt/codestamp.gpg | sudo tee /usr/share/keyrings/codestamp.gpg > /dev/null

  2. Add the repository

    echo "deb [arch=amd64 signed-by=/usr/share/keyrings/codestamp.gpg] https://oneshield7.github.io/codestamp/apt stable main" | sudo tee /etc/apt/sources.list.d/codestamp.list

  3. Install Codestamp and codestamp-cli

    sudo apt update && sudo apt install codestamp

Secret values use a key in the system keyring, so GNOME Keyring, KWallet or another keyring needs to be running. Desktop editions start one when you sign in.

Data folder: ~/.local/share/dev.codestamp.desktop

macOSPlanned. There is no macOS build yet.

Open your Postman collection as a notebook

Codestamp imports Postman Collection v2.0 and v2.1 files with their environments, and exports back to v2.1 when you need it.