Skip to main content
LazyWorktree displays CI status indicators and provides access to GitHub Actions logs directly from the TUI.

CI Status Indicators

CI checks appear in the Status pane for worktrees with linked PRs/MRs:
IndicatorColourStatus
GreenPassed
RedFailed
YellowPending
GreySkipped
GreyCancelled

Example Display

PR #123: Add new feature
Author: @username
State: OPEN

CI Checks:
  ✓ build (ubuntu-latest)
  ✓ test (ubuntu-latest)
  ● lint (ubuntu-latest)
  ○ deploy (ubuntu-latest)
CI status is fetched lazily and cached for 30 seconds to reduce API calls.

View CI Checks

Press v to view CI checks when the Status pane is focused.
1

Focus Status Pane

Press 2 or navigate with Tab
2

Press `v`

Opens the CI checks list
3

Navigate Checks

Use j/k to move between checks
4

Open in Browser

Press Enter to open the selected check URL in your browser

View CI Logs

Press Ctrl+v to view logs for the selected CI check in a pager.
1

Focus Status Pane

Press 2 or navigate with Tab
2

Press `v`

Opens the CI checks list
3

Select Check

Use j/k to select a check
4

Press `Ctrl+v`

Opens logs in pager (default: less)
Configure a custom pager with ci_script_pager to strip timestamps or format logs.

Restart CI Job

Press Ctrl+r to restart a failed CI job (GitHub Actions only).
Restarting CI jobs requires appropriate repository permissions.

Key Bindings Summary

KeyAction
vView CI checks (when Status pane focused)
Ctrl+vView logs for selected check in pager
Ctrl+rRestart CI job (GitHub Actions only)
j / kNavigate CI checks
EnterOpen selected check URL in browser

CI Log Pager Configuration

Customise the pager for CI logs with ci_script_pager:
pager: "less --use-color --wordwrap -qcR -P 'Press q to exit..'"

CI Environment Variables

The ci_script_pager has access to:
  • LW_CI_JOB_NAME - Full job name
  • LW_CI_JOB_NAME_CLEAN - Sanitised job name (safe for filenames)
  • LW_CI_RUN_ID - GitHub Actions run ID
  • LW_CI_STARTED_AT - Job start timestamp
Use tee to save logs whilst viewing them, as shown in the example above.

Auto-refresh CI Status

Enable automatic CI status refresh for GitHub repositories:
ci_auto_refresh: true  # Default: false
auto_refresh: true
refresh_interval: 10   # Seconds
CI auto-refresh only works for GitHub repositories with gh CLI configured.

Manual CI Refresh

Press r to manually refresh CI status along with PR/MR data.
1

Press `r`

Refreshes worktree list, PR/MR data, and CI status
2

Wait for Update

CI status indicators update in the Status pane

CI Status Cache

CI status is cached for 30 seconds to reduce API calls.
  • First access fetches from GitHub/GitLab
  • Subsequent accesses use cached data
  • Cache expires after 30 seconds
  • Manual refresh (r) bypasses cache
Press p to force refresh CI status without reloading worktrees.
In terminals with OSC-8 support, the PR/MR number in the Status info panel is a clickable hyperlink. Supported terminals:
  • Kitty
  • WezTerm
  • iTerm2
  • foot
  • Ghostty
Fallback: Use v then Enter to open check URLs in any terminal.

GitHub Actions Integration

LazyWorktree integrates specifically with GitHub Actions:
  • Fetches workflow runs and job statuses
  • Displays job names and conclusions
  • Provides direct access to logs
  • Supports job restart (requires permissions)
GitLab CI support is limited to status display. Log viewing and job restart are GitHub Actions only.

Build docs developers (and LLMs) love