Show HN: Yaak – An open source, Git-friendly desktop API client (yaak.app)
Having also created Insomnia for a similar purpose, I never thought I'd build another API client again. But, after selling Insomnia in 2019 and watching it expand into the broader feature set of Postman, I was left wanting a simpler tool again. Yaak was my answer to that.
It's hard to describe how it's better than the 100 other API clients, since its main benefit is design, but there are a few stand-out features:
- Optionally sync data to a local directory as plain-text, for use with Git/etc - Build and install plugins for authentication, template functions, or generic actions - Support for REST, GraphQL, WebSocket, server sent events, and gRPC
Yaak requires a license for commercial use but this only applies when using the prebuilt binaries. If building from source, a license is not required.
It's available for Mac, Windows, and Linux and the source is at https://github.com/mountain-loop/yaak
I'd love to hear you think!
63 comments
[ 0.27 ms ] story [ 45.9 ms ] threadYaak is awesome, please please please keep it local-friendly
Any chance there’s room for assertions in your vision for Yaak? Running API tests is important for some teams which might force them to stick with Postman / Bruno
IMO the local focus also makes this better—can run tests directly in pipeline without calling out to some SaaS solution
[1]: https://usebruno.com
Bruno is also a good local-first client but leans more toward Postman's market.
The main advantage Bruno has is the ability to run tests, and a CLI to do so.
Yaak supports more protocols (eg. gRPC and WebSocket), has plugins, and more powerful templating for doing things like generating UUIDs (also extendable via plugins).
[1] https://feedback.yaak.app/help/articles/7017237-request-chai...
[1]: https://royathan.com/blog/the-api-client-hunt/
Btw, you could think of adding a way to let your users interact with your blog. I tried search for a comment box or upvote/thumbs-up so I could send my thanks for your efforts on writing it, but could not find it, so I resorted to HN comments.
Anyway, it's appreciated!
https://docs.usebruno.com/bru-lang/overview
What’s the end goal though? Planning to sell a licensed version? I’d be happy to pay for a model where I can own it for life but only get updates for a year.
If you subscribe to the annual plan (or the monthly plan for 12 months) and cancel, you get a perpetual license, meaning you can continue using the current version indefinitely.
The end goal is generate a sustainable income for as long as possible, so I can enjoy life with my family.
For example if I create a `dev` environment that contains a `base_url` environment variable, it's expected that when I create a `prod` environment, it will also have a `base_url` environment variable. Then in the future if I add more environment variables to my `dev` environment, I need to duplicate the work of adding an environment variable entry to `prod.
I can't be the only one that experiences this pain :P The UX of this could be handled in any number of ways:
- When you create a new environment, ask if you want to duplicate an existing environment's variable names (with empty values)
- If you add a new environment variable, ask if you want to add the environment variable name to another environment
- Option to enable syncing between all environments i.e. deleting a variable row in one environment deletes it for the rest etc
I was about to post this as a github issue for traction but given Issues are turned off thought this may be the next best place.
Regardless, Yaak is excellent!
Maybe I'm nitpicky, but I love sticking to software for years, had to ditch Insomnia after an auto-update killed my collections and wanted me to sign up for a cloud service. Could happen with this (yes, any software for that matter), too, because you'll sell it in a year from now.
That's a pretty interesting pricing strategy. I think REHL is the only other project I saw with this type of pricing.
Does this mean that you anticipate Yaak not to be open source anymore at some point?
I'd love to read about your experience building two distinct but similar products in the same space years apart
It's actually been way harder to gain traction this time, I think because APIs are no longer sexy and there are so many good tools out there.
having gone from postman -> insomnia -> back to postman -> bruno - id like to just have something simple that _just works_ without making it a pain.
looking forward to giving this a spin.
Probably the only tool that won't get SASSified into oblivion. CLI only is like plot armor for enshitification.
1. Dev makes a cool lightweight productive tool
2. Tool becomes popular
3. Company buys tool
4. Company adds a bunch of shit nobody needs making the product bloated and annoying to use.
5. Dev makes a cool lightweight productive tool
As I recall, both _used_ to be the same way.
I bounce around API clients a lot because the UX just never feels right, they always get in the way or start to feel clunky sooner or later.
With Yaak it feels natural, it’s clean and simple and is a joy to use.
I’m looking forward to seeing it grow and improve further.
I just hope as its feature set grows it can hold on to that simplicity. Hopefully the plugin system can be used to bridge any gaps without overloading the main app.
Kind of like how Quokka has a “personal pro” license.
https://quokkajs.com/pro/
I'm kind of curious why you picked Tauri over Electron for this one? I know one big benefit is smaller binaries but I'd love to know your thoughts behind this decision.