Skip to main content

Pi

Pi resolves models against your own credentials, so Saggar asks it what it can reach rather than shipping a list. Its integration is a Saggar-owned extension file that Pi discovers on its own.

Commandpi
Installcurl -fsSL https://pi.dev/install.sh | sh
Hook configuration~/.pi/agent/extensions/saggar-presence.ts
Skill location~/.pi/agent/skills/saggar-cli/SKILL.md
Resumepi --session <id>, or pi --continue without an id

Launching​

The default row launches pi with whatever model Pi is configured to use. The provider card runs pi --list-models and lets you pick which of the reported models get their own row. A pick is remembered per provider, so the same model picked under Pi and under OpenCode stays two separate rows. Pi takes no reasoning-effort flag. A first task is passed as a bare argument; preset context doesn't reach it.

Hooks​

Installing hooks writes one TypeScript extension into Pi's extensions directory. Pi loads it automatically, so no configuration file of yours is edited, and removal deletes only that file. If a saggar-presence.ts Saggar didn't write is already there, the install refuses and asks you to move it aside rather than merging into it. With it installed Saggar:

  • captures the native session id;
  • names the session from its first prompt;
  • follows turns and clean exits from Pi's lifecycle;
  • shows the active model in the terminal's chat info;
  • restores each session to its exact conversation.

Saggar replaces an older copy of its extension each time it starts. If the file on disk still doesn't match this build's copy, for example because it was edited, the provider card asks you to install again. Nothing is version gated.

Prompts and automatic approval​

Pi doesn't expose a blocking permission event, so a waiting prompt is noticed from the screen and turns the session Needs you. Saggar has no dialog vocabulary for Pi, so automatic approval never types into a Pi session.

Resume​

With a recorded id, restore runs pi --session <id>. Without one it runs pi --continue.

Further reading​