NAME

karr - Kanban Assignment & Responsibility Registry

VERSION

version 0.402

SYNOPSIS

karr init --name "My Project"
karr create "Fix login bug" --priority high
karr move 1 in-progress --claim swift-fox
karr board
karr backup > karr-backup.yml

DESCRIPTION

karr is the primary command line interface for App::karr. It manages a Git-native kanban board whose canonical state lives in refs/karr/*, plus optional helper payloads in non-protected refs outside that namespace.

Run it from inside a Git repository. Commands discover the repository root, pull the current board refs, materialize a temporary board view for the command run, and then write changes back to Git refs. In normal use this means you can interact with shared task state without checking a persistent karr/ directory into the work tree.

The script is the best starting point when you want to understand the CLI as a user. For architecture notes, Docker background, and Perl-facing examples, see App::karr.

CLI WORKFLOW

A typical session looks like this:

  1. Create the board once with App::karr::Cmd::Init.

  2. Add and inspect tasks with App::karr::Cmd::Create, App::karr::Cmd::List, App::karr::Cmd::Show, and App::karr::Cmd::Board.

  3. Progress work with App::karr::Cmd::Move, App::karr::Cmd::Edit, App::karr::Cmd::Pick, and App::karr::Cmd::Handoff.

  4. Export, restore, or remove board state with App::karr::Cmd::Backup, App::karr::Cmd::Restore, and App::karr::Cmd::Destroy.

COMMANDS

Board Setup And Configuration

Task Lifecycle

Board Flow And Coordination

Snapshot And Recovery

Helper Refs

EXIT CODES

karr's primary callers are agents scripting the CLI, for whom $? is part of the interface. The exit code is therefore a stable contract (see docs/adr/0002-exit-code-contract.md):

  • 0 — success, including no-op successes such as re-archiving a task that is already archived.

  • 1 — runtime failure: a task id was not found, the board is missing, a Git or sync operation failed, a destructive command was refused for want of --yes, or a batch committed partial work but at least one item failed.

  • 2 — usage error: an unknown command, an unknown option, an invalid option value, or a surplus or missing positional argument.

The 1-versus-2 split is what lets a scripting agent tell "I called this wrong" apart from "the operation failed". This deviates deliberately from kanban-md, which exits 1 for everything.

DOCKER USAGE

The CLI works well through the published Docker image. A common alias is:

alias karr='docker run --rm -it -w /work -e HOME=/home/karr \
  -v "$(pwd):/work" \
  -v "$HOME/.gitconfig:/home/karr/.gitconfig:ro" \
  -v "$HOME/.claude:/home/karr/.claude" \
  -v "$HOME/.codex:/home/karr/.codex" \
  raudssus/karr:latest'

That keeps the current repository mounted at /work and lets the default image adapt its runtime uid and gid to the owner of the mounted workspace. The CLI syntax stays the same after that:

karr board
karr skill install --agent codex --global --force

If you prefer a fixed non-root runtime, use raudssus/karr:user instead. That image defaults to uid and gid 1000:1000 and is intended as the predictable base for downstream custom images. Custom fixed-user derivatives can override KARR_UID and KARR_GID at build time.

EXAMPLES

Initialize a new board and install the project-local Claude Code skill:

karr init --name "HandyIntelligence Prototype" --claude-skill

Claim and start the next task for a generated agent:

NAME=$(karr agentname)
karr pick --claim "$NAME" --move in-progress

Export the board before trying a destructive restore:

karr backup > karr-backup.yml
karr restore --yes < karr-backup.yml

SEE ALSO

App::karr, App::karr::Task, App::karr::BoardStore, App::karr::Git, App::karr::Cmd::Init, App::karr::Cmd::Skill, App::karr::Cmd::Backup, App::karr::Cmd::Restore

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; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.