WATCHD v0.1
AGENTS THAT COMPOUND
FIG. 01 / THE PREMISE

watchd

Your AI agents run while you sleep. They watch, learn, and act. Every cycle sharpens them.

agents/market_watch.py5 LINES
INFRANONE
STATEPERSISTENT
COST$0/MO
DEPLOY1 COMMAND
FIG. 02 / WHAT OTHERS REQUIRE20 ITEMS
Docker Compose
Kubernetes
Redis
Celery
Temporal
AWS Lambda
CloudWatch
Datadog
PagerDuty
$200/month
YAML files
Infrastructure team
DevOps engineer
vendor lock-in
helm charts
service mesh
.env.prod.backup
Terraform state
Docker registry
3-week sprint
One Python file.One SQLite DB.

Your agent keeps its memory in SQLite. State persists across runs. Every cycle builds on the last. No cloud, no containers, no prayers. Just a function that gets smarter over time.

FIG. 03 / HOW IT WORKS
01WATCH

Teach it what to see.

Write a Python function. Give it a schedule. It wakes up, observes, and remembers. ctx.state persists across every run.

@agent(schedule=every.hours(1))
def intel_scan(ctx):
    signals = scan_sources()
    ctx.state["baseline"] = signals
    return compare(signals, ctx.state)
02LEARN

It builds memory.

Each run reads previous state, compares against history, and writes what it learned back. The gap between you and everyone else widens daily.

$ watchd up

[watchd] intel_scan scheduled (every 1h)
[watchd] intel_scan [3 new signals] 430ms
[watchd] intel_scan [baseline updated]
03SHIP

Deploy and forget.

One command. Any VPS. Atomic deploys with rollback. It runs while you sleep, compounds while you think.

$ watchd deploy

Syncing to production... done
Installing deps... done

Your agents are live.
FIG. 04 / ARCHITECTURE9 MODULES

Nine modules. Zero dependencies.

scheduler
Cron + interval triggers
runner
Execute with retries and capture
state
Persistent memory across runs
logger
Structured, queryable logs
retry
Automatic backoff on failure
history
Every run tracked and searchable
deployer
Atomic deploys, any VPS
watcher
Hot-reload in development
cli
init, up, deploy, logs, state
cli -> schedulercli -> deployercli -> watcherscheduler -> runnerrunner -> staterunner -> loggerrunner -> retryrunner -> historystate -> history
FIG. 05 / COMPARISON
1STEPS AND COUNTING
vs
5STEPS TOTAL
THE PLATFORM WAY
01Sign up for cloud account
THE WATCHD WAY
$ uv add watchd
$ watchd init
$ vim agents/market_watch.py
$ watchd up
$ watchd deploy # live in 2 min
FIG. 06 / START THE LOOP
THE GAP COMPOUNDS DAILY. / © LEVEL09