Introduction

labdash is a terminal dashboard for GitLab. It shows the merge requests, pipelines, jobs, and to-dos from every project and group you have access to, in one window.

home-tabs
Each tab is a scope with a filter applied to it. The row count arrives with the rows.

labdash opens on Home. Home is built from what GitLab already knows about you: the merge requests waiting on your review, the ones reviewers handed back, the ones you authored, and your failing pipelines. Every query behind that screen asks GitLab about you rather than about your organisation, so it is complete on a fresh install.

The four views

ViewWhat it shows
Merge requestsEvery open merge request in the current scope, with approvals, head pipeline status, diff size, labels, and the reason it cannot merge
PipelinesPipelines across a whole group tree, with status, duration, queued time, who triggered them, and the failure reason
Jobs and logsThe jobs in a pipeline, grouped by stage, and the full trace of any one job, searchable and foldable
To-dosYour GitLab to-do list, with the action, the target, the project, the age, and mark-done

Tab moves between the tables. Jobs and their logs open from a pipeline row. The scope you are standing in follows you, so moving from merge requests to pipelines keeps your place.

Browse, filter, pin

Home answers one question: what needs you. Three keys build every other view.

KeyDoes
bBrowse your GitLab group tree, with the groups and projects you work in most at the top. Enter scopes the table to the node you highlight.
fFilter by state, draft, labels, author, reviewer, approvals, and dates. Values complete from your own instance, and an impossible value is rejected at the keystroke.
PPin the scope and filter on screen. It becomes a tab, and the tab is still there tomorrow.

Pinned tabs live in a state file that labdash writes and you never open. There is no configuration file for the interface: no section definitions, no column layout, no template language. A small settings file holds the connection details for a self-managed GitLab, where your clones live on disk, and appearance.

Scope

labdash works on the queue around the code. Reading a diff line by line stays in the browser or your editor, and o opens the selected row there in one keypress. The dashboard covers merge requests, pipelines, jobs and to-dos on GitLab: there is no diff viewer, no file tree, no issue board, and no GitHub support. labdash calls GitLab's GraphQL and REST APIs directly rather than running glab.

Next steps