About herobrine
herobrine is a skill for scheduling autonomous Claude Code runs on macOS. It creates launchd jobs from a prompt and schedule, then saves logs and can deliver results through Beeper and macOS notifications.
Key features
- 01Create, list, remove, or run agents now
- 02Schedule runs with launchd
- 03Choose a prompt, model, and turn limit
- 04Save timestamped execution logs
- 05Deliver results through Beeper and notifications
Use cases
- 01Receive scheduled market or research summaries
- 02Review open pull requests on a schedule
- 03Run overnight project tasks
- 04Schedule repository security scans
MCP support
The skill says the spawned Claude instance delivers results through Beeper via MCP. It does not describe MCP server management.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ aaarnv/ claude-skills --skill herobrineAfter installing, type/herobrinein Claude Code to confirm it loaded.
Bundled filesscripts/manage-agent.shscripts/run-agent.sh
Details
From the project READMEScheduled Autonomous Agents
Run Claude Code on autopilot. Create agents that execute any prompt on a schedule — morning briefings, overnight builds, recurring research — delivered straight to your Beeper.
Claude Code isn't just interactive. It's a daemon.
HOW IT WORKS
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ /herobrine │────▶│ macOS │────▶│ claude -p │
│ create │ │ launchd │ │ (headless) │
└─────────────────┘ └──────────────┘ └────────┬────────┘
│
┌────────▼────────┐
│ Deliver via │
│ Beeper + notif │
└─────────────────┘
- You define an agent: a name, a prompt, and a schedule
- A macOS launchd plist is created to trigger it on time
- The runner executes
claude -pwith--dangerously-skip-permissions(fully autonomous) - Results are sent to your Beeper chat and saved to local logs
- macOS notification confirms completion
SETUP
1. Install the scripts
Copy the runner and manager scripts to ~/.claude/agents/:
mkdir -p ~/.claude/agents/schedules ~/.claude/agents/logs
cp scripts/run-agent.sh ~/.claude/agents/run-agent.sh
cp scripts/manage-agent.sh ~/.claude/agents/manage-agent.sh
chmod +x ~/.claude/agents/run-agent.sh ~/.claude/agents/manage-agent.sh
2. Configure Beeper delivery (optional)
Find your Beeper "Note to Self" chat ID and update the default DELIVERY_CHAT in manage-agent.sh. The agent will send full results as a formatted Beeper message after each run.
If you don't use Beeper, results are still saved to ~/.claude/agents/logs/ and delivered via macOS notification.
ACTIONS
Determine the action
If $ARGUMENTS contains an action keyword (create, list, remove, run-now, logs), use that. Otherwise, ask the user with AskUserQuestion:
- Create a new scheduled agent
- List all scheduled agents
- Remove a scheduled agent
- Run now — trigger an agent immediately
- View logs of past agent runs
Action: Create
Gather from the user (via AskUserQuestion or arguments):
- Agent name — short identifier, lowercase with hyphens (e.g.,
stock-news,nightly-review) - Prompt — the full prompt sent to Claude. Be detailed. Can include skill invocations like
/steveor/gsd:execute-plan - Schedule — friendly options:
- Every morning at 8am →
0 8 * * * - Every evening at 6pm →
0 18 * * * - Every hour →
every-1h - Every 30 minutes →
every-30m - Weekday mornings at 9am →
0 9 * * 1-5 - Custom cron or interval
- Every morning at 8am →
- Model —
opus,sonnet(default), orhaiku - Max turns — default:
50
Then run:
bash ~/.claude/agents/manage-agent.sh create "<name>" "<prompt>" "<schedule>" "$HOME" "<model>" <max_turns>
Action: List
bash ~/.claude/agents/manage-agent.sh list
Action: Remove
If no agent name given, list first, then ask which to remove.
bash ~/.claude/agents/manage-agent.sh remove "<name>"
Action: Run Now
bash ~/.claude/agents/manage-agent.sh run-now "<name>"
Action: Logs
bash ~/.claude/agents/manage-agent.sh logs [agent-name]
USE CASES
| Agent | Prompt | Schedule |
|---|---|---|
stock-news | Research today's top stock market movements and tech earnings. Summarize the 5 most important things. | 0 8 * * 1-5 |
pr-digest | Review all open PRs in my-org/my-repo. Summarize changes, flag concerns, note approvals needed. | 0 9 * * 1-5 |
overnight-build | Use /steve to implement the next phase in /path/to/project | 0 2 * * * |
security-scan | Audit /path/to/repo for OWASP top 10 vulnerabilities. Report findings with severity. | 0 6 * * 1 |
dep-updater | Check for outdated dependencies in /path/to/project. Create a PR with safe updates. | 0 3 * * 0 |
FILE STRUCTURE
~/.claude/agents/
├── run-agent.sh # Executes claude -p, delivers results
├── manage-agent.sh # Create/list/remove/run-now/logs
├── schedules/ # Agent configs (JSON)
│ └── stock-news.json
└── logs/ # Execution logs
├── stock-news_20260211_080000.log
└── stock-news_launchd.log
~/Library/LaunchAgents/
└── com.claude.agent.stock-news.plist # macOS scheduler
KEY DETAILS
- Agents run with
--dangerously-skip-permissions— fully autonomous, no prompts - Each agent gets its own launchd plist for reliable scheduling
- The Beeper delivery instruction is injected into the prompt, so the spawned Claude instance handles delivery itself via MCP
- Logs capture full output for every run with timestamps
- Agents can invoke other skills (
/steve,/rnv,/gsd:execute-plan) — it's a full Claude Code instance