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

Dashboard

Running banco with no subcommand opens a full-screen, read-only dashboard for the current project.

banco

Press q or Ctrl+C to exit.

Layout

━━━━━━━━━━━━━    Status:     2026-01-15 09:30:00 (3d ago)  ·  ok  ·  1.2 MB
 ┃  banco  ┃    Providers:  local, github
━━━━━━━━━━━━━

┌ local ──────────────┬──────────────────┬──────────────┐
│ notes (2)           │ tasks (4)        │ bookmarks (1)│
│   My first note     │   backlog (2)    │   Rust docs  │
│   Meeting 2026-01   │     Fix login    │              │
│                     │     Add tests    │              │
│                     │   doing (1)      │              │
│                     │     Review PR    │              │
└─────────────────────┴──────────────────┴──────────────┘

The top row shows:

FieldSource
StatusMost recent sync timestamp with relative age, config check result, and total project folder size
ProvidersEnabled providers from .banco/config.yml, always starting with local

Provider sections

Each provider with at least one non-empty module gets a box. Modules with zero items are hidden. Each visible module is a column:

  • notes / bookmarks — header with item count, then up to 5 most recent names
  • repos — like notes/bookmarks, but each repo also shows its current git branch and status, e.g. my-repo (main) *↟2 (see Repo status indicators)
  • tasks — header with total count, then items grouped by status with up to 5 items per group; task number prefixes are stripped from displayed names

Repo status indicators

Repos render as name (branch) flags, where the flags annotate the git working copy:

MarkerMeaning
(branch)Current branch. Omitted for a detached HEAD or a directory git can’t read
*The working copy has uncommitted or untracked changes
↟NN local branches are not merged into the current branch

A clean repo on its default branch shows just name (main) with no flags. The same branch, dirtiness, and unmerged-branch information is available in banco context JSON output and in banco tidy repo findings.

If the terminal is too narrow to show item details usefully (less than 16 characters per column), the columns collapse to headers-only — counts remain visible.

The focused provider’s box is drawn in orange. The focused module’s column header is also orange.

Collapsing providers

Press v to collapse the focused provider. A collapsed provider is replaced by a single summary bar showing its name and per-module item counts, freeing the vertical space for the expanded providers. Press v again on it to expand it back.

│ ▸ github  tasks (4) · repos (2)                          │

This is a per-project view preference: it is remembered per project and persists across restarts. It is stored outside the repository in $XDG_STATE_HOME/banco/state.yml (falling back to ~/.local/state/banco/state.yml), not in .banco/config.yml, so it never appears in diffs and never leaks between users.

Keyboard shortcuts

KeyAction
?Toggle shortcuts overlay
cOpen the config editor
dOpen check panel
EscClose overlay
j / kNext / previous provider
qQuit
vCollapse / expand the focused provider
Ctrl+CQuit
Ctrl+SSync, then reload the dashboard with the freshly synced items
TabNext module (overflows to first module of next provider)
Shift+TabPrevious module (underflows to last module of previous provider)
SpaceBrowse all items in the focused module

Press ? at any time to show the shortcuts panel as an overlay over the dashboard.

Item browser

Pressing Space on a focused module opens a full-screen list of all items in that module.

┌ local: tasks (12 items) ────────────────────────────────┐
│ filter: _                                                │
├──────────────────────────────────────────────────────────┤
│ backlog                                                  │
│   Fix login bug                                          │
│   Add tests                                             │
│ doing                                                    │
│   Review PR                                             │
└──────────────────────────────────────────────────────────┘
  Esc/q close  ↑↓/Tab navigate  type to filter  Enter edit

Filtering

Type any characters to fuzzy-filter items. Label/group headers (e.g. status names) are always shown for groups that have at least one matching item, and hidden when all their items are filtered out.

KeyAction
/ Previous / next item (wraps around)
Tab / Shift+TabNext / previous item (wraps around)

Editing

Pressing Enter opens the selected item in $EDITOR (falls back to vi). The dashboard suspends while the editor runs and resumes when it exits.

Editing is supported for all modules that map to files on disk:

  • local provider: notes, tasks
  • Remote providers (jira, github, gitlab): tasks

Check panel

Pressing d opens a compact overlay summarising the output of banco check.

         ┌ check ──────────────────────────────┐
         │                                     │
         │  2 issues found:                    │
         │                                     │
         │  Extraneous directories             │
         │    ✗  ./archive                     │
         │                                     │
         │  Extraneous module paths            │
         │    ✗  ./notes/local/scratch.txt     │
         │                                     │
         │                         Esc  close  │
         └─────────────────────────────────────┘

When there are no issues the panel shows a single green confirmation line:

         ┌ check ──────────────┐
         │                     │
         │  ✓  No issues found │
         │                     │
         │           Esc close │
         └─────────────────────┘

The panel is sized to fit its content and centered on the terminal. It is drawn as an overlay on top of the dashboard — the underlying view is not redrawn until the panel is closed.

Press Esc or q to close.

Config editor

Pressing c opens an editor for .banco/config.yml as a master-detail view. The master list holds a General row (project-wide settings) followed by one row per configured provider. Providers that are disabled show ✗ off, and providers with validation problems show a issue count in red.

         ┌ config ───────────────────────────────────┐
         │                                           │
         │  General                                  │
         │  local                                    │
         │  github (gh-work)                         │
         │  gitlab                       ✗ off       │
         │  jira                         ⚠ 1         │
         │                                           │
         │  ↑↓ move  Enter open  a add  x delete  …  │
         └───────────────────────────────────────────┘
KeyAction
/ Move between rows
EnterOpen the selected row’s detail view
aAdd a provider (runs the same interactive flow as banco provider add)
x / DelRemove the selected provider from the config (after confirmation)
Esc / qClose the editor

Removing a provider only deletes its entry from .banco/config.yml — synced files already on disk are left in place. Use banco tidy afterwards to review what is now orphaned.

The built-in local provider cannot be removed, because an absent local entry means “use the defaults” (every module enabled) — deleting it would reset its configuration rather than turn it off. To switch local off instead, open its detail view and toggle enabled, or disable individual modules; both are saved to the config.

Detail views

Opening General edits the project-wide browse block (the command and arguments used to open URLs). Opening a provider shows a schema-driven form:

         ┌ github (gh-work) ─────────────────────────┐
         │                                           │
         │  alias        gh-work                     │
         │  enabled      [x]                         │
         │  module tasks [x]                         │
         │  module repos [x]                         │
         │  api_key      $GH_TOKEN                    │
         │  host         (unset)                     │
         │  projects     [2 items]                   │
         │  browse cmd   (none)                       │
         │                                           │
         │  ⚠ 0 issues                               │
         └───────────────────────────────────────────┘

Each field is edited in place with Enter:

  • alias, string parameters, browse cmd — open a single-line text editor. Clearing the value unsets it (string parameters are removed from the config entirely).
  • enabled and module rows — toggle on/off. Toggling a module off adds it to the provider’s disabled_modules.
  • list parameters (e.g. projects) and browse args — open a list editor where a adds an entry and d removes the selected one.

Required parameters that are unset are shown in red, and a live issue count at the bottom mirrors banco check. Stored values are shown raw — a $GH_TOKEN reference is displayed as $GH_TOKEN, not its expanded value.

Every change is saved to .banco/config.yml immediately. When you close the editor, the dashboard rebuilds so any newly enabled or disabled providers and modules are reflected at once.

Note: saving rewrites config.yml through the YAML serializer, so hand-written comments and key ordering are not preserved. Edit the file directly if you need to keep those.