Claude Code Agent Fleets that run on schedules and join your chat
Source: Dev.to
Introduction
I love Claude Code, but there are three things I really wish it could do:
- Invoke itself – on a schedule or in response to events.
- Talk to it – over Discord or Slack.
- Coordinate dozens of Claude Code agents together.
That’s what herdctl aims to do.
herdctl is an MIT‑licensed orchestration layer for Claude Code (more precisely, for the Claude Agents SDK, on which herdctl is built). It was cobbled together in about a week using a combination of Claude Code, ralph wiggum, and GSD. It is not production‑ready.
Demo
You can join the Discord server to chat with those Star Trek agents. They’re running in a container on an old machine in my homelab, so while there isn’t much to gain from trying to make them do bad things, I expect some folks will try. Either I’ll have a Lieutenant Worf on guard, or I’ll just kill the agents – YMMV.
Installation
npm install -g herdctl
Or check out the GitHub repo and docs site for more details.
Configuration
Agent definition (price-checker.yaml)
name: price-checker
max_turns: 15
description: Monitors office chair prices across retailers
default_prompt: "Check current prices and update context."
system_prompt: |
You are a price monitoring agent tracking office chair prices across multiple retailers.
Check the price of Product X at... [TRUNCATED FOR BREVITY]
permissions:
allowed_tools:
- WebSearch
- WebFetch
- Read
- Write
- Edit
denied_tools:
- Bash
- TodoWrite
- Task
- Glob
- Grep
schedules:
check:
type: interval
interval: 4h
hooks:
after_run:
- type: discord
bot_token_env: DISCORD_BOT_TOKEN
channel_id: "${DISCORD_CHANNEL_ID}"
when: "metadata.shouldNotify"
Fleet definition (fleet.yaml)
version: 1
fleet:
name: price-checker-example
description: Find deals and arbitrage opportunities, exploit for MAXIMUM PROFIT
agents:
- path: agents/price-checker.yaml
- path: agents/stock-checker.yaml
- path: agents/arbitrage-exploiter.yml
Running a fleet
herdctl start
You can run as many fleets as you like.
Value Proposition
herdctl delivers two kinds of value:
| Type | What you get |
|---|---|
| Immediate | Chat with your agents from anywhere in the world and have them collaborate in real time. |
| Long‑term | Processes run consistently over time, automatically improving themselves as they go. |
Example Use‑Cases
Engineering‑focused agents
- Onboarding Quality Agent – Runs the entire product onboarding flow daily and alerts you if anything breaks.
- Engineering Manager Agent – Receives reports from the QA agent, decides how much autonomy to grant, and escalates only when needed.
- Local Engineer Agent – Like the BragDoc Engineer Agent in the video: a “build‑your‑own Devin” that can run locally, react to ticket status changes, or any other trigger.
General‑purpose agents
- Competitor Analysis Agent – Checks competitor sites daily, builds knowledge, and emails a weekly report.
- SEO Agent – Posts links, tracks analytics, and auto‑optimizes content throughout the day.
- End‑of‑the‑World Agent – Monitors news feeds for catastrophic events and alerts you to batten down the hatches.
Risks & Safety
- Never expose a Claude Code agent on your personal laptop to a public Discord channel.
- Allowing AI agents into company chat (Discord/Slack) is powerful but introduces new attack vectors: data exfiltration, system compromise, or even unwanted media uploads.
- Companies must tightly control who can access these agents and what they’re permitted to do.
Closing Thoughts
Ultimately, it’s Claude Code that gets instantiated – you can make it do virtually anything. A huge proportion of today’s digital work could be automated this way, raising societal and economic concerns.
On the other hand, I built the first version of herdctl in about a week after months of thinking about it, so this technology is coming whether we like it or not. It’s too easy to build, so we’ll likely see it everywhere soon. The only option is to embrace and adapt.
Happy hacking!
Performance Over Time
I’ve started having two clones of each project I work on now:
- Primary clone – the one Claude and I collaborate on in the normal way.
- Secondary clone – set aside for the
herdctlengineer agent.
This separation prevents us from stepping on each other’s toes.
Scaling Engineer Agents
- There’s no reason you couldn’t spawn 5, 50, or even more engineer agents, each with its own clone of the codebase to work on.
herdctlprovides orchestration but does not provide self‑organization.- If you do want many engineer agents, consider adding Engineering Manager agents to coordinate them.
Self‑Improving Agents
Agents that improve themselves over time are the thing I’m most excited about right now (what could possibly go wrong?).
There are many possible patterns for evolving an agent’s:
- System prompt
- Memories
- Custom tools
- Claude Code skills
Typical patterns include:
- After‑action reports
- Plan‑vs‑execution analysis
- Prompt and context engineering
In principle, it should soon be commonplace to have agents that automatically get smarter over time.
Current Limitations & Future Work
- Bugs, documentation inaccuracies, and assorted problems are expected in this initial incarnation of
herdctl. - A short period of consolidation and cleanup is likely before moving forward.
If demand grows, I’d expect to:
- Build out the Slack integration.
- Develop either:
- A small web app to visualize the state of the fleet, or
- Re‑visit the communication paths between agents and the fleet.
Open Problem: Agent Coordination Topology
In the meantime, it would be valuable to have a technology that allows a fleet of 50 agents to communicate optimally, with a defined topology governing who can talk to whom.
herdctldoes not attempt to solve this coordination problem—it should be a separate part of the agentic stack.- I’d love for someone to build this coordination layer.
