Composable agent runtime monorepo built on the pi ecosystem
Find a file
badlogic 7b1f975ca1 Fix Windows terminal background rendering and add /debug command
- Strip carriage return characters from bash tool output to fix background padding on Windows
- Add hidden /debug command to write rendered lines to debug log for TUI debugging
- Document /debug command in README.md development section
2025-12-02 13:22:54 +01:00
.github/workflows ci: build all packages before creating binaries 2025-12-02 12:32:41 +01:00
.husky Add husky pre-commit hook for formatting and type checking 2025-08-11 21:15:37 +02:00
packages Fix Windows terminal background rendering and add /debug command 2025-12-02 13:22:54 +01:00
scripts Fix lockstep versioning and improve documentation 2025-11-13 23:37:43 +01:00
.gitignore fix: file @ autocomplete performance using fd 2025-11-28 23:38:44 +01:00
AGENTS.md docs: add changelog rules to prevent modifying released versions 2025-12-02 13:15:17 +01:00
biome.json mom: Single accumulated message per run, exclude data dir from biome 2025-11-26 01:21:45 +01:00
LICENSE Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
package-lock.json release: v0.12.3 2025-12-02 13:10:27 +01:00
package.json mom: Slack bot with abort support, streaming console output, removed sandbox 2025-11-26 00:27:21 +01:00
pi-mono.code-workspace docs(coding-agent): add changelog entry for git branch watcher (#79) 2025-11-29 21:54:02 +01:00
README.md docs: add changelog rules to prevent modifying released versions 2025-12-02 13:15:17 +01:00
tsconfig.base.json feat: add cross-browser extension with AI reading assistant 2025-10-01 04:33:56 +02:00
tsconfig.json mom: Slack bot with abort support, streaming console output, removed sandbox 2025-11-26 00:27:21 +01:00

Pi Monorepo

Tools for building AI agents and managing LLM deployments.

Packages

Package Description
@mariozechner/pi-ai Unified multi-provider LLM API (OpenAI, Anthropic, Google, etc.)
@mariozechner/pi-agent Agent runtime with tool calling and state management
@mariozechner/pi-coding-agent Interactive coding agent CLI
@mariozechner/pi-mom Slack bot that delegates messages to the pi coding agent
@mariozechner/pi-tui Terminal UI library with differential rendering
@mariozechner/pi-web-ui Web components for AI chat interfaces
@mariozechner/pi-proxy CORS proxy for browser-based LLM API calls
@mariozechner/pi CLI for managing vLLM deployments on GPU pods

Development

Setup

npm install          # Install all dependencies
npm run build        # Build all packages
npm run check        # Lint, format, and type check

Development

Start watch builds for all packages:

npm run dev

Then run with tsx:

cd packages/coding-agent && npx tsx src/cli.ts
cd packages/pods && npx tsx src/cli.ts

Versioning (Lockstep)

All packages MUST always have the same version number. Use these commands to bump versions:

npm run version:patch    # 0.7.5 -> 0.7.6
npm run version:minor    # 0.7.5 -> 0.8.0
npm run version:major    # 0.7.5 -> 1.0.0

These commands:

  1. Update all package versions to the same number
  2. Update inter-package dependency versions (e.g., pi-agent depends on pi-ai@^0.7.7)
  3. Update package-lock.json

Never manually edit version numbers. The lockstep system ensures consistency across the monorepo.

Publishing

Complete release process:

  1. Add changes to CHANGELOG.md (if changes affect coding-agent):

    # Add your changes to the [Unreleased] section in packages/coding-agent/CHANGELOG.md
    # Always add new entries under [Unreleased], never under already-released versions
    
  2. Bump version (all packages):

    npm run version:patch    # For bug fixes
    npm run version:minor    # For new features
    npm run version:major    # For breaking changes
    
  3. Finalize CHANGELOG.md for release (if changes affect coding-agent):

    # Change [Unreleased] to the new version number with today's date
    # e.g., ## [0.7.16] - 2025-11-17
    # NEVER add entries to already-released version sections
    # Each version section is immutable once released
    
  4. Commit and tag:

    git add .
    git commit -m "Release v0.7.16"
    git tag v0.7.16
    git push origin main
    git push origin v0.7.16
    
  5. Publish to npm:

    npm run publish        # Publish all packages to npm
    
  6. Add new [Unreleased] section (for next development cycle):

    # Add a new [Unreleased] section at the top of CHANGELOG.md
    # Commit: git commit -am "Add [Unreleased] section"
    

License

MIT