Ziggy is a folder that is an assistant: one Bun/TypeScript runtime around the published Pi coding-agent SDK. Pi owns models, sessions, tools, and transcripts; Ziggy owns visible Profile policy and composition.
Current version is 0.2.4. Notable changes live in CHANGELOG.md.
macOS Apple Silicon:
curl -fsSL https://github.com/Yeshwanthyk/ziggy/releases/latest/download/install.sh | shThat curl command is the canonical install path. It publishes ~/.local/bin/ziggy, verifies the
SHA-256 published next to the binary, and refuses to overwrite a symlink. If that user-local bin
directory is not already on the interactive shell's PATH, add it before invoking ziggy:
export PATH="$HOME/.local/bin:$PATH"Then:
ziggy version
ziggy init my-botDirect binary download:
curl -fL -o ziggy https://github.com/Yeshwanthyk/ziggy/releases/latest/download/ziggy-darwin-arm64
chmod +x ziggyziggy update uses the same GitHub release assets. Linux and Intel Mac builds are not in 0.2.4.
ziggy init <name|path>
ziggy [<name|path>]
ziggy run [-c] <name|path> <prompt...>
ziggy sessions list <name|path>
ziggy sessions show <name|path> <session-id|relative-path>
ziggy serve <name|path>
serve runs the resident Profile owner, including the automation scheduler and any configured channel loops. ziggy gateway <name|path> remains a compatibility alias.
Managed serve definitions record Ziggy's absolute executable path and literal HOME, ZIGGY_HOME,
and deterministic PATH values. The default service PATH is
<home>/.local/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin, so user-local and Homebrew
commands are available without relying on interactive shell startup files. If an existing
definition is reported as drifted after this environment hardening, restage it with
ziggy serve install <profile> --force.
The in-process profile_extensions tool manages the Profile extension lifecycle (list, add,
remove, and validate) without Bash, a Ziggy subprocess, or PATH lookup. That lifecycle does
not depend on the managed-service PATH; the PATH above is for extensions that invoke ordinary
external commands.
Session list/show output is transcript-free: it includes only paths, IDs, lineage, timestamps, entry counts, model/thinking changes, usage, and safe terminal state. It never prints prompts, replies, thinking, tool arguments, or tool output.
Run ziggy help for the complete command surface.
- Supervise
ziggy serve - Connect a Profile to Telegram
- Connect a Profile to Discord
- Connect a Profile to Slack
- Drive a Profile from Buzz over ACP
- Operate automations
- Operate Profile memory
bun install --frozen-lockfile
bun run check
bun test ./test ./extensions ./tooling && bun run test:helpers