Local-first · Git-native · Free forever

The API client that stays on your device — under your control.

Synapse is an offline desktop IDE for REST services — a lightweight client that keeps your data 100% on your device.

No login. No cloud synchronization. No telemetry. Just your APIs.

  • Fully local & private
  • Plain JSON collections
  • Linux · macOS · Windows
collections/login.json
"id": "login",
"name": "Login",
"method": "POST",
"url": "{{selector.environment.BASE_URL}}/auth/login",
"headers": {
  "Authorization": "Bearer {{secrets.API_KEY}}"
},
"scriptLines": [
  "TOKEN = response.body.accessToken",
  "run:parse-token"
]

Why choose Synapse?

Everything is stored as plain JSON files on your filesystem. It works offline. It works with Git. It works the way developers expect tools to work.

Fully local & private

No account, no cloud sync, no telemetry. Your data never leaves your device.

Native desktop app

Fast, lightweight app for Linux, macOS, and Windows. Built with Kotlin Compose Multiplatform.

Git-native collections

Plain JSON files you can diff, branch, merge, and review in PRs like any other code.

Multiple selectors

Define as many independent dropdowns as your project needs — environment, team profile, device, or any custom parameter. Flip one and every request retargets at once via {{templates}}.

Live file watching

Edit a JSON file on disk and the UI updates instantly. No manual reload.

Free, no subscription

No cloud paywall, no per-seat pricing, no feature tiers.

AI-safe secrets

Import a .env once; Synapse encrypts its values with a machine-local key and stores them outside your repo. Use as {{secrets.KEY}} — nothing tracked in Git or readable by AI agents.

AI-agent friendly

Structured JSON workspace in predictable paths, easy for LLMs and AI agents to read, generate, and edit.

How it works

A space is just a folder. Collections, selectors, and scripts are plain files you control.

1

Organize workspaces as folders

Each workspace is a plain folder with a workspace.json, a collections/ folder of requests, and a selectors/ folder — optionally scripts/.

my-space/
├── workspace.json   ← space name
├── collections/     ← HTTP requests
├── selectors/       ← dropdowns
└── scripts/         ← automation
2

Define requests in JSON

Each .json in collections/ is one request. Templates work in url, headers, queryParams, and body.

{
  "method": "GET",
  "url": "{{selector.env.BASE_URL}}/products/{{selector.profile.PRODUCT_ID}}"
}
3

Switch context with selectors

Selectors are dropdown chips in the toolbar. Define one per dimension — environment, team profile, device, or any custom parameter — then flip any of them and every request that references it retargets instantly.

{{selector.environment.BASE_URL}}
{{selector.profile.PRODUCT_ID}}
{{selector.device.USERAGENT}}
4

Automate with scripts

Extract values from responses into session variables, or run custom Kotlin .kts scripts for JWT decoding, HMAC signatures, and multi-step flows.

TOKEN = response.body.accessToken
run:parse-token
# → {{script.TOKEN}} everywhere
AI-safe secrets

Your keys never touch your repo

API keys, tokens, and passwords don't belong in plain JSON or Git history. Import a .env once and Synapse keeps them in an encrypted, machine-local vault that lives outside your repository.

  • Encryption key is derived from your machine — never written to disk.
  • Stored per project in Synapse's local config, never in the space/repo.
  • Teammates' checkouts and AI agents reading the repo can't see them.
  • Hide secrets toggle masks resolved values in the response viewer.
request headers
{
  "headers": {
    "Authorization": "Bearer {{secrets.API_KEY}}"
  }
}

At send time Synapse decrypts the value on the fly and injects it.

Frequently asked questions

Everything you might want to know before you download.

Which tools is Synapse similar to?

Synapse is a lightweight alternative to Postman, Bruno or Insomnia. Unlike Postman or Insomnia, Synapse works completely offline and doesn't force you to use an account or cloud synchronization. Unlike Bruno, its workspace is defined with standard JSON files rather than a custom DSL (.bru). Unlike all of them, Synapse is built with Compose Multiplatform and uses Kotlin for custom scripts.

Does Synapse work offline?

Completely. There is no sign-in, no cloud synchronization, and no telemetry. The only network traffic Synapse generates is the HTTP requests you send to your own APIs.

Where is my data stored?

In a directory you choose on your filesystem. Each workspace is a folder containing workspace.json, a collections/ folder of requests, and a selectors/ folder — all plain JSON you can commit to Git.

Which platforms are supported?

macOS, Windows, and Linux. Synapse is a native desktop app built with Kotlin Compose Multiplatform.

Are my secrets safe?

Yes. Synapse provides its own local vault that encrypts sensitive credentials and stores them outside the repository. The UI also masks secret values automatically.

Can AI tools generate Synapse collections?

Yes — that's a core design goal. Because every request and selector is structured JSON in a predictable path, LLMs and coding agents can scaffold entire workspaces, add endpoints, or refactor variables with no special tooling. Use our documentation in your agent skills to convert your API docs into collections, or to migrate existing collections from other tools.

Does Synapse support GraphQL requests?

Yes. Since GraphQL runs over HTTP, just send a POST request with a JSON body containing your GraphQL query and variables.

Can I run custom scripts?

Naturally. You can use Kotlin scripts (.kts) to write and execute custom code.

Download Synapse

Free, native, and offline. Select your platform and start sending requests in seconds.