A self-hosted, shared AI environment for R&D teams. A teammate spins up an isolated env with one click, vibe-codes with AI, shares it with the team, and ships once automated agent checks and human review pass.
π withvibe.dev Β Β·Β π¦ CLI on npm Β Β·Β π Docs Β Β·Β βοΈ Contact
npm install -g withvibe # Node 20+, Docker 24+ required
withvibe doctor # sanity-check your machine
withvibe init -y # one-click install + startWhen init finishes, it prints the URL β open it, sign in, you're running.
For options and details, see the CLI README.
flowchart TD
A([π‘ Team member has an idea]) --> B[π±οΈ One click β spin up an isolated env]
B --> C[π€ Vibe-code with AI]
C --> D[π₯ Share the env with the team]
D --> E[Teammates join the same AI session & review]
E --> F{Human approval?}
F -->|Needs work| C
F -->|Approved| G[Pre-production agent gate]
subgraph GATE [π‘οΈ Automated agent gate]
direction LR
H[π Security review]
I[π Code review]
J[π§ͺ Test & quality]
K[π Policy / compliance]
end
G --> H & I & J & K
H & I & J & K --> L{All checks pass?}
L -->|Flagged| C
L -->|Clean pass| M([π Deploy to production])
classDef start fill:#1e90ff,stroke:#0a0a0a,color:#ffffff;
classDef ship fill:#22c55e,stroke:#0a0a0a,color:#ffffff;
classDef decision fill:#f59e0b,stroke:#0a0a0a,color:#0a0a0a;
class A start;
class M ship;
class F,L decision;
- One click to start. No infra setup β the team member gets an isolated env seeded with the existing code.
- Vibecode with AI. The AI is the primary collaborator inside the env.
- Share, don't fork. The env is shared with the team; anyone can jump in and interact with the same AI session.
- Automated gate before prod. Once humans approve, specialist agents (security, code review, tests, policy) run as a final gate. Anything flagged loops back to the env.
- Ship. Clean pass β merge to main β production.
This is the server-stack monorepo (pnpm). The CLI that installs and runs the stack lives in a separate, Apache-2.0 repo.
.
βββ apps/
β βββ web/ # Next.js 16 frontend + auth + REST proxy (@withvibe/web)
β βββ api/ # NestJS backend, Docker orchestration, terminal WS (@withvibe/api)
β βββ qa-browser-extension/ # Chrome MV3 ext for the QA agent (@withvibe/qa-browser-extension)
βββ packages/
β βββ db/ # Prisma schema + generated client (@withvibe/db)
βββ docs/ # architecture and operator notes
βββ scripts/ # release + GHCR publishing
βββ LICENSE # GNU AGPL-3.0
Just want to run WithVibe? Use the withvibe CLI β see the Try it in 30 seconds section above. This section is for contributors working on the server stack itself.
- Node.js β₯ 20
- pnpm β₯ 9
- PostgreSQL β₯ 14 (local or remote)
- Docker + Docker Compose (for environment containers)
ghCLI (recommended; used bywithvibe envfor repo cloning)
# 1. Install
pnpm install
# 2. Configure environment
cp apps/web/.env.example apps/web/.env
cp apps/api/.env.example apps/api/.env
# Then edit both files β see the env reference below.
# 3. Generate Prisma client and apply schema
pnpm --filter @withvibe/db generate
pnpm --filter @withvibe/db db:push
# 4. (optional) Seed initial data
pnpm --filter @withvibe/db db:seed
# 5. Run web + API in parallel
pnpm devThe web app boots at http://localhost:3000, the API at http://localhost:4000/api.
pnpm dev:web # Next.js dev server
pnpm dev:api # NestJS in watch modepnpm build # build every workspace package
pnpm typecheck # tsc --noEmit across the workspace
pnpm lint # eslint (web app)The web app is the frontend only β it never touches the database. All DB access, auth, and third-party credentials live in the NestJS API. The web server forwards the user's session cookie to NestJS over a same-origin path.
| Var | Purpose |
|---|---|
API_BASE_URL |
URL the web server uses to reach NestJS (dev only β same-origin in prod) |
| Var | Purpose |
|---|---|
API_PORT |
Port the NestJS server listens on (default 4000) |
DATABASE_URL |
Postgres connection string |
INTERNAL_JWT_SECRET |
Signs user-session JWTs (cookie) and the legacy bridge JWT |
REPO_BASE_DIR |
Absolute path on disk where cloned repos live |
API_PUBLIC_URL |
Public URL of the API β used to build the Google OAuth callback |
WEB_PUBLIC_URL |
Public URL of the web app β where Google OAuth lands after login |
ANTHROPIC_API_KEY |
Workspace-level Anthropic fallback when no per-workspace key is set |
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET |
OAuth (leave empty to disable Google login) |
COOKIE_SECURE |
true to mark the session cookie Secure (auto in production) |
COOKIE_DOMAIN |
Set when API + Web are on different subdomains |
| Repo | License | What it is |
|---|---|---|
| withvibe/withvibe (this repo) | AGPL-3.0 | The server stack β api, web, db, QA-browser extension |
| withvibe/withvibe-cli | Apache 2.0 | The withvibe CLI β installs and manages the stack, runs envs locally |
| withvibe/withvibe-skills | Apache 2.0 | Claude Code skills β first-time installer guide + plugin scaffolder |
| withvibe/withvibe-roadmap | Apache 2.0 | Roadmap plugin β a per-env implementation board (Postgres-backed) with an MCP server the AI orchestrator drives |
| withvibe/withvibe-voter | Apache 2.0 | Example plugin β turns any env into a team-voted workspace: the AI opens proposals the team votes on before they're built |
| withvibe/vibe-aquarium | Apache 2.0 | Demo app β a minimal 3D aquarium you reshape live by chatting with the running app |
- π Website / product: https://withvibe.dev
- π Documentation: https://withvibe.dev/docs
- ποΈ Architecture overview: docs/architecture.md
- βοΈ Contact / commercial licensing: https://withvibe.dev/contact
See CONTRIBUTING.md. For security issues, see SECURITY.md.
Source code in this repository is open source under the GNU Affero General Public License v3.0 (AGPL-3.0). See LICENSE for the full text.
This summary is not a substitute for the LICENSE β it's just meant to make the common cases easy to understand.
β Free to use, modify, and self-host β including for internal use inside your organization (running it for your own team, customizing it, fixing bugs, contributing patches back).
β Free to fork and build on, under the same AGPL-3.0 terms.
The hosted WithVibe offering is provided by us under a separate commercial license. If the AGPL doesn't fit your use case β embedding WithVibe in a proprietary offering, or running it as a service without the source-sharing obligation β reach out and we'll work out a commercial license agreement: withvibe.dev/contact.
External contributions require agreeing to our CLA, which licenses your contribution to us broadly enough to keep dual licensing (open source + commercial) possible. The CLA check runs automatically on your first pull request.
Copyright Β© 2026 WithVibe Β· withvibe.dev

