Composable agent runtime monorepo built on the pi ecosystem
Find a file
Mario Zechner 568150f18b Rework custom tools API with CustomToolContext
- CustomAgentTool renamed to CustomTool
- ToolAPI renamed to CustomToolAPI
- ToolContext renamed to CustomToolContext
- ToolSessionEvent renamed to CustomToolSessionEvent
- Added CustomToolContext parameter to execute() and onSession()
- CustomToolFactory now returns CustomTool<any, any> for type compatibility
- dispose() replaced with onSession({ reason: 'shutdown' })
- Added wrapCustomTool() to convert CustomTool to AgentTool
- Session exposes setToolUIContext() instead of leaking internals
- Fix ToolExecutionComponent to sync with toolOutputExpanded state
- Update all custom tool examples for new API
2025-12-31 12:05:24 +01:00
.github/workflows Include examples/ folder in binary release archives 2025-12-17 21:27:07 +01:00
.husky Add husky pre-commit hook for formatting and type checking 2025-08-11 21:15:37 +02:00
.pi Add ReadonlySessionManager type for hooks 2025-12-30 22:42:22 +01:00
packages Rework custom tools API with CustomToolContext 2025-12-31 12:05:24 +01:00
scripts Add release script 2025-12-30 22:42:21 +01:00
.gitignore Clean-up 2025-12-30 22:42:22 +01:00
AGENTS.md Clean-up 2025-12-30 22:42:21 +01:00
biome.json WIP: Remove global state from pi-ai OAuth/API key handling 2025-12-25 01:01:03 +01:00
LICENSE Initial monorepo setup with npm workspaces and dual TypeScript configuration 2025-08-09 17:18:38 +02:00
package-lock.json Fix rebase issues: regenerate models, fix mom agent API 2025-12-30 22:42:25 +01:00
package.json Remove proxy package 2025-12-30 22:42:21 +01:00
pi-mono.code-workspace Update README to include github-copilot, google-gemini-cli, google-antigravity providers 2025-12-21 20:17:12 +01:00
README.md Clean-up 2025-12-30 22:42:21 +01:00
tsconfig.base.json Try fixing root level compiles 2025-12-03 14:16:00 +01:00
tsconfig.json Remove proxy package 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

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

Note: npm run check requires npm 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 npm run check and npm run 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:

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

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

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

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

License

MIT