Coli is a pi-coding-agent extension for deferred execution + multi-round supervision:
- The working agent does the task with full tools/context.
- A different supervisor model evaluates each round (
done/continue/fail). - Supervision is bounded by
maxRounds(default:5, range:1-20).
pi install git:github.com/cocolinfff/coliThen run /reload (or restart pi).
/coli setup model
This auto-discovers available models and prefers any model whose display name contains [coli].
You can also set one explicitly:
/coli setup model anthropic/claude-haiku-4-5
/coli schedule in 2 minutes Check and fix TypeScript errors under src/
Example output:
✓ Coli task scheduled [a1b2c3d4]
Trigger: 14:32:00 (1m 58s)
Task: Check and fix TypeScript errors under src/
Supervisor: anthropic/claude-haiku-4-5
Max rounds: 5
After the trigger time, Coli injects the task into the current session as a follow-up message and starts supervision on each agent_end event.
| Command | Description |
|---|---|
/coli help |
Show help |
/coli setup |
Show current config |
/coli setup model |
Auto-discover supervisor model (prefers [coli]) |
/coli setup model <provider>/<modelId> |
Set supervisor model explicitly |
/coli setup rounds <n> |
Set default max rounds (1-20) |
/coli setup reset |
Reset config |
/coli schedule <when> <task> |
Schedule a supervised task |
/coli list |
List all tasks |
/coli cancel <id> |
Cancel one task |
| Format | Example |
|---|---|
in X minutes |
in 10 minutes |
in X hours |
in 2 hours |
in X seconds |
in 30 seconds |
at HH:MM |
at 15:30 |
| Milliseconds delay | 300000 |
User / LLM -> schedule task (delay + supervisor) -> timer fires
|
v
Working agent executes task
|
agent_end
|
v
Supervisor evaluates this round
-> done | continue | fail decision
- Explicit config from
/coli setup model <provider>/<id> - First available model whose name includes
[coli] - First available model
- Current session model (last fallback)
- Supervisor is evaluation-only (no file I/O, no command execution).
- Hard round cap (
maxRounds) prevents infinite loops. - Task timers are session-bound and in-memory.
- On
session_shutdown, active timers are cleaned up.
/coli schedule in 5 minutes Review all changes under src/auth/, find security/logic issues, and fix them
/coli schedule at 02:00 Run npm test, analyze failures, fix code, rerun until all tests pass
After refactoring, run /coli schedule yourself for post-check validation.
- Timer precision is second-level, not exact millisecond real-time.
- If pi stops, in-memory timers are lost.
- Supervision uses one-shot model calls and depends on provider/API availability.
MIT