macctl
SKILL.md
macctl — macOS Environment Controller
Show power and environment status:
!macctl power status 2>&1 || echo "macctl not installed — brew install lu-zhengda/tap/macctl"
Analyze the output above. Report battery level, charging state, and health. Offer to check thermals with macctl power thermal, adjust display with macctl display, or apply a preset with macctl preset.
Commands — Power
| Command | Purpose | Example |
|---|---|---|
macctl power status |
Battery %, health, cycles, charging, time remaining | macctl power status |
macctl power health |
Design vs max capacity, condition, age | macctl power health |
macctl power thermal |
CPU/GPU temp, thermal pressure, fans | macctl power thermal |
macctl power assertions |
What is preventing sleep | macctl power assertions |
macctl power hogs |
Top energy consumers | macctl power hogs |
macctl power history |
Battery/thermal trends from persistent store | macctl power history --last 7d |
macctl power record |
Capture power snapshot (for lanchr agent periodic recording) | macctl power record |
Commands — Disk
| Command | Purpose | Example |
|---|---|---|
macctl disk status |
SSD health: model, wear level, SMART status | macctl disk status |
macctl disk io |
Current read/write MB/s and IOPS | macctl disk io |
macctl disk history |
SSD wear trends over time | macctl disk history --last 30d |
macctl disk record |
Capture disk health snapshot (for lanchr agent) | macctl disk record |
Commands — Events
| Command | Purpose | Example |
|---|---|---|
macctl events |
Power-related events: wake, sleep, lid, thermal, power source | macctl events |
macctl events --last <duration> |
Filter events by time window | macctl events --last 1h |
macctl events --type <type> |
Filter by event type | macctl events --type wake |
macctl events --json |
JSON output for scripting | macctl events --json |
Event types: wake, sleep, lid, thermal, power_source
Events are automatically deduplicated — consecutive same-type events within 30s are collapsed with a count.
Commands — Display
| Command | Purpose | Example |
|---|---|---|
macctl display list |
Connected displays with resolution, refresh, profile | macctl display list |
macctl display resolution |
Get current resolution | macctl display resolution |
macctl display resolution <WxH> |
Set resolution | macctl display resolution 1920x1080 |
macctl display brightness |
Get current brightness | macctl display brightness |
macctl display brightness <0-100> |
Set brightness | macctl display brightness 70 |
macctl display nightshift [on|off] |
Toggle Night Shift | macctl display nightshift on |
macctl display truetone [on|off] |
Toggle True Tone | macctl display truetone on |
Commands — Audio
| Command | Purpose | Example |
|---|---|---|
macctl audio list |
List input and output devices | macctl audio list |
macctl audio output |
Get current output device | macctl audio output |
macctl audio output <device> |
Switch audio output | macctl audio output "AirPods Pro" |
macctl audio input |
Get current input device | macctl audio input |
macctl audio input <device> |
Switch audio input | macctl audio input "MacBook Pro Microphone" |
macctl audio volume |
Get current volume | macctl audio volume |
macctl audio volume <0-100> |
Set volume | macctl audio volume 50 |
macctl audio mute [on|off|toggle] |
Control mute | macctl audio mute toggle |
macctl audio test |
Play test tone and mic check | macctl audio test |
Commands — Focus
| Command | Purpose | Example |
|---|---|---|
macctl focus status |
Current focus mode and DnD state | macctl focus status |
macctl focus on [mode] |
Enable a focus mode | macctl focus on "Do Not Disturb" |
macctl focus off |
Disable current focus mode | macctl focus off |
macctl focus list |
List configured focus modes | macctl focus list |
Commands — Presets
| Command | Purpose | Example |
|---|---|---|
macctl preset <name> |
Apply a compound preset | macctl preset deep-work |
Compound Presets
Presets span all four domains in a single command:
| Preset | Display | Audio | Focus | Notes |
|---|---|---|---|---|
deep-work |
Dim to 50% | Mute | DnD on | Minimize distractions |
meeting |
No change | AirPods + unmute | DnD on (allow calls) | Ready for calls |
present |
Mirror 1080p, 100% brightness | Speakers | DnD on | Presentation mode |
chill |
Dim to 40%, Night Shift on | Volume 30% | DnD off | Relaxed evening |
battery-saver |
Dim to 30% | Mute | No change | Extend battery life |
Example workflow:
# Start a focused coding session
macctl preset deep-work
# Switch to a meeting
macctl preset meeting
# Done for the day
macctl preset chill
JSON Output
Add --json to any read command for machine-readable output:
macctl power status --json
macctl power thermal --json
macctl power history --json
macctl disk status --json
macctl disk io --json
macctl disk history --json
macctl events --json
macctl display list --json
macctl audio list --json
macctl focus status --json
macctl focus list --json
Safety Guidelines
- Presets are reversible: Apply another preset or manually adjust individual settings
- Brightness changes are immediate: Display brightness adjusts instantly
- Audio routing affects all apps: Switching output device redirects all audio
- Focus mode respects system config: Focus presets use modes configured in System Settings
- Resolution changes may flash: Screen may briefly flash when changing resolution
TUI Mode
Launch macctl without arguments for an interactive environment dashboard.
Weekly Installs
1
Repository
lu-zhengda/macos-toolkitFirst Seen
13 days ago
Security Audits
Installed on
mcpjam1
claude-code1
junie1
windsurf1
zencoder1
crush1