Human language docs for the exe.dev agent orchestration system
Autonomous shelley sessions that run until complete or hitting context limits. The worker script spawns sessions, enforces limits, and manages state.
worker start <name> --task "description of work" --dir /path/to/project [--max 10]
worker list
Shows all workers with status, session count, and working directory.
worker stop <name> # graceful stop
worker stop-all # stop everything
worker log <name> # show recent output
tail -f ~/.workers/<name>.log # live tail
| Feature | Behavior |
|---|---|
| Context limit | Stops at 75% context, hands off to next session |
| Directory lock | Only one worker per directory (prevents conflicts) |
| State file | ~/.workers/<name>.json |
| Session prompt | Prefixed with WORKER MODE: + task |
Persistent memory that survives across sessions. Agents query deja at session start to get relevant context.
curl -s -X POST https://deja.coey.dev/inject \
-H "Content-Type: application/json" \
-d '{"context": "describe your task", "format": "prompt", "limit": 5}'
Returns learnings relevant to the context. One call per session is enough.
curl -s -X POST https://deja.coey.dev/learn \
-H "Authorization: Bearer $(cat ~/.deja-api-key)" \
-H "Content-Type: application/json" \
-d '{
"trigger": "when this is relevant",
"learning": "what to remember",
"confidence": 0.9
}'
| Type | Use for |
|---|---|
| Project state | Current status, blockers, next steps |
| Learnings | "When X happens, do Y" patterns |
| Failures | Things that didn't work (prevent repeats) |
52+ past shelley sessions = 157MB of searchable memory. Find what you tried before.
~/bin/shelley-search "pattern" [limit]
Finds conversations mentioning the pattern, shows context snippets.
~/bin/shelley-recall "error message" [limit]
Returns HANDOFF notes and relevant snippets, formatted for prompt injection.
gates/health.sh finds errors, it auto-searches past sessions and includes relevant context.
Selective editing of the context window. Delete tool outputs you don't need anymore.
ctx size <conversation_id>
ctx search <conversation_id> "search term"
Returns message IDs matching the term.
ctx forget <msg_id> [msg_id...]
ctx list <conversation_id> [limit]
ctx search <conv> "websocket" — find message IDsctx forget id1 id2 id3 — delete themctx size <conv> — verify tokens freedWorker loops auto-run gates/health.sh before each session. Output is injected into the prompt.
#!/bin/bash
# gates/health.sh - exit 0 = healthy, exit 1 = blockers
# Type check
ERRORS=$(npx tsc --noEmit 2>&1 | grep "error TS" | head -10)
if [ -n "$ERRORS" ]; then
echo "❌ Type errors - FIX FIRST:"
echo "$ERRORS"
# Auto-recall past attempts at this error
FIRST_ERROR=$(echo "$ERRORS" | head -1)
~/bin/shelley-recall "$FIRST_ERROR" 1 2>/dev/null
exit 1
fi
echo "✅ Build passes"
exit 0
| Check | Blocking? | Why |
|---|---|---|
| Type errors | Yes | Don't add features on broken builds |
| Uncommitted changes | Yes | Commit before doing more work |
Explicit any | Yes | Use specific types |
| TODO markers | No | Awareness, not blocking |
| console.log | No | Clean up eventually |
Optional sanity check before taking action. Catches red flags before they become problems.
node /home/exedev/check.mjs "what you're about to do"
| Pattern | Severity | Why |
|---|---|---|
| Creating new repo/service | HIGH | Can existing be extended? |
| "This should work" | MEDIUM | Untested confidence |
| "Clean up later" | MEDIUM | Do it now |
| Code before tests | HIGH | Write tests first |
| Skipping tests | HIGH | Why? |
Returns PROCEED (exit 0) or STOP (exit 1).
Meta-loop that watches a worker. Rescues orphaned work, monitors errors, updates deja.
# Run alongside worker (in separate terminal)
~/bin/steerer
/home/exedev/myfilepath-new by default. Edit the script to change the project directory.
# Start a worker loop
worker start myproject --task "implement feature X" --dir /path/to/project
# Monitor it
worker list
worker log myproject
# Steer by updating memory
curl -X POST https://deja.coey.dev/learn ...
# What did we try before?
~/bin/shelley-search "websocket"
~/bin/shelley-recall "error TS2345"
# Find and delete old messages
ctx search CONV_ID "big tool output"
ctx forget MSG_ID1 MSG_ID2
ctx size CONV_ID