NAME
App::karr::Cmd::Config - View or modify board configuration
VERSION
version 0.500
SYNOPSIS
karr config
karr config get claim_timeout
karr config set board.name "New Board Name"
karr config show --defaults
karr config --json
DESCRIPTION
Reads and updates the board configuration stored canonically in refs/karr/config. The command supports whole-config display, individual key lookup, and writes to a small set of explicitly writable keys. Internally it works on the temporary materialized YAML view generated for the command run.
show and get answer for this repository's board and refuse when there is none, the way every other read command does ("require_local_board" in App::karr::Role::BoardDiscovery). They used to fall back to the code defaults instead, and the fallback was silent: in a fresh clone -- where git clone has fetched none of refs/karr/* and the board is sitting on the remote -- karr config get board.name answered Kanban Board, karr's placeholder, for a board that has a name (#136).
Those defaults are still worth printing; they were just answering a different question. --defaults asks it explicitly, so a caller can always tell the board's value from the value karr would use if you made one:
karr config show # this board's config, or exit 1 if none
karr config show --defaults # what a board created here would start with
OPTIONS
--defaultsPrint "default_config" in App::karr::Config instead of the board's config, for
showandgetalike. Reads no board and needs no Git repository at all, so it answers the same anywhere -- which is what makes it honest where the fallback was not. Rejected onset, which has nothing to write to.Because it renders identically to a board read,
diff <(karr config show) <(karr config show --defaults)is exactly the set of keys this board overrides.--jsonMachine-readable rendering of whichever of the two the command answered.
showprints the config as one object keyed by config key;get KEYprints that same object restricted to the one key asked for -- always wrapped, so the requested key is in the payload whatever its value is:karr config get claim_timeout --json # {"claim_timeout":"1h"} karr config get board --json # {"board":{"name":"..."}} karr config get statuses --json # {"statuses":["backlog", ...]}Through 0.402 only scalars were wrapped and lists and mappings were printed bare, which left
get boardanswering{"name":"..."}-- byte-identical to the wrapped form of a scalar key calledname, and no key in the payload to tell them apart (#131). Consumers that read the bare list or mapping must now index the requested key first; a scalar read is unchanged.
WRITABLE KEYS
board.name,board.descriptionHuman-facing board metadata.
defaults.status,defaults.priority,defaults.classDefault values applied by App::karr::Cmd::Create.
claim_timeoutClaim expiry duration in
NhorNmformat.lock_timeoutHow long a
karr picklock ref may be held before another agent may break it, inNh,Nm, orNsformat. This is notclaim_timeout: a claim covers a work session, a lock covers one pick. Defaults to5m;0sdisables expiry, leaving App::karr::Cmd::Unlock as the only way to clear a stale lock.foundation.enabled,foundation.reasonBoard-level switch for automated agent runs (App::karr::Foundation) and the free-text reason recorded with it.
foundation.enabledtakes a boolean word (true/false,yes/no,on/off,1/0) and is the same state App::karr::Cmd::Disable and App::karr::Cmd::Enable write.
SEE ALSO
karr, App::karr, App::karr::Cmd::Init, App::karr::Cmd::Create, App::karr::Cmd::Context, App::karr::Config
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.