GurlGurl
Home
Docs
Home
Docs
  • Documentation

    • Documentation
    • Settings
    • Environments
    • Variables
    • Run history
    • Keyboard shortcuts
    • CLI

Variables

A single panel that tells you everything the next hurl invocation can see. Open it from the toolbar ($ icon) or with ⌘⇧V.

The table merges three sources:

SourceWhere it comes fromPersists?
Env fileEvery key from each currently-active env file. The Source column shows which file each key originated from.On disk, in the env file.
CapturedAnything a [Captures] block has produced this session.Across launches — see Run history for re-applying older runs.
Ad-hocType a name and value in the row at the bottom of the table.Workspace-only, in .gurl/state/.

Override order

Variables resolve in two passes:

  1. Env files first, in the order they're listed under the active environment in settings.toml. Later files override earlier ones when they redeclare the same key — same behaviour as passing multiple --variables-file flags to hurl.
  2. Captures and ad-hocs override env-file values by name. Within captures and ad-hocs themselves, the most recently captured (or most recently edited) value wins.

So: env-file layering settles first, then anything captured or typed into the panel takes precedence over that baseline.

Overridden rows are shown with strikethrough in the Variables panel, so you can see at a glance which value is actually live for any given name.

Editing values

Double-click the Value column to edit a row inline:

  • Env-file rows write back to the underlying .env file on disk — the same file the panel's Source column points at.
  • Captured rows override the captured value in memory until the next run replaces it (or until you clear the override).
  • Ad-hoc rows are stored under .gurl/state/ so they survive the workspace closing.

Complex captured values

If a [Captures] block captures an object or array (JSON path expressions that don't resolve to a scalar), Gurl JSON-stringifies the value at capture time and stores it as a string. That string is what gets passed to hurl as --variable KEY=<json> on the next run, so downstream requests see a serialized form rather than a structured value. You'll see a single-line JSON snippet in the Value column for these.

Hover popover

Hovering any {{varname}} reference in an editor tab shows the value that the next run will resolve to. ⇧⌘C while the popover is open copies the value.

If the reference is undefined the popover instead reads "(undefined)" and the variable token gets a red background — no run-time error yet, but it's a visible cue something's missing.

Prev
Environments
Next
Run history