can1357 aa37aafde8 build: added dev:install script to streamline workspace setup
- Added dev:install script to streamline local development setup across all workspace packages.
2026-01-02 15:13:27 +01:00
2025-12-30 22:42:21 +01:00
2026-01-01 21:40:36 +01:00
2025-12-30 22:42: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-core 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-pods CLI for managing vLLM deployments on GPU pods

Development

Setup

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

Note: bun run check requires bun run build to be run first. The web-ui package uses tsc which needs compiled .d.ts files from dependencies.

CI

GitHub Actions runs on push to main and on pull requests. The workflow runs bun run check and bun test for each package in parallel.

Do not add LLM API keys as secrets to this repository. Tests that require LLM access use describe.skipIf() to skip when API keys are missing. This is intentional:

  • PRs from external contributors would have access to secrets in the CI environment
  • Malicious PR code could exfiltrate API keys
  • Tests that need LLM calls are skipped on CI and run locally by developers who have keys configured

If you need to run LLM-dependent tests, run them locally with your own API keys.

Development

Start watch builds for all packages:

bun run dev

Then run directly with Bun:

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

Versioning (Lockstep)

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

bun run version:patch    # 0.7.5 -> 0.7.6
bun run version:minor    # 0.7.5 -> 0.8.0
bun 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 bun.lockb

Note: Version bumping uses npm version -ws since Bun doesn't yet have workspace version equivalent.

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

Publishing

bun run release:patch    # Bug fixes
bun run release:minor    # New features
bun run release:major    # Breaking changes

This handles version bump, CHANGELOG updates, commit, tag, publish, and push.

Note: Publishing uses npm publish since Bun delegates to npm for publishing.

NPM Token Setup: Requires a granular access token with "Bypass 2FA on publish" enabled.

License

MIT

S
Description
Local fork of can1357/oh-my-pi with omp-specific patches
Readme 449 MiB
Languages
TypeScript 83.8%
Rust 9.7%
Python 5.3%
Nix 0.3%
CSS 0.2%
Other 0.5%