Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Workspaces

A workspace is a plain directory:

my-api/
├── turly.yaml               name, timeout, active environment
├── requests/
│   └── pet/
│       └── find-pets-by-status.yaml
├── environments/
│   └── default.yaml         variables and the names of secret variables
└── .turly/                  gitignored: secrets.yaml, history.jsonl

A request file

name: findPetsByStatus
method: GET
url: "{{base_url}}/pet/findByStatus"
params:
  - { key: status, value: available, enabled: true }
auth: { type: bearer, token: "{{token}}" }
body: { type: none, content: "" }
docs: "Finds pets by status."
order: 3 # optional: pins the position in the sidebar

Folders sort first, then requests by order, then by name.

Several workspaces

All registered workspaces are remembered in ~/.config/turly/workspaces.yaml. Open one with turly <path>, or switch inside the app: press W (or run :ws with no argument) for a picker listing every known workspace, with a ● on the current one. :ws <name or path> switches directly.

Several workspaces in one folder

Launch Turly in a folder that holds workspaces, or point it at one (turly ~/apis). It finds every workspace in that folder and up to two levels below it, skipping hidden folders, target and node_modules. When there are two or more, they appear as the top-level rows of the sidebar. Expand as many as you like to see their requests side by side:

▾ alpha
  GET  Get users
▾ gamma ●
  GET  Ping
  ▸ history
▸ team-beta

The ● marks the active workspace: the one whose environment, variables and history the commands use. Opening a request in another workspace makes that workspace active. A folder with a single workspace shows the plain tree.

KeyOn a workspace row
l / hExpand / collapse it
Enter or clickCollapsed: expand and activate. Expanded but not active: activate. Active: collapse
z MCollapse every workspace
z RExpand every workspace

Activating a workspace closes the open request, so it is refused while that request has unsaved edits. Which workspace is active at startup is the most recently used one in the folder, else the first. W still lists every workspace Turly knows about, in any folder.

Switching is refused while the open request has unsaved edits. The open request and response are cleared on a switch, and each workspace keeps its own active environment.