pi-scheduled-router

内容来源:README.md(说明文档) · 原始地址 · 查看安装指南

原始内容

Pi Scheduled Router

CI Publish npm version npm downloads License: MIT Pi package Trusted Publishing Buy Me A Coffee

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.4

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.

Validation rules: Only version, timezone, default, and slots are allowed at the top level. Each slot must have a non-zero duration (from must differ from to). Times use HH:MM with minutes 0059 and hours 0024 (24:00 only).

Overlap warnings: Slots are evaluated in order and first match wins. If a later slot is fully covered by earlier slots (for example duplicate ranges, 09:0017:00 before 13:0015:00, or covered day-spanning slots such as 22:0002:00), the config is still valid but scheduled_router_config validate, scheduled_router_config save, and /scheduled:status/tool status show a Config warnings: summary so you can reorder or split slots.

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