Hacker News new | comments | show | ask | jobs | submit login
Insomnia REST Client (insomnia.rest)
256 points by brunoluiz on Dec 7, 2017 | hide | past | web | favorite | 109 comments

I was a long time Postman user, but find myself using Insomnia more and more in recent months.

Nothing wrong with Postman at all, but I just like Insomnia's cleaner and less cluttered UI. However, even as a regular user, sometimes I find the 'Send' button can be a lot more prominent than it is. The green '200 OK' response next to the Send button looks more like a button, and I keep inadvertently clicking on it to send my requests off!

And when starting out with a fresh workspace, the 'Create New' prompt looks like a button that you can click to create a new query, but it isn't - you still have to use the hotkey to do so. Small improvements in the UI like that will go a long way to making this my default 'go to' API testing tool.

One nice feature of Insomnia, that I was pleasantly surprised by, was the ability to export and import your environment settings along with specific API end points. It makes getting up and running for an entire team a bit easier. Sharing is caring.

I'm a long time Postman user as well, I'm still using the Chrome app version because I like having it open in multiple tabs - I can quickly compare responses from Dev/Prod by switching tabs.

Does Insonmia or other REST clients support tabs?

Long-time Paw user here. I prefer it over this or Postman, but I agree that there are horses for courses. Paw lets you easily switch between a bunch of different requests, supports many auth schemes, can import the “copy as curl” right from your clipboard, can generate code for many languages (including curl), has a nice JSON viewer as a tree or as highlighted and formatted text, etc etc: https://paw.cloud

I also like the collab features and ability to save the API spec alongside the source code if you wish. They also have some cloud sharing for teams that I haven’t played with.

I stopped using Paw because it’s macOS only. I work across multiple operating systems and that was very limiting.

Actually, there is something wrong with Postman. It didn't affect the Chrome version but the standalone has a serious bug where it just completely ignores your hosts file. There's been a Github issue for it for over a year but they haven't bothered to fix it.

Personally, I prefer Postman but because of that bug it's basically useless for me.

Sorry about that issue. We have been working on the migration from the Chrome app to the Electron based app for a while. The final set of changes in the runtime went through in v5.4 (collection level auth, variables, scripts etc.). Changes closer to the network layer will start trickling in through soon. It seems like a long time for a bug, but we have been releasing version updates almost every 2-3 weeks. :)

It's like ice-cream, some people like chocolate, others like vanilla...others (insert your flavor).

I use a lot of httpie [1] and jq [2] - sometimes a GUI is nice to show other humans who might... mmhh... not like the CLI that much.. things in a more "eye pleasing way".

As usual with these tools YMMV.

[1] https://httpie.org/ [2] https://stedolan.github.io/jq/

I also use cd / mv / cp / rm, but sometimes Finder (macOS) / Explorer (win) / Dolphin (kde) works better.

Not for other humans, for me as well.

It has all those shiny colors, icons, columns, drag & drop, that makes it easier and faster, when you have more complicated task.

I guess it all depends, but GUI in general is a step forward.

In my experience, the converse is true. Finder/Explorer makes only already easy tasks like cd/mv/cp/rm easier, but terminal is much better for more complicated operations, such as mass renaming, data file preprocessing, etc.

I also like using mitmproxy combined with proxychains4 for monitoring outgoing requests of apps I'm building, especially when using a third-party library to use a service (like Azure services). It's also good for seeing what any application is doing.

[1] https://mitmproxy.org/ [2] https://github.com/rofl0r/proxychains-ng

I love httpie for smaller requests, but there's still situations where I have to reach for a GUI. Adding 4 headers and 9 fields in a JSON request body is not as fun in httpie if you find yourself having to change fields and run the request again

I use both.

Sometimes it's more convenient to use command line, and sometimes (especially with more complicated queries that you want to modify and fiddle with a lot) a GUI is more convenient.

While I tend to agree with that, I would love to have a Postman/Insomia style client for SOAP. I still do some work that requires talking to (legacy-ish) enterprise applications that only do SOAP :-( On the CLI, that's just a bunch of unusable XML.

I have good experiences with the free version of SoapUI. It is branded as a test automation tool, but can also work well as a client. Just import your WSDL and it will generate requests for you.


+1 for SoapUI. Used it for ~3 months during an internship a while back and didn't have any complaints.

Boomerang isn't so bad for SOAP. I just use the free extension at work. It has worked more consistently for me than Soap UI did.

SoapUI has provided this since the mid 2000s. Has a pretty dated UI now but still does the job for those legacy SOAP tasks.

Jetbrains just released a new in-editor REST client in Intellij 2017.3:


I think it combines the best of both worlds.

For people already used to org-mode + curl (or any CLI tool), I highly recommend using those together when exploring an API (granted, this involves throwing simplicity out the window)

  :header-args: shell :var PASSWORD=not :var USERNAME=narb :var AUTH_URL="nova.example.com:5000/v2.0/tokens"
  #+NAME: get-openstack-token
  #+BEGIN_SRC shell :cache yes :results verbatim
  export DATA='{
      "auth" : {
          "tenantName": "'"$TENANT_NAME"'",
          "passwordCredentials": {
              "username": "'"$USERNAME"'",
              "password": "'"$PASSWORD"'"
  curl -s $AUTH_URL \
      -H "Content-Type: application/json" \
      --data "$DATA" | jq -r ".access.token.id"

  #+RESULTS[be67...]: get-openstack-token
  : deadbeefdeadbeefdeadbeef

  #+BEGIN_SRC shell :var AUTH_TOKEN=get-openstack-token
Not to discount tools such as postman / insomnia or other built-in editor tools like restclient-mode, they are all fantastic tools

Some quick reasons why I found this works best for me:

* Org-mode is already great as a dedicated note-taking tool

* This is immediately compatible with existing CLI examples or output from tools that offer 'export as cURL' -- this is especially useful if I want to reverse engineer an api request by browser is making

* Easy to export to an html/wiki document for immediate consumption by others with working CLI examples

* Composable with other CLI tools like jq and xmllint

* Plain-text files are easy to version control

Instead of org and curl, some might like to give restclient a call. You put a # comment, then a rest call and maybe some data. It's still organized like a notebook, though, so you can point to any call and punch Ctrl-return and the result pops up in another buffer. Simple and slick without all the Org markup.


Are we assuming everyone knows that Org-mode is an Emacs package?

As someone who has never used Org-mode, and only very briefly dabbled in Emacs during college, I actually think that's a pretty safe assumption around these parts. No?

Even if you are uncomfortable assuming that, search results for "org-mode"/"orgmode" are unambiguous and helpful for anyone out-of-the-loop and curious, so it doesn't seem exclusionary or like a secret in-joke reserved for a secret society of HN elite.

I'm far more uncomfortable assuming everyone has the interest to follow up on every comment.

Alternatively I prefer to assume that it'll give our commentary more value if we provide some helpful context.

If our goal is to share technologies that we think are useful, we have options to make that goal more successful.

This is really cool. I end up doing a lot of this kind of stuff at work, so I plan on using the bejesus out of this.

I have been working on an alternative to Postman and Curl with a modern terminal interface. The idea isn't fully fleshed out yet, but I really like using it when I am designing an API. It forces me to think about discoverability and encourages me to provide links in the response rather than encoding the API route structure into a client.



I might consider implementing HATEOS to enable a tool like this. Nice job!

This looks excellent

I really miss the folding tabs when I go back to my system terminal.

this + tmux => sweeet

Been using Insomnia for a few months now, some things I really like:

1. Env switching. I believe this is available on other clients, but it feels very intuitive in insomnia.

2. The ease of using results from other calls and making method chains. When testing something locally, I can make a POST call and then click on my GET call and have it implicitly GET the id that was just created.

3. Computed values -- putting in uuids or timestamps for each new call without having to change them. I looked at the api and the code to add your own seems pretty straightforward.

4. Input data types are toggleable, but the form stays the same. This bugged the shit out of me with Postman: I'd fill out a form with my content body only to find I had marked the wrong content type, switched it, and saw Postman present me with a blank form.

Postman can import swagger specs[0]. Does insomnia have something similar?

[0]: https://www.getpostman.com/docs/postman/collections/data_for...

You can generate Swagger specs from Insomnia with a plugin, not sure about the inverse though...


Postman can also export to share with team which I don't see insomnia able to do.

Postman also has bulk edit of form requests..

I feel like postman is more fully featured so I'm sticking with it for now.

Yes, insomnia can export/import.

It's really nice tool indeed, I much prefer this to Paw and Postman strictly due to UX. Less tabs, less popups etc, easier to navigate. I don't mind Electron either. I know it's shameless plug but I can't resist sharing my own tool that I created for monitoring REST apis, if anyone is interested: http://www.apilope.com

Fair warning that this is an Electron app. (Downvotes incoming!)

For what it's worth, I use Insomnia every day with some pretty large requests and I've never had an issue with it.

With this, VSCode, Slack & Boostnote - a good portion of my daily work is done in Electron apps and I can't say I'm itching to switch to native alternatives.

Definitely appreciate how people have issues with it, but it doesn't seem like it's going away and hopefully will only get better.

Slack is a huge hog on my system, but I have more than 2 channels(?) on my slack

srsly. If I let slack run for a couple weeks, it will easily grab several GB of memory. That is insane.

Hit Command+R to refresh Slack and it'll release any memory it was accidentally holding onto. It's basically a page refresh.

I really don't get this hate for Electron.

When it's used well (VS Code) it works like anything else, when it isn't (Atom) it doesn't.

It might use more memory, but as developers we usually have GBs of spare RAM, isn't it there to be used anyway? A lot of apps on Linux are available because Electron makes porting easy.

I think it's a great technology.

I suppose Linux users are used to apps each having their own UI quirks to a certain extent, but as a Mac user, Electron apps stick out like a sore thumb and most certainly don't "work like anything else."

Taking your "used well" example of VS Code as an example, any Mac user trying to seriously use it for more than a minute will find plenty of problems. The scroll bars are thicker and more boxy and do not auto-hide; the cursor appearance is different (the line is too thick and fades in and out instead of just blinking); the page-up and page-down behavior is different (the cursor moves rather than just staying in place; infuriating!); what gets selected when you double- or triple-click on bits of code is different. Some people can get over this sort of stuff and use it anyway. I, personally, cannot.

Been using VS Code on a mac for over a year now and literally nothing you mentioned is true for me with the exception of the scroll bar being thicker than the OS default, but it does autohide.

It has been a couple months since the last time I tried it, so I gave it a download to see if my complaints have been fixed. It looks like the only one that has (or, more likely, I misremembered) is the fading cursor - but it's still too thick, it still moves when doing pgup/pgdn, selection on clicking still behaves differently, and the scroll bar is still most definitely visible. Also, there's that weird page-high gap when scrolling to the end of a file - I had forgotten about that one.

I know VS Code is highly customizable; is it possible you installed some customizations to make it behave more Mac-like?

I was on a Mac until a month ago and I never had any of the issues you're having.

Some of the behavior you mention is also by design.

P.S.: what's a good editor for the Mac in your opinion, then? Sublime Text is good and native, but the file explorer shows folders first instead of folder content mixed like everywhere else on macOS--and that's _actually_ infuriating.

> I was on a Mac until a month ago and I never had any of the issues you're having.

You mean these things weren't happening, or they were but they didn't bug you? :P

> what's a good editor for the Mac in your opinion, then?

I use Coda 2. It does too much with its built-in terminal and MySQL client and Git client and FTP client and manuals, but it's mostly possible to just use it as a code editor and ignore the rest. (The one thing that it doesn't have built in that I wish it did is a GDB debugger.) It was pretty crashy right after High Sierra was released, but the developers eventually ironed those out.

Jesus, Coda!?

So you're using an outdated editor because you don't like VS Code's scrollbars (which can be themed, btw)?

It's a dead product.

Dead? What's your source for this claim?


It's maintained.

It hasn't changed in 5 years.

Fair enough. I don't need much else from a code editor that already started out pretty great.

I mean, by your standard, how much has vi changed over the last 35 years or so? Is vi dead?

Vi is feature-complete, Coda is obsolete.

Totally different things.

> I was on a Mac until a month ago and I never had any of the issues you're having.

For what it is worth, I'm on one now and am experiencing the same issues.

For the record, I upvoted you because I find that a useful warning. I am intrigued by this app, but Electron tempers my initial impression slightly. Putting it on the back-burner for now.

Why, though.

Electron apps tend to be rather resource heavy, and the UI sometimes has that uncanny valley feeling for they're not using any native controls.

I'll tolerate a good electron app, but I'll always prefer native.

People may be taking your comment as general knee-jerk electron hate but it really is something to consider.

If you're sending requests that can return very long json responses, Insomnia can lock up and force you to restart it.

Paw is a pretty good native alternative but it's macOS only, doesn't have a free tier beyond a short trial period, and has some UI quirks that made me ultimately go back to Insomnia despite the electron borne downsides.

If Insomnia could offload the request response parsing/formatting to a WebAssembly module it would be perfect.

I'm seeing that a fair number of posts in this comment thread say "I've had Insomnia and/or Postman freeze/lock up/crash with large responses."

I can't recall ever having a problem with curl and a large response.

Yes, these others are probably doing something like parsing the response and making it pretty and that's where the problem is. But just sayin'. (Also, most of the time, curl's memory usage can be measured in kilobytes. Again, just sayin'.)

Isn't postman electron too?

For those that prefer a native interface and use macOS there's always Paw: https://paw.cloud/

(I'm not affiliated with them, just like the product)

That's the information I was looking for. Thanks you've saved me a download.

What exactly is the 'fair warning' here? You're just deliberately starting a shit-thread and then goading people on top.

I appreciate the warning, fwiw. I tend to dislike Electron apps, and avoid them if I can help it.

I don't mean to "shit on" Electron, it has it's uses - I just avoid it when possible.

The warning is that the app will be unnaturally resource-intensive and have an odd UI compared to a "native" app.

I won't say I didn't intend to stir the shit a little with this comment and figured I'd rightly it would be downvoted or flagged into oblivion, but now it's my most upvoted comment in the last week or so. So people seem to appreciate it a lot more than anticipated. Maybe every Electron app that shows up on HN needs an "Electron warning!" subthread.

I won't say I didn't intend to stir the shit a little with this comment and figured I'd rightly it would be downvoted or flagged into oblivion, but now it's my most upvoted comment in the last week or so.

So what? Did it in any way foster interesting discussion? No, just the opposite. It's bad and you should feel bad.

> Did it in any way foster interesting discussion?

Six subthreads and seventeen total subcomments so far, so apparently so. Exclusive of this particular subthread, of course.

Neither upvotes, subthread counts, etc, are a measure of interestingness or quality. You started it as a shitrhead and it remained so.

I'm glad he gave me the heads up.

I tried Insomnia a few days ago after Postman crashed over an exceptionally large response I was receiving. Insomnia was able to give me the full response after providing a warning about its size. Postman has been around a while so I assume they have a richer feature set, but was glad to see Insomnia handle this.

This is what I use.

It's not bad at all, Postman's UI is _slightly_ more intuitive, but Insomnia's is good, too.

I use it because they offer a .deb installer and Postman doesn't offer a package installer for Linux.

I need such tools only now and then so never get entirely fluent. Insomnia seems much more obvious to me than Postman.

Intuitiveness is very much in the eye of the beholder ;)

It's definitely subjective :-)

I've always been partial to 'restclient-mode': https://github.com/pashky/restclient.el

So nice to capture a flow of commands and notes in a single plain text file

Obligatory VSCode love.

vscode-restclient[1] is a fantastic piece of work. You create a .http file and write what looks like raw HTTP requests (syntax highlighting and autocomplete included). The biggest "feature" for me is that it's incredibly source control friendly. All of our services have documentation in the form of an HTTP "script" right alongside the code.

[1]: https://github.com/Huachao/vscode-restclient

The source code link is buried on their website.


There's a section on the footer of every page showing the contributors. Maybe I should add a GitHub link/logo too

I switched to Insomnia after a few years of frustration with Postman crashing and its annoying tab behavior. The only thing I miss is a display for # of matches when searching!

Just downloaded it. Quick and painless install (running Ubuntu 17). Starts quickly. Successfully made a few REST calls without difficulties.


for the command line I use Httpie, it makes more sense to me than wget or curl


I've been using it all the time for quite a while already. Generating different things like uuid's or dates in ISO format has been really useful. Same for environments. I also really like the UI.

Kinda wish Postman had support for other protocols like Thrift & gRPC

Yep. This is a work in progress. Watch out for an announcement in early 2018 about these and other description formats and protocols. :)

I've always used a client inside my editor:

- vim: https://github.com/aquach/vim-http-client

- emacs: https://github.com/pashky/restclient.el

Seems to me it's hard to overcome the advantage of being able to immediately work with and edit response data. What are the major advantages of these standalone clients?

For emacs users, check out restclient.el[0]!

Super easy to use, and it's trivial to save and organize common requests since...it's all just text :)

Supports variables as well. Check out the readme for examples. Can't recommend it highly enough.

[0] https://github.com/pashky/restclient.el

Great! What I couldn't find is: is it possible to get output from one command and store it as variable for use in another command? My example is simple: I need to get a token once, and then provide it as a header to all subsequent requests. The bugger is unfortunately valid only for a limited amount of time (some 10 minutes), which makes exploration a bit tricky, and I don't particularly like running search and replace all the time...

cmd-f'ed if anyone would mention it. not disappointed!

thank you, guys :)

Started using this for the graphql support, tho unfortunately the dev hasn't had the time to expose introspection a la graphiql

I've been using insomnia daily for something like a year now, it's excellent. I would ask the developer to stop putting pop-up messages in it though. I use it because it's the cleanest REST client I've found, and it's extremely jarring to have the otherwise exceptional UX broken by a "latest release" popup.

The latest release popup modal dialog is no longer there starting from 5.12.0 :)

There is also this one https://secapps.com/market/rest if you want even more UI goodness with support for variables and transformations. See the screenshots. Theme support is also going in soon. Disclosure: I am the founder of secapps.com.

I don't have administrative rights on my work Mac. I tried to install via brew. Got this:

Moving App 'Insomnia.app' to '/Applications/Insomnia.app'. Password:

I can't find the app anywhere after sudo gave up because I don't have rights. I did get this nice message though:

  insomnia was successfully installed!

You can install the *.zip file an extract it, which will give you the Insomnia.app bundle.


Nice, can't wait to try it!

Btw, this is the official source code:


But I find it a bit odd that I couldn't find a link to the source code on the website.

Edit: There is one, I just wasn't looking very well.

The one thing all of these clients miss is a way to at the same time document your REST API. Else it feels like doing work twice. And I don't think exporting it to Swagger or something else is the same thing. I want to be able to edit my documentation live while testing it.

Maybe I'm just a bit silly and not seeing it, but what does this give you over Postman?

Not sure if Postman does this, but one thing I like about Insomnia is that it keeps a history of all the responses from the server, a feature I find very useful when documenting API request & responses.

I switched because I prefer the layout. It reads very left to right. The area that you edit the request is very clear.

Well, it will recognize your hosts file if that matters to you.

This has a significant advantage over Postman (to me) because it is open source.

For the CLI crowd, shout-out for resty: https://github.com/micha/resty

I just use a Jupyter notebook and cURL or whatever language I'm using at the moment.

Does this allow signing requests with AWS Sig's + session tokens like postman?

If you mean AWS Version 4 Signing Process [1], then yes.

[1] http://docs.aws.amazon.com/general/latest/gr/signature-versi...

I thought this was an API I could order insomnia cookies with. Cool regardless

i love paw

I'll be sure to check it out once they switch from Electron.

to what?

To anything not based on a web browser.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact