← back to Claude Code Supervisor

com.steve.claude-supervisor.plist

46 lines

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.steve.claude-supervisor</string>

  <!-- /bin/bash <supervisor.sh> [-- <claude args...>]
       Add your claude args after the `--` (e.g. a project dir command,
       --dangerously-skip-permissions, etc.). Leave as-is to supervise bare `claude`. -->
  <key>ProgramArguments</key>
  <array>
    <string>/bin/bash</string>
    <string>/Users/macstudio3/Projects/claude-code-supervisor/supervisor.sh</string>
  </array>

  <!-- launchd restarts the SUPERVISOR itself on crash or reboot;
       the supervisor restarts CLAUDE on rate-limits. Two independent layers. -->
  <key>KeepAlive</key>
  <true/>
  <key>RunAtLoad</key>
  <true/>

  <key>WorkingDirectory</key>
  <string>/Users/macstudio3</string>

  <key>EnvironmentVariables</key>
  <dict>
    <key>PATH</key>
    <string>/Users/macstudio3/bin:/Users/macstudio3/.npm-global/bin:/Users/macstudio3/.local/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
    <key>CLAUDE_SUP_WORKDIR</key>
    <string>/Users/macstudio3</string>
  </dict>

  <!-- Guard against a hot restart loop chewing CPU if something is badly wrong. -->
  <key>ThrottleInterval</key>
  <integer>10</integer>

  <key>StandardOutPath</key>
  <string>/Users/macstudio3/.claude/supervisor-logs/launchd.out.log</string>
  <key>StandardErrorPath</key>
  <string>/Users/macstudio3/.claude/supervisor-logs/launchd.err.log</string>
</dict>
</plist>