pi-ate-scheduler
Timer and recurring task extension for pi-coding-agent
Package details
Install pi-ate-scheduler from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-ate-scheduler- Package
pi-ate-scheduler- Version
1.0.1- Published
- May 29, 2026
- Downloads
- not available
- Author
- lain-residue
- License
- MIT
- Types
- extension
- Size
- 63.9 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"."
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
📖 pi-atelier 实战指南 — 从零教会你使用 pi-atelier 扩展生态,包含完整示例和最佳实践。
English | 程序中文文档
pi-scheduler
Timer and recurring task extension for pi — scheduled messages, interval-based prompts, and task automation.
Why You Need It
Sometimes you need your AI agent to do things on a schedule — remind you to commit every 30 minutes, check build status periodically, or send a notification at a specific time. Without pi-scheduler, you'd have to manually trigger these actions yourself.
pi-scheduler adds time-based automation to pi:
- One-time reminders — "Remind me in 10 minutes to check the tests"
- Recurring tasks — "Every 5 minutes, check if the server is responding"
- Timed prompts — Inject messages into the agent's context at scheduled times
- Task management — List, cancel, and monitor active timers
How It Works
User/Agent: "Remind me in 10 min to check tests"
│
▼
schedule(action: "create", interval_ms: 600000, prompt: "Check tests")
│
▼
TimerEngine registers timer
│
├── one-shot (recurring=false): fires once after interval
└── loop (recurring=true): fires every interval
│
▼ when timer fires
Prompt injected into agent context
│
▼
Agent processes the prompt like a user message
Installation
pi install git:github.com/catlain/pi-scheduler
Commands
| Command | Description |
|---|---|
/loop |
List active recurring tasks |
/remind |
List active one-time reminders |
/tasks |
List all active tasks (reminders + loops) |
Tool: schedule
Create, list, and cancel scheduled tasks:
| Action | Description |
|---|---|
create |
Create a new scheduled task (one-time or recurring) |
list |
List all active tasks |
cancel |
Cancel a task by ID |
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
action |
string | ✅ | create, list, or cancel |
id |
string | for cancel | Task ID to cancel |
prompt |
string | for create | Message to inject when timer fires |
interval_ms |
number | for create | Interval in milliseconds |
recurring |
boolean | for create | true = repeating, false = one-shot (default) |
Examples
One-time reminder
schedule(action: "create", prompt: "Check if tests pass", interval_ms: 600000)
// Fires once after 10 minutes
Recurring task
schedule(action: "create", prompt: "Commit current changes", interval_ms: 1800000, recurring: true)
// Fires every 30 minutes
List active tasks
schedule(action: "list")
Cancel a task
schedule(action: "cancel", id: "task-abc123")
Use Cases
| Scenario | Config |
|---|---|
| Commit discipline | Recurring every 30 min: "Commit current changes" |
| Monitoring | Recurring every 5 min: "Check server status" |
| Time-boxing | One-shot after 60 min: "You've spent over an hour on this task" |
| Build check | One-shot after 2 min: "Check if CI build passed" |
| Periodic review | Recurring every 20 min: "Review what you've done so far" |
Best Practices
✅ Recommended
- Use human-readable prompts — they're injected directly into the agent's context
- Set reasonable intervals (≥ 1 minute) — too frequent will flood the context
- Use
/tasksto review active tasks before creating new ones - Cancel tasks you no longer need to free up context
❌ Not Recommended
- Don't set intervals < 30 seconds — the agent can't respond that fast
- Don't create many recurring tasks simultaneously — context pollution
- Don't use for critical scheduling — timers are lost when pi restarts
Limitations
| Limitation | Detail |
|---|---|
| No persistence | Timers are in-memory only, lost on restart |
| No cron syntax | Intervals only (milliseconds), no cron expressions |
| Context injection | Prompt occupies context space when it fires |
| No deduplication | Creating identical tasks results in duplicates |
Architecture
pi-scheduler/
├── index.ts # Entry: register schedule tool + slash commands
├── timer-engine.ts # Core timer management (create/list/cancel)
├── parser.ts # Natural language time parsing ("10 min" → ms)
├── types.ts # Timer type definitions
├── tests/ # Unit tests
└── package.json
Dependencies:
@earendil-works/pi-coding-agent— ExtensionAPI (peer)
License
MIT