// Generated from the registry
Capabilities
A capability is something this machine can actually do, and most of them are answered by a probe: Halbert asks whether the thing is really there — a microphone, a reachable Home Assistant, a local model endpoint — and enables the features that depend on it. Where there is no probe, the answer is a decision rather than a measurement, and the install preset makes it.
Each capability resolves the same way every time: an explicit entry under capabilities: in
being.yml wins; otherwise a probe answers it, where one exists; otherwise the variant preset’s
default stands.
One capability departs from this. On a home-variant node sourceprep stays off even when the
probe would find a daemon, so an inherited environment variable cannot quietly switch it on; an
explicit capabilities: {sourceprep: true} in being.yml still opts that node in.
has_capability() is the only feature gate in the product. A feature that checks anything else is
a bug.
| Capability | Probed by | What it means |
|---|---|---|
applescript |
no probe — preset decision | The osascript tool surface may register on macOS. A configuration decision, not runtime detection — and the per-call switch still gates every execution, so this alone grants nothing. |
audio |
_probe_audio |
The voice pipeline may run here (audio enabled and its engine present). |
config_watcher |
_probe_config_watcher |
A config registry exists here, so the watcher has something to watch. |
discovery |
no probe — preset decision | System discovery scanners may run and record what this machine has. |
ha_connection |
_probe_ha_connection |
Home Assistant is configured (URL and token in being.yml). |
ingestion |
no probe — preset decision | The journald and hwmon ingestion services may run on this machine. |
local_llm |
_probe_local_llm |
A loopback model endpoint — this machine’s own model — is configured. |
mcp_client |
no probe — preset decision | Tools from external MCP servers may join the agent’s tool set. A configuration decision; none are configured by default, so it is inert until a server is added. |
scheduler |
no probe — preset decision | Scheduled jobs may run on their own, without someone asking first. |
secure_model |
_probe_secure_model |
A secure, local-only model endpoint is configured right now. |
secure_model_allowed |
no probe — preset decision | This machine may host a secure, local-only model at all. A fresh install has none configured yet, so provisioning gates on this rather than on secure_model, which would never fire. |
sourceprep |
_probe_sourceprep |
A SourcePrep daemon is configured for this machine to query. |
terminal |
no probe — preset decision | Shell sessions may be opened on this machine (PTY access). |
web |
_probe_web |
Web search may send query text off this machine. Off unless the operator switches it on; no preset turns it on. |