This repo contains example daemon files for common daemon patterns.
These examples are reference patterns for Charlie daemons. They are not the normative source of truth for the daemon format or for authoring rules.
Start here
Start with the docs:
For this repo's examples package, CLI, and catalog contract, use:
Read Daemons first if you are new to the concept.
Use DAEMON.md reference for the exact authored contract and Testing and iterating on daemons for testing and rollout guidance.
Example index
Generated examples catalog
The root examples.json file is generated from each daemons/<id>/example.yml, DAEMON.md, and supported files under scripts/** and references/**.
Daemon catalog CLI
This package is npm-ready as @charlie-labs/daemons and exposes the daemon binary.
Use it to browse the public examples catalog, safely scaffold catalog examples into .agents/daemons/<id>/, and validate runtime daemon files:
daemon list
daemon show js-ts-dependency-upgrades --json
daemon add js-ts-dependency-upgrades --dry-run
daemon validate .agents/daemons/js-ts-dependency-upgrades/DAEMON.md
daemon validate --all --json
Key safety defaults:
- catalog reads default to
master and support --ref <sha|branch|tag>;
- install copies only catalog-listed
DAEMON.md, scripts[], and references[] files from the same ref;
- install never copies
example.yml or crawls upstream directories;
- existing destination directories/files require
--force;
- deprecated examples require
--allow-deprecated;
- add/install/show always surface
adaptationsRequired[] in JSON;
- scaffolding does not activate a daemon until the change is merged and ingested by Charlie.
See Daemon catalog CLI for command details, JSON envelope, validation semantics, and exit codes.
For release instructions, see Releasing @charlie-labs/daemons.
Use Examples v2 package and catalog spec for the exact package, metadata, generation, validation, and public-safety contract. Use Examples authoring guide for author/reviewer guidance. Use Examples catalog consumer guide for website, dashboard, and install consumer guidance.
Use the repo-owned checks before changing examples:
bun install
bun run generate:examples
bun run validate:examples
bun run test
examples.json is deterministic and should be committed whenever example packages change.
How to use this repo
Use this repo to:
- find the nearest example pattern
- calibrate scope and level of specificity
- compare watch-driven, schedule-driven, and hybrid shapes
- adapt a proven structure to your repo’s real maintenance role
Do not assume an example can be copied directly into your repo without changes.
The docs are the source of truth for:
Use the docs for concept, contract, and authoring guidance. Use this repo for concrete patterns.
How Charlie should use these examples
When choosing daemons:
When creating or editing daemon files: