agents that run themselves
waratah is a portable agent definition, built to any provider. Define identity, instructions, connectors, and schedules once — deploy the same agent to Claude and beyond.
agent/
- instructions.md
- connectors/
- schedules/
- skills/
- subagents/
claude
agent.json, skills, one deploy per schedule
cursor
agent.json rendered — deploy waits
Directory is source of truth · artifacts are diffs
- agent/
- instructions.md
- connectors/
- schedules/
- skills/
- escalate.md
- subagents/
- systems-analyst/
The model
an agent is a directory
The agent directory is authoritative. Conventional subdirectories — connectors/, schedules/, skills/, subagents/ — are discovered automatically. Render it into provider-specific artifacts you can review before they ship.
Coordinator
daily-changes
v1.4.0
subagents/
Matchedsystems-analyst
v1.4.0
Declared on the roster and present on disk. An orphan or an undeclared directory fails the build.
designed for coordinated agents
A coordinator names a version-pinned roster; every entry needs a matching directory under subagents/ — checked in both directions.
Version-pinned rosters — a coordinator declares exactly which subagents, at which version, ship with it.
Checked both directions — an undeclared subagent and an orphaned directory both fail the build.
One level of delegation — a subagent has no clock of its own and declares no subagents of its own.
provider neutral, fully configurable
model is a tier, not a vendor id. Each provider resolves it and records what shipped — a provider that can’t support what an agent needs fails the build loudly, never with a silent, degraded artifact.
claude
Deploy targetEmits agent.json plus skills and multiagent where declared, and one deployment per schedule.
cursor
RenderedEmits agent.json. No publisher yet — deploy refuses it rather than shipping partial support.
Authoring
configure with markdown
Identity and behaviour are plain markdown, not a DSL. A skills/ file is a playbook the agent reads when it’s relevant. Everything else is typed YAML.
instructions.md
# Identity
You are the file-aging watcher.
Flag files past the review threshold
and draft a reminder — never send it.
skills/escalate.md
---
description: When a file is overdue
---
Draft the reminder, tag the reviewer,
and stop. Do not send without a human.
deploy your first agent today
Clone the repo, define your agent, and dry-run the deploy — no credentials required to see what would happen.