OS Skills
An OS Skill is a machine-readable manual that tells an agent the correct, boring way to do one kind of task on this system. Skills exist so agents reach for wpctl instead of clicking through a settings panel, and so that every such action has a known approval tier and a known undo.
Format (v0, subject to an RFC)
A skill is a directory:
skills/base/<name>/
SKILL.md # what, when, preferred path, fallbacks, verify, undo — written for the agent
manifest.toml # name, description, tiers, required tools, what it applies to — read by slated
Installing them for the agent
slate skills install links every skill under skills/base (or a directory you pass) into ~/.claude/skills/slate-<name>, where Claude Code picks them up as user skills. Skills whose requires tools are missing, or whose applies_to.distro does not match /etc/os-release (ID or ID_LIKE; SlateOS reports slateos and nixos), are skipped and listed. Links that point to a skill the installed version no longer ships are removed. On SlateOS the slate-skills user service runs the command at every login and after each upgrade, so the agent always reads the skills of the version that is installed. Codex reads instructions from AGENTS.md; a generated section for it is planned.
The base set
| Skill | What it teaches |
|---|---|
audio-volume | wpctl for volume and mute |
display-brightness | brightnessctl, and when the display has no backlight |
display-settings | Query, one change at a time, verify by screenshot, roll back; persist only to ~/.config/slate/sway.d/ |
desktop-windows | Arrange, focus, move and close windows through the desktop tools |
network-wifi | nmcli for Wi-Fi and connections |
systemd-services | systemctl for user and system units |
slateos-system | Install packages and change settings by editing the NixOS configuration; rebuild and roll back |
undo | When and how to offer /undo |
office-libreoffice | Headless conversions and in-window editing with LibreOffice |
mail-thunderbird | Compose with prefilled fields, read and search, calendar and contacts; sending is Confirm |
pdf-zathura | Text extraction first; zathura keys for showing a PDF |
media-mpv | Playback and control over mpv's IPC socket |
text-mousepad | Opening and editing text files in a window |
appearance | Dark / light theme and the desktop background (slate-theme) |
bluetooth | bluetoothctl for paired devices; pairing goes through Settings, with the person |
printing | lp, lpstat and cancel; driverless network printers need no setup |
power-battery | upower, powerprofilesctl, the screen lock and its timeouts |
apps-flatpak | Desktop apps from Flathub for the person; AppImages and downloaded programs |
Conventions
- Prefer CLI, D-Bus and config files. Say explicitly when a GUI is unavoidable.
- State the approval tier of each step. Unknown defaults to Confirm.
- Always include how to verify success and how to undo.
- One skill per task family, not per command.
- Never include credentials or guess them; say when the user has to supply something.