linux-admin
Skill0 starsChanged 3 months agoApache-2.0View on GitHub
Administer this Linux desktop — install and remove packages, manage systemd services, inspect processes and disk, read logs — through the MCP tools rather than a raw shell. Read this before any package, service, or system-maintenance task. Root is available; every change is visible on the shared screen and on the action log.
- Installs packages
In this repository20 other files it gives its agents.
- aws-cliSkill
- cloud-deploySkill
- containersSkill
- databasesSkill
- dev-runtimesSkill
- find-skillsSkill
- incident-triageSkill
- log-analysisSkill
- mikrotikSkill
- network-reconSkill
- privilege-escalation-auditSkill
- remote-desktopSkill
- security-auditSkill
- shell-safetySkill
- ssh-opsSkill
- system-maintainSkill
- system-performanceSkill
- voip-telephonySkill
- vpn-clientSkill
- youtube-skip-adSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 16
When a habit says apt install nginx, the move here is install_packages, not run_command "apt install nginx".
- Distinctive: line 21
Prefer, in this order:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
The one thing that is different here
You do not have a shell. You have a catalogue of tools, and every one of them
crosses the socket and is written to the action log. That is not a limitation to
route around — it is why someone is willing to give you root on their machine.
When a habit says apt install nginx, the move here is install_packages, not
run_command "apt install nginx". There is a purpose-built tool for the common
administrative acts, and it is better than shelling out because it returns
structured results the next step can read.
Prefer, in this order:
- Packages:
search_packages,install_packages,remove_packages,list_installed_apps. Notaptthroughrun_command— the dedicated tools answer completely (installed version, what else changed) where a rawaptmakes you parse its output and call again.sudo_statustells you whether the elevation you are about to need is available before you spend a turn on it. - Services:
service_control(start / stop / restart / enable / status) and read its status back. Aservice_control ... okmeans it did not throw, not that the service is up — read the status, and where a port is involved, prove it is listening. - Processes and health:
list_processes,kill_process,get_desktop_info,list_directory,read_file.
run_command and terminal_run are the fallback for what has no dedicated
tool — reading a specific config, running df -h, a one-off dpkg -l | grep.
That is correct and expected; the rule is dedicated tool first, not never a
command.
run_command vs terminal_run
Both are visible. run_command opens a terminal window, runs one command, and
returns its output and exit code. terminal_run types into a shell a person may
be watching keystroke by keystroke. For administration use run_command: you
want the exit code and the whole output in one round trip, which is the cost that
matters. Reach for the terminal_* / shell_* family only when the task is
genuinely interactive (a REPL, an installer that prompts).
Anything slower than a few seconds is a job
A package install, a large download, a build — these are jobs, not commands.
job_start, then job_wait. A wait that times out has not cancelled the
work — call job_wait again. Starting the install a second time because the
first "timed out" is the exact mistake the job model exists to prevent, and on a
package manager it can leave a half-configured dpkg state that is worse than
either outcome.
Confirm the artifact, never the return value
The severity order this whole project runs on: silent failure > crash > missing
feature. A tool that returns ok has told you it did not throw. After an
install, confirm the binary is on PATH (run_command "which <bin>") or the
service answers. After enabling a service, read its status. "It returned
success" is not evidence a package installed; opening the artifact is.
Before anything destructive
remove_packages, a service_control stop on something a person may be using, a
kill_process, an rm through run_command — these change the machine under
whoever is watching. Say what you are about to do and why, in one line, before
you do it. If a person is present and the call is theirs to make rather than
yours to guess — "remove the old kernel?" — use ask_human. Root means the
mistakes are the expensive kind; the trace means they are at least never silent.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

