| name | onboard |
| description | First-run setup for linux-system-optimisation. Detects the machine's hardware (CPU, GPU, RAM, storage type, kernel, distro, DE, display server), asks the user where to store benchmark results (default ~/linux-system-optimisation/benchmarks/), installs missing benchmark tools, then runs the first tailored benchmark via the `benchmark` skill. Triggers on "set up linux-system-optimisation", "first run", or any optimise/benchmark request when no config exists. |
Onboard
One-time setup. Establishes a benchmark-results store the user owns, profiles the hardware, and runs the first benchmark so subsequent optimise runs have something to read.
Config + storage
Plugin config (small pointers only) lives at:
${CLAUDE_USER_DATA:-${XDG_DATA_HOME:-$HOME/.local/share}/claude-plugins}/linux-system-optimisation/config.json
Benchmark results (user-owned data — they may want to inspect, version, share) live at a user-chosen path. Default suggestion: ~/linux-system-optimisation/benchmarks/. Store only the pointer in config.json:
{
"benchmarks_dir": "/home/<user>/linux-system-optimisation/benchmarks",
"system_profile": { "...": "see below" },
"first_run_at": "<ISO-8601>"
}
If config.json already exists, this skill is a no-op — surface that and suggest benchmark instead.
Steps
- Pick the benchmark folder. Confirm or override the default. Create it.
- Profile the hardware. Capture into
system_profile:
- CPU:
lscpu -J → model, vendor, cores/threads, base/max MHz, flags.
- GPU:
lspci -nn | grep -iE 'vga|3d|display'; for NVIDIA also nvidia-smi -q | head -40; for AMD also glxinfo | grep -i 'opengl renderer'.
- RAM:
free -h + dmidecode -t memory (sudo) for module-level info if available.
- Storage:
lsblk -d -o NAME,ROTA,TRAN,MODEL,SIZE — distinguish NVMe / SATA-SSD / HDD.
- Kernel + distro:
uname -r, lsb_release -ds or cat /etc/os-release.
- DE + display server:
$XDG_CURRENT_DESKTOP, $XDG_SESSION_TYPE.
- Install missing tools. Check each of
sysbench stress-ng fio glmark2 vkmark mbw cpupower lm-sensors. Install missing ones via sudo apt install -y <pkg>. power-profiles-daemon is usually preinstalled on Ubuntu — check with systemctl status power-profiles-daemon.
- Write
config.json with the profile and pointer.
- Hand off to
benchmark to run the first measurement. Don't re-prompt — the user just confirmed they want to set up.
Notes
- Don't write to
~/.claude/.
- Don't put benchmark results under
$CLAUDE_USER_DATA — those are user-owned.
- Only ask one question (the folder path); everything else is detected.