App-karr
view release on metacpan or search on metacpan
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 F</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 C<raudssus/karr:user> instead. That
image defaults to uid and gid C<1000:1000> and is intended as the predictable
base for downstream custom images. Custom fixed-user derivatives can override
C<KARR_UID> and C<KARR_GID> at build time.
=head1 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:
docker/karr-entrypoint.sh view on Meta::CPAN
#!/bin/sh
set -eu
target_uid="${KARR_UID:-}"
target_gid="${KARR_GID:-}"
if [ -z "$target_uid" ] || [ -z "$target_gid" ]; then
if [ -d /work ]; then
work_uid="$(stat -c '%u' /work)"
work_gid="$(stat -c '%g' /work)"
else
work_uid=1000
work_gid=1000
fi
: "${target_uid:=$work_uid}"
: "${target_gid:=$work_gid}"
fi
: "${target_uid:=1000}"
: "${target_gid:=1000}"
mkdir -p /home/karr
if [ "$target_uid" = "0" ] && [ "$target_gid" = "0" ]; then
export HOME=/root
exec karr "$@"
fi
chown "$target_uid:$target_gid" /home/karr
export HOME=/home/karr
exec gosu "$target_uid:$target_gid" karr "$@"
lib/App/karr.pm view on Meta::CPAN
=back
=head1 DOCKER RUNTIME
Perl installation remains the normal development path, but Docker is a
first-class runtime option for vendoring C<karr> into other repositories or
tooling environments.
The default C<raudssus/karr:latest> image starts as root only long enough to
inspect the mounted F</work> directory and then drops to the matching numeric
uid and gid before running C<karr>. This prevents root-owned project files when
the image is used through a shell alias. The companion C<raudssus/karr:user>
image is the fixed-user variant for environments that prefer a predictable
non-root runtime without that auto-adjustment.
See L<karr> and F<README.md> for the shell alias form and operator-focused
examples.
=head1 PROGRAMMATIC USAGE
Although the distribution is centered on the CLI, the lower-level modules are
( run in 0.983 second using v1.01-cache-2.11-cpan-ceb78f64989 )