Insomnia is a graphical HTTP client designed for use in API design and engineering. It was formerly two separate products: Insomnia Core and Insomnia Designer.


  • Projects are the root-level container.
    • Collections store related sets of requests. Using them to model individual applications, services or domains is a good bet.
      • Requests represent individual transactions. Fields on these can reference variables, configured in an environment.
      • Folders group related requests. I usually use these for related entities.
      • Environments let you extract variables from transactions, e.g. for usage across pre-production environments or with different credentials.
        • The base environment defines the default set of variable values.
        • Sub-environments can be used to override the base environment, and are merged with it.


Insomnia configuration data is stored in INSOMNIA_DATA_DIR, which defaults to:

  • Linux: ${XDG_CONFIG_HOME:-$HOME/.config}/Insomnia
  • macOS: ~/Library/Application Support/Insomnia
  • Windows: %APPDATA%/Insomnia


  1. Git sync
  2. Keyboard
  3. Variable substitution in environments