New from the DevTools team: Stresseur, the AI test engineer for APIs →
DevTools
Back to Blog
Five open drawers in a row, each holding a stack of index cards

Best Open Source API Clients and Their Storage

Mustafa BayramogluMustafa Bayramoglu

The best open source API client depends on where you want your collections to live: Bruno keeps them as plain text files in a folder, Insomnia lets you choose per project between a local vault, Git sync and cloud sync, and Hoppscotch syncs them through a signed-in workspace. Yaak and DevTools Studio round out the list, and the sections below give each one the same three facts: its license, where its data sits, and whether you need an account.

How these clients were chosen

This list is about the desktop or browser tool you open to build and send requests, not the runner that executes tests in a pipeline. Three criteria apply to every entry. First, the license, because "open source" covers MIT, Apache 2.0 and mixed terms. Second, where a collection is stored: as files you can commit, or inside an app workspace. Third, whether you need to sign in. Apidog's 8 Best API Clients page is a broad roundup. This one is narrower on purpose, because storage is the axis that decides whether a collection can be reviewed in a pull request.

One more note on scope. If you are choosing a tool to run tests in CI, and sending ad hoc requests is a side concern, read the open source API testing tools for CI roundup instead. Everything below is about the client side.

What local-first and Git-friendly mean here

"Local-first" in this post means the client works on your own machine without a server in the loop. "Git-friendly" means a collection is stored in a form you can commit, so a change to a request shows up as a normal diff. The two overlap but are not the same. A client can work offline and still keep its data in an app database you cannot commit, and a client can write files to disk while also pushing them to a hosted workspace. That is why the sections below ask where the data sits and whether the app runs offline.

Questions to ask before adopting one

Before you commit a team to any of these, check four things. Where does a collection live on disk, and can you commit it as is? What happens to secrets and environment values: are they in the same files or separate? Which license covers the build you install, and does it differ from the source license? And what does the tool need from you to keep working offline, such as a sign-in? Each section below answers the storage and license questions from the project's own repository.

Bruno: a folder of plain text files

Bruno's repository states that it stores your collections directly in a folder on your filesystem, using a plain text markup language called Bru to save information about API requests. It also says you can use Git or any version control of your choice to collaborate over your collections. The license is MIT.

Bruno describes itself as offline-only, with no plans to add cloud sync. The practical result is that a collection is just files: a changed header is a line in a diff, and a reviewer reads it in the pull request. The trade-off is that sharing happens through your Git host, not through a hosted workspace. For a closer look at Bruno against other clients, see our posts on Bruno alternatives and Bruno versus Postman.

Insomnia: local vault, Git sync or cloud, per project

Insomnia's repository lists the license as Apache-2.0. Its distinguishing feature is that storage is a choice, not a fixed model. A Local Vault keeps collections, design specs and every other resource in 100 percent local storage. Git Sync stores them in any third-party Git repository without going through the cloud. Cloud Sync is for cloud collaboration and can optionally be end-to-end encrypted.

That flexibility is the reason to pick it: one team can keep a sensitive project local and another can sync through Git. The cost is that you have to decide per project, and a project set to Cloud Sync is stored in the cloud, not in Git. If you are weighing it against Bruno, our Insomnia versus Bruno comparison walks through the storage and account differences, and the Insomnia alternatives post covers moving toward CI.

Hoppscotch: a synced workspace

Hoppscotch's repository says the project is licensed under the MIT License. Its model is a workspace, not a folder: the README says collections are synced with your cloud or local session storage, and that you can sign in and sync data in real time across all your devices. It describes itself as offline, on-prem and cloud.

That makes Hoppscotch the right pick when the people using the collection are not all working in Git, and you want them to open a client and see the same requests. It is less suited to the goal of reviewing every request change in a pull request, because the storage is the workspace. Our Hoppscotch versus Bruno post compares the two directly.

Yaak: offline-first with a filesystem mirror

Yaak's repository describes it as an offline-first API client. The license has two parts that are easy to conflate. The source is MIT licensed and can be built and run for free for personal and commercial use, while the prebuilt binaries follow Yaak's pricing terms: free for personal use, with a license required for commercial use.

For storage, the README says you can mirror workspaces to your filesystem for versioning in Git or syncing with Dropbox. So Yaak sits between Bruno and Hoppscotch: the workspace is the app's own, and the files are an option you turn on. If you plan to use it at work, check which terms apply to the binary you install.

DevTools Studio: YAML flows on your own machine

This is our own tool, so weigh it accordingly. DevTools is open source under Apache-2.0, and Studio is the desktop app, alongside a CLI, flows and templates. Studio and the CLI are free, run on your own machine and in your own CI, and need no account.

Its storage model differs from the request-collection clients above. DevTools chains multi-step requests into reusable YAML workflows, so the workflows themselves are YAML. That suits teams who want to run flows on their own machine and in their own CI, and it is less of a fit if all you need is a place to fire single requests and save them in a tree.

There is no hosted DevTools. The hosted option is Stresseur Cloud, a separate paid product from the same team. In an upcoming release, DevTools Studio becomes Stresseur Studio, the same app, still free, open source and local.

Side by side

ClientLicenseWhere collections liveOffline or sign-in
BrunoMITPlain text files in a folderOffline-only
InsomniaApache-2.0Local Vault, Git Sync or Cloud SyncLocal Vault is 100 percent local; Cloud Sync for collaboration
HoppscotchMITSynced workspaceSign in to sync
YaakSource MIT, binaries under pricing termsApp workspace, optional filesystem mirrorOffline-first
DevTools StudioApache-2.0YAML workflowsNo account

Which one to pick

Choose by where the collection should live. If it should be files in the repo and reviewed like code, Bruno is the plainest fit, and Yaak works if you turn on the mirror. If different projects need different answers, Insomnia is the one that offers all three storage modes. If the audience is a mixed team that wants a shared workspace, Hoppscotch is built for that. If what you want is multi-step flows that run the same way on a laptop and in CI, DevTools Studio is the option to try.

For the CI half of the decision, the CI testing tools roundup compares what each tool runs in a pipeline.

Questions people ask

Which open source API client stores collections in Git?

Bruno stores collections as plain text files in a folder and says you can use Git or any version control with them. Insomnia offers Git Sync as one of its storage options.

Is DevTools Studio free?

Yes. Studio and the CLI are free, run on your own machine and in your own CI, and need no account.

Is Yaak free to use at work?

The source is MIT licensed and free for personal and commercial use if you build it yourself, but the prebuilt binaries require a license for commercial use. Check the terms for the build you install.

Does Hoppscotch work offline?

Its repository describes the project as offline, on-prem and cloud. Syncing across devices needs a sign-in.

Conclusion

Pick the client by storage first. Files in a folder point to Bruno, a per-project choice points to Insomnia, a shared workspace points to Hoppscotch, an offline-first app with an optional mirror points to Yaak, and YAML flows that also run in CI point to DevTools Studio. Check each project's repository for the current license text before you adopt it.