NAME

App::karr::Cmd::Skill - Install, check, and update bundled agent skills

VERSION

version 0.600

SYNOPSIS

karr skill install
karr skill install --agent codex,cursor
karr skill check --global
karr skill update --force
karr skill show

DESCRIPTION

Installs and maintains the bundled karr skill file for supported agent clients. The command can target project-local directories or global skill locations in the current user's home directory, which makes it useful both for direct Perl installs and Docker-wrapped vendor usage.

Writes go into the target file in place, keeping its inode, so a SKILL.md that is one link of a hardlink chain shared across projects stays part of that chain instead of being silently broken out of it.

--global selects the home-directory location instead of the project-local one; the two coincide for claude-code and cursor but differ for codex (see "SUPPORTED AGENTS").

TARGET DIRECTORY

The project-local target is the current working directory: the skill file is written straight underneath it, at .claude/skills/kanban-issues-karr-cli/SKILL.md for claude-code and at the equivalent path for the other agents. Nothing is discovered on the way there and no repository is involved -- this command has no board, and installing into a directory that is not a Git repository at all is a supported use. --global is the same idea one level up: the target is the current user's home directory instead. When --agent is omitted, even the auto-detection reads the current directory, so both which agents are touched and where their files land follow from where the command was run.

The root option --dir is therefore refused, in both placements, and both exit 2: karr skill install --dir PATH is an unknown option (this command declares none), and karr --dir PATH skill install is a usage error that names the current directory as the target. --dir is the starting point of a search upward for one repository's root -- which is why it may name any directory inside that repository -- and that is not what this command's target is; handed the same path, the two would answer about different directories. To install into another tree, cd there. Before ticket #226 the root placement was accepted and then discarded without a word, so the file was written into the tree the caller happened to be standing in while the message read as if the named one had been used.

karr init --claude-skill writes the very same SKILL.md and does honour --dir: it installs into the root of the repository it is initializing, and it needs a repository in the first place.

SUPPORTED AGENTS

The built-in agent targets are claude-code, codex, and cursor. When --agent is omitted, the command auto-detects available client directories and falls back to all known agents if nothing is detected.

ACTIONS

  • install

    Writes the current bundled skill file to the selected target locations. A target that already has a SKILL.md is left alone and reported exists unless --force is given, which overwrites it unconditionally. Every target is reported with its absolute path, in the plain output as well as under the path key of --json, so the message says which tree the file went into.

  • check

    Compares installed skill files with the bundled version and exits non-zero when one or more targets are outdated.

  • update

    Refreshes existing installed copies in place.

  • show

    Prints the bundled skill content to standard output. With --json the same content is emitted as a JSON object under the content key instead of raw Markdown.

SEE ALSO

karr, App::karr, App::karr::Cmd::Init, App::karr::Cmd::Context, App::karr::Cmd::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, licensed under:

The Artistic License 2.0 (GPL Compatible)