A cron channel provider turns an agent into a scheduled worker. It fires on the schedule, runs to completion, posts the result via pieces, exits. No always-on process, no separate scheduler. The schedule lives next to the agent that uses it.
1runtime:2 mode: background3 entry_agent: reporter45tools:6 capabilities:7 default_policy: auto8 grant: [{ module: pieces, tools: ["*"] }]9 modules:10 web: {}11 pieces: { constraints: { allowed_pieces: [slack] } }12 channels:13 config:14 providers:15 monday:16 adapter: cron17 config: { schedule: "0 9 * * 1" }18 activation: { agent: reporter, message: "Generate the Monday digest." }1920agents:21 - id: reporter22 modules: [{web: [search, fetch]}]23 brain: { provider: anthropic, model: claude-haiku-4-5, credential: { ref: anthropic_main, scope: per_user, provider: anthropic } }24 system_prompt: "Summarise the last 7 days. Post via the pieces Slack action. Be terse."# 1. install runtime
curl -sSL https://digitorn.ai/install | sh
# 2. save the YAML above to ~/.digitorn/apps/my-cron-reporter/app.yaml
mkdir -p ~/.digitorn/apps/my-cron-reporter
# paste the YAML into app.yaml
# 3. deploy
digitorn deploy my-cron-reporterEngineering notes from the Digitorn team. No marketing, no launch announcements, no "10 prompts that will change your life". Just the things we write that we'd want to read.