Tour
The interface is five regions and four rows of chrome. Everything else on screen is data.
The five regions
Chrome costs four rows out of thirty-two, which is why no logo sits permanently in the header. A sixth region is usually zero rows tall: the filter bar, which appears while you are searching or editing a filter.
Reading a row
A pipeline row reads the same way, with the same keys: project, ref, pipeline number, duration, failure reason, and how long ago.
The leftmost column carries a marker rather than a column of its own:
title, blockers and pipeline never drop, however narrow the terminal is. Every other column drops in a fixed priority order as the window shrinks.
Browse, filter, pin
You start on Home, which needs none of these three keys. They cover the questions Home does not answer: a team's queue, a release branch, a group's CI.
| Key | Does |
|---|---|
| b | Browse your whole GitLab tree, most-used groups first. Enter scopes the dashboard to whatever you highlight, and the scope survives a view switch. |
| f | Filter by state, draft, labels, authors, reviewers, approvals and dates. Values complete from your own instance, and a value GitLab would reject is rejected at the keystroke. |
| P | Pin the scope and filter on screen as a tab. Name it in one prompt, and it is still there tomorrow. |
Common keys
| Key | Does | Key | Does |
|---|---|---|---|
| j k | move down and up | r | refresh this section |
| h l | previous and next section | Tab | next view |
| / | search the loaded rows | p | show or hide the preview |
| o | open in the browser | L | logs of the failing job |
| ? | every key, grouped | q | quit |
Arrow keys, Enter and Esc do everything the vim keys do. Both vocabularies are complete, so nobody is locked out for not knowing vim and nobody who knows vim has to reach for an arrow key.
/ and f are different jobs. / narrows what is already on screen and issues no request. f changes what labdash asks GitLab for.
Key conventions
Lowercase acts on the row, uppercase escalates or reverses it. x closes and X reopens. d marks one to-do done and D marks all of them. r refreshes this section and Ctrl+R refreshes everything.
A key means the same verb in every view. R retries. x stops. m makes it go, merging a merge request or playing a manual job. L shows logs.
Two behaviours worth knowing before they surprise you:
- Esc never quits, and q never goes back.
Escmoves back exactly one level. On a dashboard it clears a search or a selection, and with nothing to clear it does nothing. It will not throw away a half-typed comment without asking. - There are no timed key sequences. A chord is
Ctrl-prefixed and instant. Ag-then-gwith a timeout produces mystery input on a slow SSH link, so labdash has none.
The help overlay
? opens the overlay, generated from the same keymap the application runs on. The keyboard cheatsheet on this site comes from that keymap too, with labdash keys --markdown, so the two cannot drift.
The command palette
Ctrl+K lists every action labdash has, with its key, filtered as you type. It is the answer to "there must be a way to do this" when you do not know what the thing is called.
Actions you cannot use from the current row are shown, with the reason, rather than hidden. That is how you find out the tool does something you have not reached yet.
Ctrl+P is the other half. It jumps to any project or group you have access to, matched on a fragment of the path, without walking the browse tree:
Browse is for exploring. Ctrl+P is for returning somewhere you already know the name of.
Toasts
A completed action reports in a toast: retried #88224 → #88232. It dismisses itself after a few seconds or on any key, and it never takes focus, so you can keep moving down the table while it is on screen. Anything that failed stays in the footer instead, with the reason.
Terminal width
The layout has real breakpoints, and each one is a window somebody works in.
The preview sits at the bottom below 120 columns and on the right at or above it. A right-hand pane on a 90-column terminal squeezes the table into uselessness.
Navigation depth
Nothing goes deeper than three levels. Reading code at the fourth level belongs in the browser or your editor, one o away.
Browse your GitLab, filter it, and pin the result.