@yansircc/pi-loop

Effect-based temporal loops for Pi

Packages

Package details

extension

Install @yansircc/pi-loop from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@yansircc/pi-loop
Package
@yansircc/pi-loop
Version
0.7.1
Published
Jul 22, 2026
Downloads
1,679/mo · 1,679/wk
Author
yansirplus
License
MIT
Types
extension
Size
933.5 KB
Dependencies
0 dependencies · 1 peer
Pi manifest JSON
{
  "extensions": [
    "./dist/pi/extension.js"
  ]
}

Security note

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

README

pi-loop

Agent-first scheduling tools for Pi. Users describe recurring or delayed work conversationally; the agent creates and manages typed loops. There are no slash commands.

Tools

  • loop_create: create an interval, cron, one-shot, or dynamic loop.
  • loop_update: replace a loop's prompt, label, or complete schedule.
  • loop_pause / loop_resume: change whether a loop may run.
  • loop_run_now: run one enabled loop immediately.
  • loop_delete: delete one loop or all visible loops.
  • loop_list: inspect the current loops.
  • schedule_wakeup: arm the next wakeup for a dynamic loop.

Session-retained loops disappear with their owning Pi session. Project-retained loops survive and are leased by one live Pi process. Dynamic loops are session-retained because their next wakeup is part of the active agent conversation.

Pipee renders a cross-Session Loop Web Surface by multiplexing the same Runtime projections. The package-owned browser document deduplicates Project-retained loops by their real owner while keeping Session-retained loops distinct. Creation and other open-ended intent stay in Chat. The finite run now, pause/resume, edit, and delete controls dispatch to the exact owning Runtime; retention remains read-only.

Development

pnpm install
pnpm run verify
pnpm run pi:pack

The package gate builds one self-contained Node ESM entry plus dist/web, packs them, extracts the archive without installing dependencies, and loads it through Pi's real extension loader.

Releases

A Loop release is declared by a tracked JSON changeset under release/changes/. The entry names @yansircc/pi-loop and a patch, minor, or major bump. A push without a Loop changeset does not change or publish its version. CI owns the version commit, exact archive, package tag, and registry integrity proof.