Fully local & private
No account, no cloud sync, no telemetry. Your data never leaves your device.
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.
"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"
]
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.
No account, no cloud sync, no telemetry. Your data never leaves your device.
Fast, lightweight app for Linux, macOS, and Windows. Built with Kotlin Compose Multiplatform.
Plain JSON files you can diff, branch, merge, and review in PRs like any other code.
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}}.
Edit a JSON file on disk and the UI updates instantly. No manual reload.
No cloud paywall, no per-seat pricing, no feature tiers.
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.
Structured JSON workspace in predictable paths, easy for LLMs and AI agents to read, generate, and edit.
A space is just a folder. Collections, selectors, and scripts are plain files you control.
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
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}}"
}
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}}
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
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.
{
"headers": {
"Authorization": "Bearer {{secrets.API_KEY}}"
}
}
At send time Synapse decrypts the value on the fly and injects it.
Everything you might want to know before you download.
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.
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.
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.
macOS, Windows, and Linux. Synapse is a native desktop app built with Kotlin Compose Multiplatform.
Yes. Synapse provides its own local vault that encrypts sensitive credentials and stores them outside the repository. The UI also masks secret values automatically.
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.
Yes. Since GraphQL runs over HTTP, just send a POST request with a JSON body containing your GraphQL query and variables.
Naturally. You can use Kotlin scripts (.kts) to write and execute custom code.
Free, native, and offline. Select your platform and start sending requests in seconds.
.deb package · Debian / Ubuntu
Recommended: installation via CLI
curl -fsSL https://synapse-app.org/install-linux.sh | sh
or manual installation
Download.dmg installer · Apple Silicon & Intel
Recommended: installation via CLI
curl -fsSL https://synapse-app.org/install-mac.sh | sh
or manual installation
Download.msi installer · 64-bit
Recommended: installation via CLI
irm https://synapse-app.org/install-windows.ps1 | iex
or manual installation
DownloadmacOS note for manual installation: The first time you open Synapse, macOS may block it, because the app is downloaded from the web and not signed yet. Go to System Settings → Privacy & Security, scroll down to Security, find “Synapse” was blocked to protect your Mac, and click Open Anyway.
Windows note for manual installation: The first time you open Synapse, Windows Defender SmartScreen may block it, because the app is downloaded from the web and not signed yet. In the “Windows protected your PC” dialog, click More info and then Run anyway.