pi-pact

Improves Pi compaction by only compacting older history while keeping recent turns intact.

Packages

Package details

extension

Install pi-pact from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-pact
Package
pi-pact
Version
0.4.0
Published
Jul 1, 2026
Downloads
466/mo · 34/wk
Author
tripplyons
License
MIT
Types
extension
Size
28.2 KB
Dependencies
0 dependencies · 2 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions/pact.ts"
  ]
}

Security note

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

README

pi-pact

Pact improves Pi by retaining recent messages when compacting.

Install

Install from npm:

pi install npm:pi-pact

Run temporarily without installing:

pi -e npm:pi-pact

Configuration

Pact reads configuration in this order, with later values overriding earlier ones:

  1. Built-in defaults
  2. Global config: ~/.pi/agent/pact.json
  3. Trusted project config: .pi/pact.json
  4. Environment variables
  5. Persisted session-local setting commands such as /pact:on and /pact:fraction

Example pact.json:

{
  "enabled": true,
  "fraction": "80%",
  "threshold": "60%",
  "debug": false,
  "debugFile": null
}

Settings:

  • enabled — enable automatic Pact compaction, default true
  • fraction — fraction or percentage of eligible tool results to remove from live context by summarizing, default 80%
  • threshold — token count or percentage like 60%, default 60%
  • debug — enable context order notifications, default false
  • debugFile — append debug records to the given JSONL file, default null

Environment variable overrides:

  • PACT_ENABLED=1|0|true|false
  • PACT_FRACTION=80% or PACT_FRACTION=0.8
  • PACT_THRESHOLD=60% or PACT_THRESHOLD=160000
  • PACT_DEBUG=1|0|true|false
  • PACT_DEBUG_FILE=/tmp/pact.jsonl

Slash commands persist their session-local settings when you close and resume the same saved Pi session.

Slash commands:

/pact                  manually trigger compaction
/pact:on               enable automatic Pact compaction
/pact:off              disable automatic Pact compaction
/pact:toggle           toggle automatic Pact compaction
/pact:status           show current Pact settings
/pact:stats            show Pact compaction stats
/pact:debug [on|off]   toggle or set context-order debug notifications
/pact:verify           verify compaction summary ordering
/pact:fraction N       set the fraction of eligible tool results to remove from live context
/pact:threshold N      set the token count or percent threshold

Development

npm test
npm run check
npm pack --dry-run