Open source · GPLv3 · macOS, Linux & Windows

Awake, the api client that lets you rest

Awake keeps every collection, request and environment as readable YAML files. Your team collaborates with branches and pull requests instead of a cloud account.

Awake showing a collection tree, a GET request to /v1/users and its JSON response

Everything you need

A serious API client, without the cloud.

Requests, authentication, environments and history, in a fast native app whose files you can read, review and version like any other code.

Files as the source of truth

One readable YAML file per request. Reviewable diffs and ordinary git history, with no database to sync.

HTTP, SSE and WebSocket

Parameters, headers, basic, bearer, API key and OAuth 2 authentication, every body type and request scripts.

Environments that fit your team

Shared variables with local overrides. Secret values stay in the operating system keychain and never in the repository.

Coding agents, built in

Chat with Claude Code or OpenCode to rename requests, extract base URLs or change anything else in the workspace.

Import and export

Bring your existing collections from Bruno, OpenCollection, OpenAPI and Postman, and take them with you any time.

Built to stay fast

A virtualized tree, a SQLite index and instant search, plus a command palette, request history and light and dark themes.

Git-native by default

Your workspace is the repository.

No account, no proprietary sync. Collections live under collections/ and environments under environments/, ready for the workflow you already use.

  • Review every change in a pull request: diffs are plain YAML.
  • Branch and merge with git, your editor and your CI.
  • Keep secrets out of the repository: local overrides are git ignored.
collections/acme-api/list-users.yaml
name: List users
method: GET
url: "{{apiUrl}}/v1/users"
parameters:
  - name: limit
    value: "20"
    enabled: true
  - name: role
    value: admin
    enabled: true
# Commit, review, merge. That is the sync.

Collaboration without collisions

Shared in git, personal on each machine.

Everyone opens the same collections and requests. When a value only makes sense on your machine — a local port, a test account, a debug flag — keep it in a .local file. Awake applies it when you send, and git never sees it.

  • Review together — one reviewed, tracked request for the whole team.
  • Override locally — <name>.local.yaml replaces parameters, path parameters or the body for you alone.
  • Keep secrets out — secret values live in the OS keychain, and local environment overrides stay git-ignored.
  • Go fully private — the local/ folder holds collections that never leave your machine.
collections/payments/create.yaml git tracked
name: Create charge
method: POST
url: "{{apiUrl}}/v1/charges"
parameters:
  - name: amount
    value: "1000"
  - name: currency
    value: eur
collections/payments/create.local.yaml this machine
# Replaces the parameters, on my machine only.
parameters:
  - name: amount
    value: "1"

Your colleagues send amount: "1000"; you send amount: "1".

A closer look

Designed to stay out of the way.

The collection tree, the request editor and the response viewer share one calm workspace, with a live environment picker and git status always in reach.

Awake's collection tree and request editor: method, URL with variables, tabs and parameters
The collection tree and request editor: method, URL, parameters, headers, body, scripts and history.
Awake's response viewer: 200 OK, timing, size, and a formatted JSON body
The response viewer: status, timing, size and a formatted body, with headers one tab away.

Free and open source

Awake, the api client that lets you rest

Download the latest build for your platform, or build it from source with Go and Node.js. Awake is licensed under GPL-3.0-or-later.

macOS · arm64, amd64 Linux · amd64, arm64 Windows · amd64

Read the README or the file format documentation.