branch_health
Quick health check -- test counts and file stats for AIPass branches
Check system health -- disk usage, memory, running processes, uptime, battery
$ npx -y skills add AIOSAI/AIPass --skill system_status --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/system_statusContext preview
The summary Claude sees to decide when to auto-load this skill.
Check system health -- disk usage, memory, running processes, uptime, battery
name: system_status description: Check system health -- disk usage, memory, running processes, uptime, battery version: 2.3.0 tags: [system, monitoring, health] requires: pip: [psutil] bins: [] config: [] has_handler: true
Check system health metrics without leaving your workflow. Returns structured data about disk usage, memory, running processes, and system uptime.
| Action | Description | |-------------|------------------------------------------------| | `disk` | Disk usage for the root filesystem | | `memory` | Memory and swap usage (psutil, portable) | | `uptime` | System uptime from psutil's boot time | | `processes` | Count of processes (every pid the host lists) | | `battery` | Charge, mains, state, time left (none is an answer) | | `summary` | All of the above combined into one report |
An in-process read for callers that want data, not text - the host API's `/v1/machine` route proxies it verbatim and BAUD's phone draws it (FPLAN-0561).
from aipass.skills.lib.system_status import handler vitals = handler.machine_vitals()
`load`, `memory`, `swap`, `temp`, `fan`, `network`, `processes`, `battery` (schema 1 had the first eight). Each carries `available`, `reason`, `sentence`, `detail` beside its values. Never raises for a reading; a value the host cannot give is `None`, never a zero.
`psutil_missing` or `switched_off` (the off-switch is consulted, and an unreadable switch state fails closed).
`no_sensor`, `no_allowlisted_sensor`, `read_failed`, `warming`, `no_range`, `switched_off`, `psutil_missing`.
logical CPU, in index order), `logical` and `physical` (the counts) and `mhz` / `mhz_max` (frequency now and its ceiling). One `cpu_times(percpu=True)` sample per read: the headline is summed from the same per-CPU deltas as the cores, so the two agree. `percent` and `cores` are `None` while warming (and when the CPU count changed between samples); the counts and frequency are instant readings and are published even then. No frequency on a host is `None`, never `0`.
(`coretemp` / `Package id 0`; `applesmc` fans). The fan range is a read-only Linux sysfs read of `fanN_min` / `fanN_max`.
`full` or `unknown`), `seconds_left`, `low` and `critical`. A host whose `psutil.sensors_battery()` answers `None` is `no_sensor`; a psutil without the function is `platform`. `seconds_left` is `None` on psutil's `POWER_TIME_UNLIMITED` / `POWER_TIME_UNKNOWN`, and `detail` names which. `state` is the kernel's `/sys/class/power_supply/BAT*/status` word on Linux when it is one of the three (any other word is `unknown`), else derived from `plugged` and `percent`. `low` / `critical` are UPower's `PercentageLow` / `PercentageCritical` from `/etc/UPower/UPower.conf` on Linux (UPower's 20 / 5 when the file leaves a key out); no file, or a time-based policy, is `None` - a face tones only against a line the host published.
The contract in full is in the branch README; it is pinned by `tests/test_machine_vitals.py`.
The busiest processes on the host, for "the fan is loud and no agent is running - what is?" (contract C-B, DPLAN-0414 theme 3).
from aipass.skills.lib.system_status import handler top = handler.machine_processes(20)
each row is `pid`, `name`, `cpu_pct`, `mem_pct`, `mem_mb`, `user`, `state`.
`cpu_pct` is a real ~0.5 s sample, normalised to the whole machine (a 4-core box at full tilt sums to ~100, not ~400). `total` counts every pid.
working directory. A process that vanishes or is denied mid-sample is left out; an unreadable owner is `user: None`.
answers.
drone @skills run system_status disk drone @skills run system_status memory drone @skills run system_status uptime drone @skills run system_status processes drone @skills run system_status battery drone @skills run system_status summary
All actions return structured dicts:
{"success": True, "output": "...", "error": None}dependency of this project), which answers them on Linux, macOS and Windows
returned `success: False` on macOS and `summary` reported `success: True` over a disk line and an Errors trailer (FPLAN-0554)
the sections that are missing; the sections that did answer are still in `output`
recipe -- they never answer a partial
Persistent Agent Workspace — AI agents that remember, collaborate, and never start from zero.
Quick health check -- test counts and file stats for AIPass branches
Execute drone commands -- the AIPass CLI interface for all module operations
GitHub operations via gh CLI: issues, PRs, CI runs, code review, API queries.
Password-lock the machine's screen while every process keeps running, and read whether it is locked