List Pipewire audio sinks and sources with their IDs, descriptions, default-status, and current state. Use when the user asks "what mics/speakers are connected", needs IDs to feed into other skills, or is debugging why an expected device is missing.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin claude-pipewire-skillsThis skill uses the workspace's default tool permissions.
Enumerate every Pipewire sink (output) and source (input) currently visible to Wireplumber, plus which one is the default.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Share bugs, ideas, or general feedback.
Enumerate every Pipewire sink (output) and source (input) currently visible to Wireplumber, plus which one is the default.
Prefer wpctl (Wireplumber CLI) — cleaner output and aligns with how preference rules are written.
wpctl status
For machine-parsable output:
wpctl status --json 2>/dev/null || pw-dump
For each sink/source:
wpctl uses)node.name (stable identifier — what rules match against)node.description (human-readable)* in wpctl status)node.name for rule writingWhen the user wants a rule based on a device, get the canonical node.name (this is what Wireplumber matches on, not the description):
wpctl inspect <id> | grep -E 'node\.(name|description)|device\.product\.name'
bluetoothctl devices Connected.node.name is stable enough for rules in most cases. For absolute stability, match on device.product.name or node.nick.