Skip to content

POSTING 3 ~/guide/navigation/

Navigation

Posting is designed to be driven from the keyboard, but everything can be clicked too.

The layout

From top to bottom, Posting's screen is made up of:

  • The sidebar, on the left, running the full height of the screen. It has two tabs: Requests, the requests in your collection, and History, the responses you've received.
  • The header, a single row showing the active environment and your user@host. Click the environment's name to switch to another.
  • The request tabs, one for each request you have open.
  • The URL bar, with the method selector on its left.
  • The Request panel, where you edit the request's headers, body, parameters, auth and options.
  • The Response panel, which shows the response. It sits below the request, or beside it in the side by side layout.
  • The footer, showing the most useful keys for whatever has focus.

The dividers between the sidebar and the panels, and between the request and response, can be dragged with the mouse to resize them.

Changing the layout

A few commands in the command palette (Ctrl+P) change the layout for the rest of the session:

  • Layout: side by side / Layout: stacked puts the response beside or below the request.
  • View: hide collection / View: show collection hides or shows the sidebar. Ctrl+H does the same.
  • View: expand request / View: expand response makes one panel fill the screen. Alt+Z expands the Request or Response panel, whichever has focus (the Request panel if neither does), and pressing it again restores both.

To make any of these permanent, set layout, collection_browser.show_on_startup or collection_browser.position in your configuration.

Jump mode

Jump mode is the fastest way to get around.

Press Ctrl+O and a label appears over every part of the screen you can move to. Type a label to jump straight there. Press Esc to leave jump mode without moving.

Jump mode: every pane, tab and request gets a label.

Some labels are always the same, so they soon become muscle memory:

Label Jumps to
1 The method selector
2 The URL bar
3 The requests in the collection
4 The history list
Q W E R T Y U The request tabs: Headers, Body, Path, Query, Auth, Info and Options. A GraphQL request has no Body tab, and R jumps to its Params tab. A gRPC request has no Body, Path or Query tab, and Q jumps to its Metadata tab.
I O A GraphQL request's Query and Variables tabs, or a gRPC request's Message and Proto tabs
A S D F The response tabs: Body, Headers, Cookies and Trace. A gRPC response has Trailers in place of Cookies.

The request and response tabs follow the rows of a QWERTY keyboard, so their labels sit roughly where the tabs are on screen.

Everything else on screen gets a label from the remaining letters: requests in the collection, history entries, open request tabs, and the fields inside the current tab. Some of these labels are two letters long; the labels narrow down as you type.

Moving around with the keyboard

  • Tab and Shift+Tab move focus forward and backward through the fields on screen.
  • The arrow keys (or H J K L where you're not typing) move within a part of the screen, and between neighbouring parts where it makes sense. For example, Down in the URL bar moves into the request tabs, Down from a tab moves into its content, and Up from the top of a tab's content moves back to the tabs.
  • Ctrl+L jumps to the URL bar from anywhere, and Ctrl+T opens the method menu.

Request tabs

Every request you open gets a tab above the URL bar. Each tab shows the request's method and name. A dot (●) marks a tab with unsaved changes, and … marks a tab whose request is being sent.

Key Action
Ctrl+N Open a new, empty request tab
Alt+Right / Alt+Left Go to the next / previous tab
Alt+Down Search your open tabs by name
Alt+W Close the current tab

You can also click a tab to switch to it, click its ✕ to close it, click + for a new tab, or click ▾ to search your tabs. When there are more tabs than fit, scroll the strip with the mouse wheel, or click the ‹ and › arrows at its ends.

Warning

Closing a tab doesn't ask for confirmation, even if it has unsaved changes.

Each tab sends its own requests. You can send a slow request, move to another tab, and carry on working: when the response arrives it's kept in its tab, and Posting doesn't pull you away from what you're doing. Press Esc to cancel a request that's in flight.

Preview tabs

When you open a request from the collection or from history, it opens in a preview tab, whose name is shown in italics. Opening another request replaces the preview tab instead of opening yet another tab, so you can browse through your collection without leaving a trail of tabs behind.

The preview tab becomes an ordinary tab, which stays open, as soon as you:

  • edit the request, send it, or save it
  • double-click its tab, or double-click the request in the collection
  • choose Keep tab open from the command palette

If a request is already open in a tab, opening it again takes you to that tab.

Searching for requests

Press Ctrl+G from anywhere to search the requests in your collection. You can also press / while the collection has focus. The collection is filtered as you type:

  • Separate words with spaces. Every word must match part of a request's name or folder, or the start of its method, so post users finds POST requests in a users folder.
  • Press Enter or Down to move into the results, and Enter to open a request.
  • Press Esc to clear the search.

Mouse support

Anything you can focus with the keyboard can be clicked. A few things are only a click away:

  • Hovering over a request in the collection shows its description, if it has one.
  • Clicking the environment name in the header opens the environment switcher.
  • Clicking the Posting logo in the bottom left corner opens a menu with links to these docs, sponsoring the project, and Mastodon.
  • Clicking wrap on/wrap off or copy under the response body toggles line wrapping or copies the body.

Focus settings

Three settings choose where the cursor goes at key moments:

Setting Values Default
focus.on_startup url, method, collection url
focus.on_request_open url, method, headers, body, path, query, info Focus doesn't move
focus.on_response body, tabs Focus doesn't move

For example, to jump into the response body whenever a response arrives:

focus:
  on_response: body

focus.on_response only applies to the tab you're looking at: a response for a tab in the background never moves the cursor.

Getting help

Press F1 at any time to see the keyboard shortcuts, including any you've changed in your keymap. See Help for more ways to find your way around.

Quitting

Press Ctrl+C, or choose Quit Posting from the command palette.