dev-tools
Recipe card from the charly-coder plugin (Images — the deployable catalog).
dev-tools – Developer CLI utilities
Section titled “dev-tools – Developer CLI utilities”Candy Properties
Section titled “Candy Properties”| Property | Value |
|---|---|
| Install files | charly.yml, plan: |
Packages
Section titled “Packages”RPM (with --setopt=tsflags=noscripts): android-tools, apptainer, apptainer-suid, arch-install-scripts, asciinema, bat, bcc, bpftop, bpftrace, bridge-utils, debootstrap, direnv, dislocker, ecryptfs-utils, fastfetch, fd-find, fdupes, fuse-devel, fuse-dislocker, fuse3-devel, html2text, htop, jdupes, mosh, neovim, podman-compose, podman-machine, podman-remote, podman-tui, qemu-kvm, qemu-user-binfmt, qemu-user-static, rclone, restic, ripgrep, ShellCheck, squashfuse, strace, sysstat, thefuck, yamllint, yq, zoxide
Cross-distro coverage
Section titled “Cross-distro coverage”rpm: (Fedora), pac: (Arch), deb: (Debian + generic Ubuntu), with a ubuntu:24.04: tag-section override. Not every package is available everywhere; per-distro drops are documented inline in charly.yml.
Packages dropped per distro (non-exhaustive):
- Arch:
apptainer-suid,dislocker,ecryptfs-utils,fuse-dislocker,podman-machine,podman-remote,podman-tui— not packaged. - Debian: same drops as Arch, plus
arch-install-scripts(obviously) andapptaineritself (only in bookworm-backports, skipped on trixie). - Ubuntu: additionally drops
fastfetch— package not in noble main. Because the distro-specificity cascade unions packages (it cannot subtract), fastfetch is simply omitted from every Ubuntu package level rather than removed by an override.
bat → batcat symlink (Debian/Ubuntu)
Section titled “bat → batcat symlink (Debian/Ubuntu)”Both Debian and Ubuntu rename bat → batcat in their archives to avoid a namespace collision with a legacy bacula utility. The bat package installs only /usr/bin/batcat; nothing lives at /usr/bin/bat. To keep downstream scripts, docs, and declarative tests portable, the candy ships a distro-tolerant symlink plan step:
# a plan step under the dev-tools candy's plan: listplan: - run: symlink batcat to bat on Debian/Ubuntu command: | if [ -f /usr/bin/batcat ] && [ ! -e /usr/bin/bat ]; then ln -sf /usr/bin/batcat /usr/bin/bat fi run_as: rootNo-op on Fedora/Arch (where /usr/bin/bat already exists from the distro package) — the guard short-circuits. Creates the symlink on Debian/Ubuntu. Idempotent across rebuilds.
fastfetch test — exclude_distro: [ubuntu]
Section titled “fastfetch test — exclude_distro: [ubuntu]”The fastfetch-binary test is declared with an exclude_distro: filter:
# a plan step in the dev-tools candy's plan: listplan: - check: the fastfetch binary is installed (skipped on Ubuntu) id: fastfetch-binary exclude_distro: - ubuntu file: file: /usr/bin/fastfetch exists: trueOn images whose ai.opencharly.platform.distro OCI label includes ubuntu, the test runner skips this check with a reason — see /charly-check:check “exclude_distro: field”. fastfetch is omitted from the Ubuntu package set, so the baked test probe would otherwise false-fail on Ubuntu.
Git tooling lives in /charly-coder:gh
Section titled “Git tooling lives in /charly-coder:gh”dev-tools does NOT install gh, git, or git-lfs — those belong
exclusively to /charly-coder:gh, the dedicated GitHub / git tooling candy.
That keeps ownership unambiguous (one candy installs and tests them). If
you want the git tooling, compose /charly-coder:gh alongside
/charly-coder:dev-tools.
# charly.yml — compose the candy as an inline list in the box bodymy-dev: candy: base: fedora candy: [dev-tools]Used In Boxes
Section titled “Used In Boxes”- (none currently enabled)
Related Candies
Section titled “Related Candies”/charly-coder:gh— Sibling GitHub CLI commonly paired with dev-tools/charly-coder:devops-tools— Sibling DevOps cloud CLI bundle in bootc images/charly-coder:build-toolchain— Sibling C/C++ toolchain in bootc image stacks
Related Boxes
Section titled “Related Boxes”/charly-coder:debian-coder,/charly-coder:ubuntu-coder— canonical consumers of the bat→batcat symlink/charly-coder:fedora-coder,/charly-coder:arch-coder— consumers where the symlink plan step is a harmless no-op
Related Commands
Section titled “Related Commands”/charly-build:build— Build boxes that ship the dev-tools package set/charly-core:shell— Interactive shell to use bat/ripgrep/neovim/etc./charly-check:check—exclude_distro:field reference for the fastfetch-binary test/charly-image:layer— authoring reference for distro-tolerantcommand:plan steps andexclude_distro:
When to Use This Skill
Section titled “When to Use This Skill”Use when the user asks about:
- Developer tools in containers
- CLI utilities (bat, ripgrep, fd-find, neovim, etc.)
- Podman tooling inside containers
- The
dev-toolscandy or its packages