CompanyHelm is an open-source control plane for running AI coding agent in dedicated environments. Each agent session is completely isolated and allows to run coding tasks in a distributed fashion. Agents are model agnostic and multiple company-provided model providers are supported (OpenAI, Anthropic, Google, OpenRouter, OpenAI-compatible APIs, and OpenAI Codex OAuth). Agents can be customized with MCP, Skills and custom instructions.
A few things it can do today:
- Isolation: every agent session runs in a fresh E2B VM
- E2E testing: agents can spin up your app and run end-to-end tests in isolation
- Feature videos: agents can generate demo videos for new features and attach them to PRs
- Live demos: you can open a remote desktop and interact with the feature before merging
- Multi-repo workflows: agents can operate across multiple repos in the same session
- Collaboration: you can invite other users into the same company workspace
CompanyHelm Cloud (Free) · Discord
Monorepo with:
apps/api: APIapps/web: Web app
Use the exact local toolchain versions below to avoid lockfile drift and inconsistent installs:
- Node.js
20.20.0 - npm
11.6.2
If you use nvm:
nvm install
nvm use
npm install -g npm@11.6.2- Node.js
20.20.0 - npm
11.6.2 - Docker with Docker Compose
- Install the correct Node.js version and npm version.
nvm install
nvm use
npm install -g npm@11.6.2- Copy the web app example environment file.
cp apps/web/.env.example apps/web/.env.localCopy apps/api/.env.example to apps/api/.env.local, then fill in the required GitHub App, Exa,
E2B, local-auth, and encryption-related values before starting npm run dev:api.
apps/api/config/local.yaml reads those values directly from the environment.
- Install dependencies.
npm install- Start Postgres, Redis, and pgAdmin.
npm run db:up- Start the API.
npm run dev:api- Start the web app in a second terminal.
npm run dev:web- Web app:
http://localhost:5173 - Web health:
http://localhost:5173/health - API GraphQL:
http://localhost:4000/graphql - API health:
http://localhost:4000/health - pgAdmin:
http://localhost:15050 - Redis:
localhost:16379
Local development defaults to HTTP for both the web app and API. Keep VITE_GRAPHQL_URL pointed at
http://localhost:4000/graphql unless you also choose to proxy the API over HTTPS locally.
apps/web/.env.example contains the Vite variables used by local web development.
A few notes:
- Copy it to
apps/web/.env.localso Vite picks it up automatically. apps/api/config/local.yamluses local auth by default and reads GitHub App, Exa, and E2B values from environment variables.- The placeholder values in
apps/web/.env.exampleare enough to boot the web shell locally. - Self-hosters must configure their own GitHub App before using GitHub install flows.
- Replace the placeholders with real secrets before using GitHub install flows, model provider credentials, or CompanyHelm-backed compute.
Local Vite development uses VITE_AUTH_PROVIDER=local and VITE_GRAPHQL_URL from your local
environment by default. Set VITE_TERMS_OF_SERVICE_URL and VITE_PRIVACY_POLICY_URL when you need
the local app to show deployment-specific legal links.
Start both apps with Turbo:
npm run devStart local services:
npm run db:upStop local services:
npm run db:downReset local services and volumes:
npm run db:resetRun database migrations:
npm run db:migrateGenerate Drizzle files:
npm run db:generateRun everything you need before committing:
npm run test:allThat command runs the API and web checks, and it also runs the API test suite.