NAME
App::karr::Cmd::Dashboard - Multi-board overview of every karr board under a directory tree
VERSION
version 0.600
SYNOPSIS
karr dashboard
karr dashboard ~/projects
karr dashboard ~/projects --depth 2
karr dashboard --hide-no-board
karr dashboard --show-no-board
karr dashboard --json
karr dashboard --compact
DESCRIPTION
Walks a directory tree looking for Git repositories (a .git marker), checks each one for a karr board (refs/karr/config), and prints a compact, multi-column overview: one visual entry per repository, a bar of one block per open task coloured by status, arranged side by side across the terminal width rather than stacked one per line. It answers one question -- where is work sitting, right now, across every board under here -- and touches nothing: it never fetches, pushes, or writes to any board.
This is deliberately not App::karr::Foundation::Overview (karr-foundation --status): that reads a fleet configuration and reports what agents are doing. This command needs no configuration at all -- it finds what is there and shows only where tickets are.
Only open work is drawn: any status the board's own configuration marks terminal (its own last status, or archived -- see App::karr::Config, ticket #67) is left out of the bar and out of the per-board open count, the same way App::karr::Cmd::Board leaves finished work out of its default view. Status names and which one is terminal are read from each board's own config, never assumed -- two boards shown side by side may use entirely different status lists.
SEARCH
The optional positional PATH is the starting directory (default: the current directory). From there the search is recursive: any directory carrying a .git entry counts as a repository and is not searched any further (no diving into a repository's own working tree, and .git itself is never entered). --depth bounds how many directory levels below PATH are descended into (default 4) -- unbounded would never finish under a home directory. Symlinked directories are never followed, to avoid loops; a directory that cannot be read (permissions) is skipped rather than aborting the whole scan.
That positional PATH is the only way to name the scan root. The root option --dir -- which every board command accepts in either placement, karr --dir PATH list as well as karr list --dir PATH -- is refused here in both placements, and both exit 2: karr dashboard --dir PATH is an unknown option, printed with the usage line that names the positional PATH, and karr --dir PATH dashboard is refused with a message saying where the scan root goes. It is refused rather than accepted as a synonym because it does not mean the same thing: --dir is the seed of a search upward for the root of one repository (which is why it may name any directory inside that repository), while this command searches downward for every board underneath a directory. Handed one and the same path, the two would answer about different directories. There is consequently no precedence rule for karr --dir A dashboard B: it is a usage error (exit 2), not a contest the positional wins. Before ticket #225 the root placement was accepted and then discarded without a word, so the command described the current directory while looking like it had answered about the given one.
OPTIONS
--depth NMaximum recursion depth below
PATH(default4).0checks onlyPATHitself.--hide-no-boardOmit the list of repositories that have no karr board entirely, including the
no_boardkey under--json. Wins over--show-no-board.--show-no-boardAlways list the board-less repositories by name, wrapping over as many lines as it takes. Without it, a list too long for one line collapses to a count (
No board: 46 repos (--show-no-board to list them)) so it cannot bury the summary line beneath it; a list that fits on one line is always shown in full and needs no flag either way.--jsonEmits a structured document instead:
{ root, summary, boards, no_board }. Never coloured.--compactOne plain line per repository (
name, a tab, then eitherno-boardor a comma-separated list ofstatus:counttokens ending inblocked:count), for scripts and greps. Never coloured.
SEE ALSO
karr, App::karr, App::karr::Cmd::Board, App::karr::Foundation::Overview
SUPPORT
Issues
Please report bugs and feature requests on GitHub at https://github.com/Getty/karr/issues.
IRC
Join #langertha on irc.perl.org or message Getty directly.
CONTRIBUTING
Contributions are welcome! Please fork the repository and submit a pull request.
AUTHOR
Torsten Raudssus <getty@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2026 by Torsten Raudssus <torsten@raudssus.de> https://raudssus.de/.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)