mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-15 11:02:17 +00:00
Composable agent runtime monorepo built on the pi ecosystem
All tools now check the abort signal before executing and throw "Operation aborted" error if the signal is already aborted. This ensures consistent abort behavior across all tools. |
||
|---|---|---|
| .husky | ||
| docs | ||
| packages | ||
| scripts | ||
| .gitignore | ||
| .npmrc | ||
| biome.json | ||
| CLAUDE.md | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| pi-mono.code-workspace | ||
| README.md | ||
| tsconfig.base.json | ||
| tsconfig.json | ||
Pi Monorepo
A collection of tools for managing LLM deployments and building AI agents.
Packages
- @mariozechner/pi-ai - Unified multi-provider LLM API
- @mariozechner/pi-web-ui - Web components for building AI chat interfaces
- @mariozechner/pi-proxy - CORS proxy for browser-based LLM API calls
- @mariozechner/pi-tui - Terminal UI library with differential rendering
- @mariozechner/pi-agent - General-purpose agent with tool calling and session persistence
- @mariozechner/pi - CLI for managing vLLM deployments on GPU pods
Related:
- sitegeist - Browser extension for AI-powered web navigation (uses pi-ai and pi-web-ui)
Development
This is a monorepo using npm workspaces for package management and a dual TypeScript configuration for development and building.
Common Commands
# Install all dependencies
npm install
# Build all packages (required for publishing to NPM)
npm run build
# Clean out dist/ folders in all packages
npm run clean
# Run linting, formatting, and tsc typechecking (no build needed)
npm run check
# Run directly with tsx during development (no build needed)
cd packages/pods && npx tsx src/cli.ts
cd packages/agent && npx tsx src/cli.ts
Package Dependencies
The packages have the following dependency structure:
pi-tui -> pi-agent -> pi
When new packages are added, the must be inserted in the correct order in the build script in package.json.
TypeScript Configuration
The monorepo uses a dual TypeScript configuration approach:
- Root
tsconfig.json: Contains path mappings for all packages, used for type checking and development withtsx - Package
tsconfig.build.json: Clean build configuration withrootDirandoutDir, used for production builds
This setup allows:
- Type checking without building (
npm run checkworks immediately) - Running source files directly with
tsxduring development - Clean, organized build outputs for publishing
Versioning
All packages use lockstep versioning - they share the same version number:
# Bump patch version (0.5.0 -> 0.5.1)
npm run version:patch
# Bump minor version (0.5.0 -> 0.6.0)
npm run version:minor
# Bump major version (0.5.0 -> 1.0.0)
npm run version:major
These commands automatically:
- Update all package versions
- Sync inter-package dependency versions
- Update package-lock.json
Publishing
# Dry run to see what would be published
npm run publish:dry
# Publish all packages to npm
npm run publish
License
MIT