app-deployer
Deploy and manage user applications as managed systemd services
Deploy and manage AI agent workloads with GPU checks, API key management, and health monitoring
$ npx -y skills add bolivian-peru/os-moda --skill deploy-ai-agent --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/deploy-ai-agentContext preview
The summary Claude sees to decide when to auto-load this skill.
Deploy and manage AI agent workloads with GPU checks, API key management, and health monitoring
name: deploy-ai-agent description: Deploy and manage AI agent workloads with GPU checks, API key management, and health monitoring activation: auto tools: - app_deploy - app_list - app_logs - app_stop - app_restart - app_remove - system_discover - system_health - system_query - shell_exec - file_write - file_read - memory_store - journal_logs - watcher_add
Deploy AI agent workloads (LangChain, CrewAI, AutoGen, custom frameworks) as managed systemd services with resource monitoring, API key management, and health checks.
1. **Understand** — Ask what agent framework they're using and what it needs (model provider, API keys, GPU, dependencies) 2. **Check resources** — Use `system_health` to verify RAM, disk, and CPU are sufficient. Check for GPU with `shell_exec` running `nvidia-smi` or `ls /dev/dri` 3. **Set up environment** — Create a Python venv, install Node.js deps, or verify Go binary. Write API keys to the secrets directory. 4. **Deploy** — Use `app_deploy` with appropriate resource limits, environment variables pointing to secrets, and a health-check-friendly port 5. **Verify** — Check `app_logs` for successful startup. Use `system_discover` to confirm the agent's port is listening. 6. **Monitor** — Set up a watcher via `watcher_add` to auto-restart on failure 7. **Remember** — Use `memory_store` to save deployment details for future reference
app_deploy({
name: "my-agent",
command: "/var/lib/osmoda/apps/my-agent/venv/bin/uvicorn",
args: ["app:app", "--host", "0.0.0.0", "--port", "8000"],
working_dir: "/var/lib/osmoda/apps/my-agent",
env: {
ANTHROPIC_API_KEY_FILE: "/var/lib/osmoda/secrets/anthropic-key",
OPENAI_API_KEY_FILE: "/var/lib/osmoda/secrets/openai-key"
},
port: 8000,
memory_max: "1G",
cpu_quota: "200%"
})app_deploy({
name: "crew-agent",
command: "/var/lib/osmoda/apps/crew-agent/venv/bin/python",
args: ["-m", "crew_agent.main"],
working_dir: "/var/lib/osmoda/apps/crew-agent",
env: {
ANTHROPIC_API_KEY_FILE: "/var/lib/osmoda/secrets/anthropic-key"
},
port: 8001,
memory_max: "2G"
})app_deploy({
name: "node-agent",
command: "/usr/bin/node",
args: ["index.js"],
working_dir: "/home/user/agent",
env: {
NODE_ENV: "production",
PORT: "3000",
API_KEY_FILE: "/var/lib/osmoda/secrets/agent-api-key"
},
port: 3000,
memory_max: "512M"
})Never put API keys in environment variables directly. Write them to the secrets directory:
1. Ask the user for their API key 2. `file_write` to `/var/lib/osmoda/secrets/<key-name>` (0600 permissions) 3. Pass the file path as an env var (`*_FILE` convention) or read it in the app's entrypoint 4. The app reads the key from disk at startup
Before deploying, verify:
| Resource | Check | Minimum | |----------|-------|---------| | RAM | `system_health` → memory_available | 1 GB free for small agents, 4 GB+ for GPU workloads | | Disk | `system_health` → disks[0].available | 2 GB for deps + model cache | | CPU | `system_health` → cpu_usage | 2+ cores recommended | | GPU | `shell_exec`: `nvidia-smi` or `ls /dev/dri` | Optional — needed for local model inference | | Python | `shell_exec`: `python3 --version` | 3.10+ for most frameworks | | Node.js | `shell_exec`: `node --version` | 18+ for modern agent frameworks |
After deployment, set up a watcher:
watcher_add({
name: "my-agent-health",
check: {
type: "http_get",
url: "http://127.0.0.1:8000/health",
expected_status: 200
},
interval_secs: 30,
actions: ["restart", "notify"]
})For agents without HTTP endpoints, use a process check:
watcher_add({
name: "my-agent-alive",
check: {
type: "systemd_unit",
unit: "osmoda-app-my-agent.service"
},
interval_secs: 60,
actions: ["restart", "notify"]
})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
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…
Generate a concise daily infrastructure briefing. Covers: service health, resource usage, security events, overnight incidents,…