Operate Kubernetes clusters with 55 audited tools — list resources, diagnose pod health, scale workloads, and manage rollouts safely.
Memory
truenas-aiops
Try itOperate and diagnose TrueNAS SCALE storage — pools, datasets, snapshots, disk health, and alerts via CLI or MCP.
What it does
A 25-tool skill for TrueNAS SCALE storage operations. Covers health overviews, ZFS pool and dataset inspection, snapshot management, S.M.A.R.T. disk health, and system alerts. Write operations include starting scrubs, creating datasets, and managing snapshots. All tools run through a governance harness that encrypts your API key, logs every operation locally, and records undo descriptors for reversible changes. Works in both CLI and MCP mode.
When to use it
- Diagnose a degraded or full ZFS pool
- Create a snapshot before a risky configuration change
- Check S.M.A.R.T. results and disk health status
- Inspect and restart TrueNAS services
The skill document
TrueNAS AIops
Disclaimer: This is a community-maintained open-source project and is not affiliated with, endorsed by, or sponsored by iXsystems or the TrueNAS project. "TrueNAS" is a trademark of its owner. Source code is publicly auditable at github.com/AIops-tools/TrueNAS-AIops under the MIT license.
Governed TrueNAS SCALE storage operations — 25 MCP tools, every one wrapped with the bundled @governed_tool harness: a local unified audit log under ~/.truenas-aiops/, policy engine, token/runaway budget guard, undo-token recording, and descriptive risk tiers. The TrueNAS API key is stored encrypted (~/.truenas-aiops/secrets.enc, Fernet + scrypt) — never plaintext on disk.
Standalone: the governance harness is bundled in the package (
truenas_aiops.governance) — truenas-aiops has no external skill-family dependency. Verification: coverage focuses on common TrueNAS operations and is not exhaustive, but it is no longer mock-only — reads, governed writes with audit + undo, the WebSocket transport, degraded-pool RCA, replication and cloud-sync have all been exercised against live TrueNAS SCALE 25.04 and 26 appliances.docs/VERIFICATION.mdrecords exactly what was checked and what is still open.
What This Skill Does
| Category | Tools | Count | Read or Write |
|---|---|---|---|
| Overview / System | health overview, system info | 2 | 2 read |
| Diagnostics / RCA | pool health RCA, alert & capacity RCA | 2 | 2 read |
| Pools | list, get, status, scrub status, capacity | 5 | 5 read |
| scrub start | 1 | 1 write (medium) | |
| Datasets | list, get | 2 | 2 read |
| create | 1 | 1 write (medium) | |
| Snapshots | list | 1 | 1 read |
| create (medium), delete (high) | 2 | 2 write | |
| Disks | list, S.M.A.R.T. results | 2 | 2 read |
| Alerts | list | 1 | 1 read |
| Services | list | 1 | 1 read |
| restart | 1 | 1 write (medium) | |
| Replication | replication tasks, cloud-sync tasks | 2 | 2 read |
Quick Install
uv tool install truenas-aiops
truenas-aiops init # interactive wizard: connection + encrypted API key
truenas-aiops doctor
When to Use This Skill
- Triage a TrueNAS appliance (
overview): pool capacity/health, alerts, running services - Root-cause a degraded/full pool (
diagnose pool-health) or a wall of alerts (diagnose alerts) — worst-first findings that cite the measured number - List/inspect ZFS pools, datasets, and snapshots
- Create a snapshot before a risky change; start a pool scrub
- Check disk health and S.M.A.R.T. self-test results
- List and restart system services (smb/nfs/ssh)
- Inspect replication and cloud-sync tasks
Do NOT use when the target is not a TrueNAS SCALE appliance — other NAS/storage or backup products, hypervisor VM lifecycle, Kubernetes/containers, and network devices are out of scope for this skill.
Related Skills — Skill Routing
| If the user wants… | Use |
|---|---|
| TrueNAS pools / datasets / snapshots / ZFS health | truenas-aiops (this skill) |
| Backup software job/restore operations | a backup-software ops skill |
| Hypervisor VM lifecycle (power, snapshot, migrate) | a hypervisor ops skill |
| Container/cluster lifecycle | a cluster ops skill |
Common Workflows
Root-cause a degraded or full pool (start here)
truenas-aiops diagnose pool-health→ worst-first findings: bad ZFS state (DEGRADED/FAULTED/OFFLINE), non-zero read/write/checksum/scan error counters, and pools over 80%/90% capacity — each citing the measured numbertruenas-aiops pool status→ inspect the topology / scan detail the finding citedtruenas-aiops pool scrub-start→ kick an integrity scrub (governed, medium risk); poll withpool scrub-statustruenas-aiops diagnose alerts→ cross-check active alerts by level and any datasets nearing their quota/available ceiling
Snapshot a dataset before a change, then roll back if needed
truenas-aiops dataset list→ confirm the dataset id (e.g.tank/data)truenas-aiops snapshot create tank/data pre-change→ records an inversesnapshot_deleteundo descriptor- Make your change; if it went wrong, the snapshot is your recovery point
truenas-aiops snapshot delete tank/data@pre-change --dry-run→ preview; then without--dry-run(double confirm) — IRREVERSIBLE, captures BEFORE state, no undo
Scrub a pool and follow it
truenas-aiops pool list→ find the pool name and healthtruenas-aiops pool scrub-start tank→ starts the integrity scrubtruenas-aiops pool scrub-status→ checkstate/percentage; do not re-issue (the runaway budget guard backs a tight poll loop)
Usage Mode
| Scenario | Recommended | Why |
|---|---|---|
| Local/small models | CLI | fewer tokens than MCP |
| Cloud models (Claude, GPT) | Either | MCP gives structured JSON I/O |
| Automated pipelines | MCP | type-safe parameters, audited |
MCP Tools (25 — 19 read, 6 write)
| Category | Tools | R/W |
|---|---|---|
| Overview / System | overview, system_info | Read |
| Diagnostics / RCA | pool_health_rca, alert_and_capacity_rca | Read |
| Pools | pool_list, pool_get, pool_status, scrub_status, pool_capacity | Read |
pool_scrub_start | Write | |
| Datasets | dataset_list, dataset_get | Read |
dataset_create | Write | |
| Snapshots | snapshot_list | Read |
snapshot_create, snapshot_delete | Write | |
| Disks | disk_list, smart_test_results | Read |
| Alerts | alert_list | Read |
| Services | service_list | Read |
service_restart | Write | |
| Replication | replication_list, cloudsync_list | Read |
| Undo (governance) | undo_list | Read |
undo_apply | Write |
Harness features that light up: snapshot_create passes an undo= lambda so the harness records an inverse snapshot_delete descriptor (with _undo_id) to the undo store. snapshot_delete is tagged risk_level=high, captures the snapshot's BEFORE state, and declares no undo (it is irreversible). pool_scrub_start, dataset_create, and service_restart are medium risk and capture prior state where relevant. All 25 tools are audit-logged under ~/.truenas-aiops/ and pass through the budget/runaway guard, with a descriptive risk-tier label on each audit row. Start any triage with overview.
CLI Quick Reference
truenas-aiops init # onboarding wizard (encrypted API key)
truenas-aiops overview [--target ] # health summary
truenas-aiops system [--target ] # version / hostname / memory / uptime
truenas-aiops diagnose pool-health # RCA: pool state / error counters / capacity (worst first)
truenas-aiops diagnose alerts # RCA: active alerts by level + datasets near full
truenas-aiops pool list
truenas-aiops pool get
truenas-aiops pool status
truenas-aiops pool scrub-status
truenas-aiops pool capacity # size / allocated / free / used%
truenas-aiops pool scrub-start
truenas-aiops dataset list
truenas-aiops dataset get # e.g. tank/data
truenas-aiops dataset create [--dry-run]
truenas-aiops snapshot list [--dataset tank/data] [--limit 200]
truenas-aiops snapshot create
truenas-aiops snapshot delete [--dry-run] # double confirm, IRREVERSIBLE
truenas-aiops disk list
truenas-aiops disk smart # S.M.A.R.T. self-test results
truenas-aiops alert list
truenas-aiops service list
truenas-aiops service restart [--dry-run] # double confirm (smb/nfs/ssh)
truenas-aiops replication list
truenas-aiops replication cloudsync
truenas-aiops secret set # store API key encrypted
truenas-aiops secret list # names only
truenas-aiops secret migrate # import legacy plaintext .env
truenas-aiops secret rotate-password
truenas-aiops doctor
truenas-aiops mcp # start MCP server (stdio)
See references/cli-reference.md for the full command list, and
references/agent-guardrails.md when driving these tools with a smaller /
local model (enforced guardrails, ready-to-paste system prompt).
Troubleshooting
"Config file not found"
Run truenas-aiops init to set up your first target (writes ~/.truenas-aiops/config.yaml and stores the API key encrypted).
"No API key for target ''"
Add it to the encrypted store: truenas-aiops secret set (prompts hidden), or run truenas-aiops init. Create the key in the TrueNAS UI under Credentials → API Keys. For non-interactive use (MCP/CI), also export TRUENAS_AIOPS_MASTER_PASSWORD so the store can be unlocked without a prompt.
"Master password not set" / "Wrong master password"
The encrypted store ~/.truenas-aiops/secrets.enc is unlocked by TRUENAS_AIOPS_MASTER_PASSWORD (or an interactive prompt). If you forgot it, delete secrets.enc and re-run truenas-aiops init. Rotate it with truenas-aiops secret rotate-password.
"Authentication/authorization failed (401/403)"
The API key is wrong or revoked, or the account lacks permission. Regenerate the key in the TrueNAS UI (Credentials → API Keys) and update it: truenas-aiops secret set .
"Could not reach TrueNAS … check the host/port"
Confirm the TrueNAS web/REST endpoint is reachable on the configured port (default 443) and api_path is /api/v2.0. For self-signed certificates set verify_ssl: false on the target (lab only).
"Resource not found (404)"
The pool/dataset/snapshot id is stale. List the parent collection first (pool list, dataset list, snapshot list) to get a current id.
Audit & Safety
The skill delivers reads and writes and records them; it does not decide whether a write is permitted. That is your agent's judgement, or the permission of the account you connect it with (scope the TrueNAS API key to a limited-privilege account and writes then fail at the appliance). There is no read-only switch, policy file, or approval gate.
- API key stored encrypted in
~/.truenas-aiops/secrets.enc(Fernet/AES-128 + scrypt key derivation; chmod 600) — never plaintext on disk; the master password is never stored, only a per-store salt + ciphertext. - Audit is the guarantee, and it is not bypassable. Every operation — MCP and CLI alike — is logged to
~/.truenas-aiops/audit.db(relocatable viaTRUENAS_AIOPS_HOME): params (secrets redacted), result, status, duration, and the risk tier. The CLI writes the same row the MCP path does. TRUENAS_AUDIT_APPROVED_BY/TRUENAS_AUDIT_RATIONALEare optional annotations recorded on the audit row (who/why); they are never required and never block.- Runaway guard — a safety backstop, not authorization: cumulative tool calls and wall-time are capped, and a tight scrub/poll loop trips a circuit breaker.
- Writes support
--dry-run/dry_run=Trueand double confirmation at the CLI; CLI writes execute through the same governed tools, so they are audited + undo-recorded. - Reversible writes capture the real fetched before-state and record an inverse descriptor (e.g.
snapshot_create→snapshot_delete) that replays against the tool's own signature.
The harness is bundled in the package — no external dependency, no manual setup. See references/setup-guide.md for security details.
Contributing & feature requests
Coverage is intentionally focused, and what has actually been verified against live appliances is recorded in docs/VERIFICATION.md. Missing a capability you need, or hit an endpoint that needs fixing for your TrueNAS version? Open an issue or pull request at github.com/AIops-tools/TrueNAS-AIops — feature requests, contributions, and comments are all welcome.
License
Questions people ask
- How are TrueNAS API credentials secured?
- API keys are encrypted with Fernet/AES-128 plus scrypt key derivation and stored in ~/.truenas-aiops/secrets.enc with chmod 600 permissions. The master password is never persisted — only a per-store salt and ciphertext.
- What governance features does this skill provide?
- Every MCP and CLI operation is audit-logged to ~/.truenas-aiops/audit.db with params (secrets redacted), result, status, duration, and a risk tier label. Reversible writes capture the before-state and record an inverse undo descriptor. A runaway guard caps cumulative calls and wall-time as a safety backstop.
- Which TrueNAS versions are verified?
- Reads, governed writes with audit and undo, WebSocket transport, degraded-pool RCA, replication and cloud-sync have been exercised against live TrueNAS SCALE 25.04 and 26 appliances. What was checked and what remains open is documented in the project's docs/VERIFICATION.md.
Related skills
Join video meetings as a voice bot, visual avatar, or avatar with live screen sharing.
Escape the scarcity trap — diagnose bandwidth consumption and design protected slack to restore strategic capacity.
Turn China 3C launch inputs into executable routes, messaging, channel actions, risk checks, and review decisions.
Operate TaskTime Pro through MCP: manage tasks, track time, handle expenses, and prepare invoices from a paired browser session.
Diagnose which mental domain is holding you back before choosing a cognitive intervention.
More from zw008
Browse all skillsOperate VMware VMs, deployments, clusters, guest tasks, and alarms with plan and rollback support.
Inspect VMware health, inventory, alarms, events, and performance without changing infrastructure.
Query Aria Operations metrics, alerts, capacity forecasts, anomalies, and reports from CLI or MCP.
Manage AVI services and pools, and diagnose AKO ingress, sync, certificates, analytics, and health.
Manage Supervisor Namespaces and TKC cluster lifecycles in vSphere Kubernetes Service.
Manage NSX segments, gateways, routing, IP pools, health checks, and connectivity diagnostics.