How sting8k/piggery works
Piggery coordinates coding-agent sessions through a local daemon: harness plugins connect to its Unix-socket protocol, while the daemon serves the core farm engine, which enforces team roles and routes mailbox work. Agents can be started as workers on their configured harness. Operators inspect and administer teams through the CLI; Paseo provides a farm view. The README documents SQLite-backed local operation and multiple harness integrations. Some links are based on the SOURCE INDEX or README rather than complete excerpts, so unsampled internals are represented only at subsystem level.
Main entry points: server.go Socket daemon · engine.go Farm engine · extensions Harness plugins · index.client.tsx Paseo plugin
Components 19
Agent integrations
- Harness plugins
extensions - Turn adapter
extensions/pi/adapter.mjs - Socket clients
extensions/pi/client.mjs - Paseo plugin
extensions/paseo/index.client.tsx - Paseo farm view
extensions/paseo/client/farm.tsx - Paseo view model
extensions/paseo/shared/view.ts
Daemon runtime
- Socket daemon
internal/server/server.go - JSON-line protocol
internal/proto/proto.go - Worker runner
internal/driver/local/runner.go - Harness drivers
internal/driver/local - SQLite state
internal/store/store.go
Farm domain
- Farm engine
internal/core/engine.go - Teams and roles
internal/core - Mailbox and events
internal/core/mail.go - Farm layouts
manifests/manifests.go
Operations and views
- CLI
internal/cli - Farm monitor
internal/cli/top.go - Monitor rendering
internal/cli/topview.go
Other components
- Coding agent
Connections 20
- Coding agent → Harness plugins: uses harness
README.md - Harness plugins → Turn adapter: maps turns
extensions/pi/index.ts - Harness plugins → Socket clients: calls daemon
extensions/pi/index.ts - Socket clients → Socket daemon: sends requests
extensions/pi/client.mjs - Socket daemon → JSON-line protocol: speaks protocol
internal/server/server.go - Socket daemon → Farm engine: dispatches calls
internal/server/server.go - Socket daemon → SQLite state: uses storage
internal/server/server.go - Socket daemon → Worker runner: manages workers
internal/server/server.go - Socket daemon → Farm layouts: loads layouts
internal/server/server.go - Farm engine → Teams and roles: enforces roles
- Farm engine → Mailbox and events: routes mail
- Worker runner → Harness drivers: selects harness
internal/driver/local/runner.go - CLI → Socket daemon: starts daemon
- CLI → Farm engine: queries farm
internal/cli/top.go - Farm monitor → Monitor rendering: renders monitor
internal/cli/top.go - Paseo plugin → Paseo farm view: registers view
extensions/paseo/index.client.tsx - Paseo farm view → Paseo view model: builds display
extensions/paseo/client/farm.tsx - Paseo plugin → Socket daemon: reads farm data
- Coding agent → Mailbox and events: exchanges mail
README.md - Farm layouts → Teams and roles: defines layout
README.md