An agent harness for accomplishing extraordinary tasks — agnostic of the underlying model.
Built with care by Offside.AI · github.com/offsideAI
offsidepi is Offside.AI's agent harness, built with its own taste, vision, and care.
The goal: a harness that can accomplish extraordinary tasks regardless of which LLM powers it. Bring Anthropic, OpenAI, Google, or any other provider — the harness stays the same.
offsidepi is part of the Offside.AI open-source stack for agentic AI and enterprise workflow orchestration, alongside Offside.AI's agent orchestration, Spatial AI/ML Ops, and production execution platforms.
- @offsideai/offsidepi-coding-agent: Interactive coding agent CLI (the
offsidepicommand) - @offsideai/offsidepi-agent-core: Agent runtime with tool calling and state management
- @offsideai/offsidepi-ai: Unified multi-provider LLM API (OpenAI, Anthropic, Google, …)
You can also ask the agent itself — offsidepi can explain and extend its own features.
| Package | Description |
|---|---|
| @offsideai/offsidepi-ai | Unified multi-provider LLM API (OpenAI, Anthropic, Google, etc.) |
| @offsideai/offsidepi-agent-core | Agent runtime with tool calling and state management |
| @offsideai/offsidepi-coding-agent | Interactive coding agent CLI |
| @offsideai/offsidepi-tui | Terminal UI library with differential rendering |
offsidepi does not include a built-in permission system for restricting filesystem, process, network, or credential access. By default, it runs with the permissions of the user and process that launched it.
If you need stronger boundaries, containerize or sandbox offsidepi. See offsidepi-src/packages/coding-agent/docs/containerization.md for three patterns:
- Gondolin extension: keep
offsidepiand provider auth on the host while routing built-in tools and!commands into a local Linux micro-VM. - Plain Docker: run the whole
offsidepiprocess in a local container for simple isolation. - OpenShell: run the whole
offsidepiprocess in a policy-controlled sandbox.
See CONTRIBUTING.md for contribution guidelines and AGENTS.md for project-specific rules (for both humans and agents).
npm install --ignore-scripts # Install all dependencies without running lifecycle scripts
npm run build # Build all packages
npm run check # Lint, format, and type check
./offsidepi-src/test.sh # Run tests (skips LLM-dependent tests without API keys)
./offsidepi-src/offsidepi-test.sh # Run offsidepi from sources (can be run from any directory)We treat npm dependency changes as reviewed code changes.
- Direct external dependencies are pinned to exact versions. Internal workspace packages remain version-ranged.
.npmrcsetssave-exact=trueandmin-release-age=2to avoid same-day dependency releases during npm resolution.package-lock.jsonis the dependency ground truth. Pre-commit blocks accidental lockfile commits unlessPI_ALLOW_LOCKFILE_CHANGE=1is set.npm run checkverifies pinned direct deps, native TypeScript import compatibility, and the generated coding-agent shrinkwrap.- The published CLI package includes
offsidepi-src/packages/coding-agent/npm-shrinkwrap.json, generated from the root lockfile, to pin transitive deps for npm users. - Release smoke tests use
npm run release:localto build, pack, and create isolated npm and Bun installs outside the repo before tagging a release. - Local release installs, documented npm installs, and
offsidepi update --selfuse--ignore-scriptswhere supported. - CI installs with
npm ci --ignore-scripts, and a scheduled GitHub workflow runsnpm audit --omit=devplusnpm audit signatures --omit=dev. - Shrinkwrap generation has an explicit allowlist for dependency lifecycle scripts; new lifecycle-script deps fail checks until reviewed.
Offside.AI is an agentic AI company for enterprise workflow orchestration — building systems that automate business workflows, connect tools and data, and move teams from AI experiments to measurable execution. offsidepi is Offside.AI's model-agnostic agent harness and is proudly open source, like the rest of the Offside.AI stack.
MIT — see LICENSE.