Skip to main content
hitspec studio opens an interactive, keyboard-first workspace for your .http files without leaving the terminal. It is the fastest way to explore an API: edit a request, run it, inspect the tabbed response, and copy it out as curl or code — all from one screen.
hitspec studio                 # open the current directory
hitspec studio ./tests/        # open a directory
hitspec studio ./tests/users.http   # open a single file
hitspec studio --read-only     # browse without allowing file changes
ui is an alias for studio, so hitspec ui does the same thing. The older hitspec serve command still opens studio for backward compatibility, but hitspec studio is the dedicated command. Use hitspec serve --api-only when you want the REST/WebSocket API server instead of the UI.

What you get

  • Inline editing — a syntax-highlighted source pane you can edit and save (ctrl+s).
  • Run + tabbed response viewer — body, headers, assertions, timing, and captures.
  • Nine screens — workspace, stress, mock, contract, record, history, import, cookies, and settings.
  • Command palette (ctrl+p) — every action, searchable.
  • Copy/export — copy a request as curl, HTTPie, Python, JS fetch, Go, Ruby, or wget, including method, URL, headers, and body.
  • Environment + theme switchers — change the active environment (ctrl+e) or color theme (ctrl+t) live.
  • Workspace search (ctrl+f) and file watching — the file list and runs update as files change on disk.

Layout

The workspace screen is split into panes you cycle through with tab / shift+tab:
PaneWhat it shows
FilesThe .http / .hitspec files in the workspace
RequestsThe named requests inside the selected file
SourceThe raw, syntax-highlighted request source (editable)
ResponseThe tabbed response viewer after a run
A top bar shows the active environment and version; a bottom navigation strip and status line show the current screen, contextual key hints, and toasts.

Screens

Press a number key (or use the palette) to switch screens:
KeyScreenPurpose
1WorkspaceBrowse, edit, and run requests
2StressRun a load test and watch live metrics
3MockStart/stop a mock server from your files
4ContractContract-test against an OpenAPI spec
5RecordStart/stop a recording proxy and export captured traffic
6HistoryBrowse persistent run history with drill-down
7ImportImport from curl, OpenAPI, Postman, or Insomnia
8CookiesInspect the local cookie store
9SettingsView/edit config and environments

Keyboard shortcuts

Press ? at any time for the in-app keyboard reference.

Screens

KeyAction
1-9Jump to workspace, stress, mock, contract, record, history, import, cookies, settings

Workspace

KeyAction
enterOpen / select
eEdit source (focus the inline editor)
ctrl+sSave the edited file
rRun the active request
RRun every request in the file
ctrl+rRefresh the workspace (rescan files + config)
nNew scratch file
gGenerate a sample project (hitspec.yaml + example.http)
DDelete the selected file

Global

KeyAction
ctrl+pCommand palette
ctrl+eSwitch environment
ctrl+tSwitch theme
ctrl+fSearch requests
tab / shift+tabNext / previous pane
escCancel / close an overlay
?Help overlay
q / ctrl+cQuit

Command palette

Press ctrl+p to open the command palette — a searchable list of every action. Type / then a short, unique query to filter, then enter to run the highlighted command. The palette covers everything in the keymap plus actions that have no dedicated key, including:
  • Run the active request or whole file, save, edit, refresh.
  • File operations — new, rename, duplicate, delete, and generate a sample project.
  • Copy/export the selected request as curl, HTTPie, Python, JS fetch, or Go, and copy the last response body.
  • Quick request (ad-hoc) — run a one-off request by URL without saving a file.
  • Stress / mock / record — start and stop the load test, mock server, and recording proxy; export or clear recordings.
  • History / cookies / settings — open those screens, or clear run history.
  • Go to <screen> — jump to any of the nine screens by name.

Copy a request as code

Select a request and use the palette (ctrl+p) to copy it in the format you need:
CommandOutput
Copy request as curlA complete curl command
Copy request as HTTPieAn http (HTTPie) command
Copy request as PythonPython requests code
Copy request as fetchA JavaScript fetch() snippet
Copy request as GoGo net/http code
Copy response bodyThe last response body
Each snippet includes the request’s method, URL, headers, and body, so it is a runnable copy you can paste and tweak.
The curl export is the most complete — it also renders any configured @auth (for example, a bearer token). The other languages include the request’s explicit headers and body; add auth headers yourself if your request relies on the @auth directive.

Ad-hoc requests

Use Quick request (ad-hoc) from the palette to fire a one-off request by URL and view the response without creating a file — handy for a quick probe while you work.

Environments

Press ctrl+e to open the environment switcher and pick the active environment. The default environment is dev; override it at launch with --env:
hitspec studio ./tests/ --env staging
The top bar always shows which environment is active, and the Settings screen (9) lets you view and edit environment variables. See Environments for how environments are defined.

Themes

Press ctrl+t to open the theme picker, or set a theme at launch with --theme:
hitspec studio --theme "Tokyo Night"
Built-in themes:
  • Nord
  • Catppuccin Mocha
  • Dracula
  • Tokyo Night
  • Gruvbox Dark

File watching

Studio watches the workspace by default (--watch, on by default) and refreshes the file list and live execution progress as files change on disk. Disable it with --watch=false if you prefer a static view.

Flags

FlagShortDescriptionDefault
--watch-wWatch for file changestrue
--read-onlyDisallow file mutationsfalse
--env-eDefault environmentdev
--configPath to hitspec.yaml
--verbose-vVerbose loggingfalse
--allow-shellAllow shell command executionfalse
--allow-dbAllow database assertionsfalse
--log-formatLog format: text or jsontext
--log-levelLog level: debug, info, warn, errorinfo
--themeColor theme (see Themes)
Shell commands and database assertions are disabled by default. Pass --allow-shell and/or --allow-db to enable them in studio, the same as with hitspec run.

Read-only mode

--read-only disables every file mutation (save, new, rename, duplicate, delete, generate). Use it to browse or demo a workspace without risking changes:
hitspec studio ./tests/ --read-only

Next steps

Quickstart

Write and run your first test, then open it in studio.

Editor Setup

Syntax highlighting and completions in VS Code, Neovim, and more.

Stress Testing

Drive a load test from the stress screen.

API Client Manager

How studio and serve share one in-process manager.