pi-scheduled-router

Switch Pi's AI provider and model based on time of day via YAML time-slot configuration.

Packages

Package details

extension

Install pi-scheduled-router from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-scheduled-router
Package
pi-scheduled-router
Version
0.1.0
Published
Jun 6, 2026
Downloads
not available
Author
eiei114
License
MIT
Types
extension
Size
27.6 KB
Dependencies
1 dependency · 4 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

Pi Scheduled Router

CI Publish npm version npm downloads License: MIT Pi package Trusted Publishing

Switch Pi's AI provider and model based on time of day — YAML time-slot configuration, session-start selection.

What this is

pi-scheduled-router is a Pi extension that selects an AI provider and model at session start based on the current time. Define time slots in a YAML config file and Pi picks the matching model automatically — morning light models, afternoon heavy lifters, night deep thinkers. No weighted balancing, no daily counts: just time → model.

This router is mutually exclusive with pi-weighted-model-router. Install one or the other.

Features

  • Time-slot-based provider/model selection at session start
  • YAML configuration (scheduled-router.yaml) with project-local override
  • Day-spanning slots (e.g. 22:0002:00)
  • Required default model for uncovered time ranges
  • First-match-wins slot evaluation
  • Configurable timezone
  • Install in user agent dir or per-project

Install

pi install npm:pi-scheduled-router

Pin a specific version:

pi install npm:pi-scheduled-router@0.1.0

Install into the current project instead of your user Pi settings:

pi install npm:pi-scheduled-router -l

Or install from GitHub:

pi install git:github.com/eiei114/pi-scheduled-router

Try it without permanently installing:

pi -e npm:pi-scheduled-router

Quick start

  1. Install the package.
  2. Create ~/.pi/scheduled-router.yaml:
version: 1
timezone: "Asia/Tokyo"
default:
  provider: deepseek
  model: deepseek-v4-pro

slots:
  - from: "10:00"
    to: "15:00"
    provider: cursor
    model: composer-2.5

  - from: "15:00"
    to: "24:00"
    provider: openai-codex
    model: gpt-5.4
  1. Start a new Pi session — the model is selected based on the current time.
  2. Run /scheduled:status to see current selection.

Or use /scheduled:configure to set up time slots interactively with your agent.

Commands

/scheduled:status

Show current time, matched slot, and selected model. No arguments.

/scheduled:configure

Start a guided conversation with your agent to set up or modify the router's time slots. The agent will ask questions one at a time and save the configuration via the scheduled_router_config tool.

Tools

scheduled_router_config

AI-facing tool for programmatic config management.

Parameter Type Description
action "read" | "status" | "validate" | "save" Operation to perform
configYaml string (optional) Full YAML content (required for validate/save)

Actions:

  • read — return current YAML config content
  • status — show current time, matched slot, and model
  • validate — validate YAML config without saving
  • save — confirm with user, write to disk, reselect model

Package contents

Path Purpose
extensions/ Pi TypeScript extension entrypoint
lib/ Shared TypeScript helpers (types, config, matcher)
docs/ Optional supporting docs

Development

npm install
npm run ci

Development flow

Vault notes -> PRD -> Issues -> implement -> ci/check -> release -> save learnings

Release

This package is set up for npm Trusted Publishing, so no NPM_TOKEN is required.

npm version patch
git push

See docs/release.md for setup details.

Security

Pi packages can execute code with your local permissions. Review extensions before installing third-party packages.

For vulnerability reporting, see SECURITY.md.

Links

License

MIT