Install
openclaw skills install autonomy-windowedTime-windowed autonomous task queue. Autonomy works only during specific time windows (e.g., 8 AM - 8 PM UTC), while cron jobs run overnight. Separates conce...
openclaw skills install autonomy-windowedTransform your agent from reactive to autonomous worker during specific time windows.
The agent works autonomously only during defined time windows. Outside windows, the agent only replies HEARTBEAT_OK. Cron jobs run overnight when autonomy is disabled.
🌙 Overnight (10 PM - 8 AM UTC): Autonomy OFF
☀️ Daytime (8 AM - 10 PM UTC): Autonomy ON
Clear separation: Day = work on queue, Night = cron maintenance
Define active windows in tasks/QUEUE.md:
## ⏰ Autonomy Windows
- 🌙 Overnight: 20:00 - 08:00 UTC → Autonomy OFF
- ☀️ Daytime: 08:00 - 20:00 UTC → Autonomy ON
During Active Window:
Heartbeat → Check urgent → No → Read QUEUE → Pick task → Work 15-30 min → Update QUEUE → Log
Outside Active Window:
Heartbeat → Check urgent → No → Reply "HEARTBEAT_OK" → Sleep
Urgent Override:
Heartbeat → Check urgent → YES → Work immediately (even outside window)
Window Opens (8:00 AM):
tasks/MODE_HISTORY.md: "Window opened"Window Closes (8:00 PM):
| Time | Activity | Mode |
|---|---|---|
| 00:00 | GitHub backup (cron) | Overnight (no autonomy) |
| 02:00 | Heartbeat check | Standby (HEARTBEAT_OK) |
| 03:00 | Temp cleanup (cron) | Overnight (no autonomy) |
| 08:00 | Window opens | ✅ Autonomy ON |
| 09:00 | Work on task | Autonomy |
| 12:00 | GitHub backup (cron) | Autonomy (pause for backup) |
| 14:00 | Work on task | Autonomy |
| 20:00 | Window closes | ❌ Autonomy OFF |
| 23:00 | Daily ops + memory (cron) | Overnights (no autonomy) |
# Task Queue
## ⏰ Autonomy Windows
- 🌙 Overnight: 20:00 - 08:00 UTC → Autonomy OFF
- ☀️ Daytime: 08:00 - 20:00 UTC → Autonomy ON
---
## 🔴 Ready (can be picked up during windows)
- [ ] @priority:high [Task description]
- [ ] @priority:medium [Task description]
## 🟡 In Progress
- [ ] @agent: @priority:high [Task description]
- Started: 2026-02-16 14:00 UTC
## 🔵 Blocked
- [ ] @priority:medium [Task] (needs: [what's blocking])
## ✅ Done Today
- [x] @agent: @priority:high [Task]
- Completed: 2026-02-16 14:25 UTC
## 💡 Ideas
- [Idea for future work]
Priority affects task selection order during windows:
| Priority | When to use | Selection |
|---|---|---|
@priority:urgent | Time-sensitive, deadline < 6h | Pick FIRST, even outside window |
@priority:high | Important, deadline 24h | Pick first in window |
@priority:medium | Normal importance | Pick second in window |
@priority:low | Nice to have | Pick last in window |
Active: 8 AM - 8 PM UTC (12 hours)
Use when:
Heartbeat frequency: Every 2 hours (6 sessions/day)
Active: 6 AM - 10 PM UTC (16 hours)
Use when:
Heartbeat frequency: Every 2 hours (8 sessions/day)
Active: 10 AM - 6 PM UTC (8 hours)
Use when:
Heartbeat frequency: Every 2-3 hours (3-4 sessions/day)
Recommended: 4-6 sessions/day, ~5-10K tokens each = 20-60K/day
Session strategy:
| Window Type | Sessions/day | Tokens | Schedule |
|---|---|---|---|
| Full Day (12h) | 6 | 30-60K | Every 2 hours |
| Extended (16h) | 8 | 40-80K | Every 2 hours |
| Limited (8h) | 4 | 20-40K | Every 2-3 hours |
When to stop:
Definition: Tasks that cannot wait for window to open
Add to queue with @priority:urgent:
## 🔴 Ready
- [ ] @priority:urgent Emergency: [task description]
Behavior:
If in middle of task when window closes:
Check task progress:
Save state:
## 🟡 In Progress
- [ ] @agent: @priority:high [Task description]
- Started: 2026-02-16 19:30 UTC
- Progress at window close: Completed X section, need to do Y
- Resume: 2026-02-17 08:00 UTC (next window)
tasks/MODE_HISTORY.md:## [2026-02-16 20:00 UTC] Window Closed
Status: Task in progress (60% complete)
Action: Saved state, will resume in next window
File: tasks/MODE_HISTORY.md
# Window Mode Transitions
## [2026-02-16 08:00 UTC] Window Opened
Mode: Daytime window
Queue state: 3 tasks ready
Expected sessions: 6
## [2026-02-16 20:00 UTC] Window Closed
Mode: Overnight (standby)
Sessions completed: 5
Tasks completed: 4
Tasks remaining: 1 (in progress, resume tomorrow)
## [2026-02-17 08:00 UTC] Window Opened
Mode: Daytime window
Resumed task in progress
Daytime (Autonomy ON):
Overnight (Autonomy OFF):
Cron schedule:
| Time | Cron Job | Autonomy Mode |
|---|---|---|
| Every 5 min | Ollama monitor | Any (low impact) |
| Every hour | Disk check | Any (low impact) |
| 00:00 | GitHub backup | OFF (overnight) |
| 03:00 | Temp cleanup | OFF (overnight) |
| 08:00 | Window opens | ON |
| 12:00 | GitHub backup | ON (pause during) |
| 14:00 | Daily ops + memory (Sun) | ON (pause during) |
| 20:00 | Window closes | OFF (overnight) |
| 23:00 | Daily ops + memory | OFF (overnight) |
Link queue tasks to RA's long-term goal: MONEY
Add goal references:
- [ ] @priority:high Competitor pricing analysis (GOAL: monetization strategy)
- [ ] @priority:medium Write sales email template (GOAL: improve conversion)
Work toward goals during windows:
After completing tasks, add findings to .learnings/:
## [LRN-20260216-001] task-completion
Task: [Task description]
Completed during: Daytime window (14:00-14:25 UTC)
Tokens used: 8K
Key findings: [summarize]
tasks/MODE_HISTORY.md## Task: [Title]
**Completed during:** [Window type] [Time range]
**Duration:** X minutes
**Tokens:** YK
### Work Done
[Describe what was accomplished]
### Output
[Attach output file or content]
### Next Steps
[What to do next - add to Ideas if task spawns follow-up]
The "slowly evolve" approach:
This mode allows The agent to gradually take on more work:
Week 1-2:
Week 3-4:
Month 2:
Key: Start small, expand based on feedback and results.
Use this skill when:
Do not use this skill when:
autonomy-type-based for type-based filteringautonomy-type-basedDefault window: 8 AM - 8 PM UTC (adjustable)
Session frequency: Every 2-3 hours during window
Priority order: urgent (override) → high → medium → low
Queue location: tasks/QUEUE.md
See templates/QUEUE.md for full template structure