versa/skills/debug-tools-layer/SKILL.md
Debug toolkit for inspecting deployed services from inside the container — network probes (ip/ss/lsof/ping/dig/nc/socat/tcpdump/traceroute/mtr/wget), process inspection (ps/top/htop/pgrep/free/vmstat/strace/ltrace), file inspection (file/tree/xxd/vim/nano), system stats (iotop/iftop/sysstat), session helpers (tmux/rsync/yq). Distro-agnostic. Use when working with the debug-tools layer, the per-distro package-name divergence (nmap-ncat vs ncat vs gnu-netcat), or the 16 build-scope eval probes that lock in headline binary presence.
npx skillsauth add overthinkos/overthink-plugins debug-tools-layerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Single-purpose layer that installs ~50 standard debugging utilities
across 5 categories: network, process, file, system stats, session
helpers. Composed by /charly-versa:versa so operators can debug
the deployed services (marimo, airflow, martin, maputnik, etc.) from
INSIDE the running container.
Without this layer, charly cmd versa "ps" returns
"command not found" — minimal Fedora images don't ship procps-ng,
iproute, bind-utils, etc. by default.
| Property | Value | |----------|-------| | Dependencies | none | | Distros | fedora, arch, debian, ubuntu (per-distro package lists) | | Ports | none | | Services | none | | Volumes | none | | Eval probes | 16 build-scope (one per headline binary) |
ip, ss, netstat, lsof, ping, dig, nslookup, nc,
socat, tcpdump, traceroute, mtr, wget
Cover the full DNS / TCP / packet-capture / ICMP / port-relay surface.
curl already comes from elsewhere (jq layer dep), so wget
complements it.
ps, top, htop, pgrep, pkill, kill, killall, pidof,
free, vmstat, watch, slabtop, strace, ltrace, iotop,
iftop
Process inspection (procps-ng) + system tracing (strace/ltrace) + I/O & network tops (iotop/iftop).
file, tree, vim, nano, xxd
xxd ships with vim-common (auto-installed alongside vim-enhanced).
sysstat package provides iostat, mpstat, pidstat, sar,
sadf — historical metrics + per-task accounting.
tmux, rsync, yq
Multi-pane shell sessions, file sync, YAML manipulation.
Tool names aren't portable — each distro is enumerated separately to avoid silent "installed nothing" on the wrong distro:
| Tool | fedora | arch | debian | ubuntu |
|---|---|---|---|---|
| Process basics (ps, top, free, kill, pgrep, vmstat) | procps-ng | procps-ng | procps | procps |
| ip + ss + tc | iproute | iproute2 | iproute2 | iproute2 |
| netstat + ifconfig | net-tools | net-tools | net-tools | net-tools |
| dig + nslookup + host | bind-utils | bind-tools | dnsutils | dnsutils |
| ping | iputils | iputils | iputils-ping | iputils-ping |
| nc | nmap-ncat | gnu-netcat | ncat | ncat |
| traceroute | traceroute | traceroute | traceroute | traceroute |
| mtr | mtr | mtr | mtr-tiny | mtr-tiny |
| vim | vim-enhanced | vim | vim | vim |
| yq | yq (Fedora py) | go-yq (mikefarah Go) | (omitted — snap-only) | (omitted) |
Single common name (socat, tcpdump, lsof, file, tree,
nano, htop, strace, ltrace, iotop, iftop, sysstat,
tmux, rsync, wget) covers all four distros.
Spot-checks one binary per category. If a future package rename breaks one, the build fails loudly at image build time:
ps-binary, ss-binary, lsof-binary, ping-binary, dig-binary,
nc-binary, tcpdump-binary — network/process headlineshtop-binary, strace-binary — interactive/tracingvim-binary, nano-binary, tree-binary, file-binary — file/texttmux-binary, wget-binary, rsync-binary — session/transferping-binary and nc-binary are checked via command -v rather
than file path because the binary's location varies across distros
(Fedora: /usr/bin/ping; Debian: /usr/bin/ping but historically
/bin/ping).
| Scenario | Tools |
|---|---|
| "Is martin actually listening on 3000?" | ss -tlnp \| grep 3000, lsof -i :3000 |
| "What's the airflow scheduler doing?" | ps auxf \| grep airflow, htop, strace -p <pid> |
| "Is the marimo MCP responding?" | curl http://localhost:2718/mcp/server, nc -zv localhost 2718 |
| "Why is the GTFS download slow?" | iftop -i eth0, traceroute api.transitous.org |
| "Is the workspace volume filling up?" | du -sh /workspace/*, iotop |
| "What's eating CPU?" | htop, pidstat -u 1 |
/charly-versa:versa — image composing this layer/charly-versa:airflow-layer — services this toolkit debugs/charly-versa:osm-tools-layer — martin server this toolkit debugs/charly-versa:versa-layer — marimo runtime this toolkit debugs/charly-coder:dev-tools — overlapping but heavier (includes qemu, AWS CLI, etc.); not composed by versatools
OpenCharly CLI (charly) binary installed into container/VM images for in-container use. Use when working with charly binary deployment inside containers, native D-Bus support, or the full charly toolchain (charly binary + virtualization + gocryptfs + socat).
development
Operator CachyOS workstation profile — a kind:local template + target:local deploy that installs the full dev stack (30 candies) onto a CachyOS host via ShellExecutor. Lives in the overthinkos/cachyos submodule. MUST be invoked before editing or applying the charly-cachyos workstation profile.
tools
Fedora box with the full charly toolchain using shared candies. Rootless-first — runs as uid=1000 with passwordless sudo (no root, no cap_add: ALL). Same candy list as charly-arch. Includes NVIDIA GPU runtime. MUST be invoked before building, deploying, configuring, or troubleshooting the charly-fedora box.
tools
Arch Linux box with the full charly toolchain. Rootless-first — runs as uid=1000 with passwordless sudo (no root, no cap_add: ALL). Composes /charly-coder:charly-mcp so the box is reachable as an MCP gateway on port 18765. NVIDIA GPU runtime composed in. MUST be invoked before building, deploying, configuring, or troubleshooting the charly-arch box.