app-deployer
Deploy and manage user applications as managed systemd services
Continuous security posture assessment. Scores the system, auto-fixes safe issues, proposes fixes for risky ones. Every change audited.
$ npx -y skills add bolivian-peru/os-moda --skill security-hardening --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/security-hardeningContext preview
The summary Claude sees to decide when to auto-load this skill.
Continuous security posture assessment. Scores the system, auto-fixes safe issues, proposes fixes for risky ones. Every change audited.
name: security-hardening description: > Continuous security posture assessment. Scores the system, auto-fixes safe issues, proposes fixes for risky ones. Every change audited. tools: - shell_exec - system_health - journal_logs - service_status - network_info - file_read - file_write - memory_store - memory_recall - event_log activation: auto
Continuous security scoring and automated hardening.
Run these checks and score each one:
shell_exec({ command: "ss -tlnp" })shell_exec({ command: "sshd -T 2>/dev/null | grep -E 'passwordauth|permitroot|x11forwarding|maxauthtries'" })journal_logs({ unit: "sshd", since: "7 days ago", priority: "warning" })
shell_exec({ command: "journalctl -u sshd --since '7 days ago' | grep -c 'Failed password'" })Calculate: `(earned_points / 100) * 100`
Present as:
Security Score: 78/100 Auto-fixed (safe, no approval needed): ✅ Enabled fail2ban (NixOS config added) ✅ Set MaxAuthTries to 3 ✅ Blocked 5 IPs with repeated failed logins Needs your approval: ⚠️ Port 5432 exposed publicly — close it? (saves 10 pts) ⚠️ Enable automatic nixpkgs security channel Won't touch without discussion: 🔴 Root SSH enabled (you may need this for deploys)
services.fail2ban = {
enable = true;
maxretry = 3;
bantime = "1h";
};shell_exec({ command: "journalctl -u sshd --since '24h ago' | grep 'Failed' | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head -10" })For IPs with > 10 attempts:
networking.firewall.extraCommands = '' iptables -A INPUT -s <IP> -j DROP '';
networking.firewall.allowedTCPPorts = [ 22 80 443 ]; # Remove any port that doesn't have a matching service
Present a clear diff and explain the security impact:
Generate a trending security report:
Security Report — Week of Feb 17 Score: 78/100 (↑ from 65 last week) This week: - Blocked 142 brute-force SSH attempts from 23 IPs - Applied 2 NixOS security patches (OpenSSH, curl) - Closed port 3306 (MySQL was accidentally exposed) - 0 incidents, 0 unauthorized changes Trend: Improving. Main gap: root SSH still enabled.
Store the report in memory for historical tracking.
An operating system built for AI agents — talk to your NixOS server instead of SSH-ing in. Typed, audited tool access with atomic rollback on every change. Research-grade; run it on a disposable box, not production.
Deploy and manage user applications as managed systemd services
Deploy and manage AI agent workloads with GPU checks, API key management, and health monitoring
Detect configuration drift — manual changes that exist outside NixOS management. Offer to bring imperative changes into…
Manage files and directories. List, find, search contents, read, write, move, copy, delete, permissions. Present directory…
Black box flight recorder for the server. Capture system state snapshots for forensic analysis after incidents. Continuous…
NixOS generation-aware debugging and time-travel. Correlate system state changes with application failures. Query "what changed…