An open-source framework for background coding agents. Anyone with an idea can turn it into a PR.
Developer toolsTypeScript · PythonGitHub @ColeMurrayOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
An open-source background agents coding system
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗An open-source background agents coding system inspired by Ramp's Inspect.
Open-Inspect provides a hosted background coding agent that can:
Important: This system is designed for single-tenant deployment only, where all users are trusted members of the same organization. Teams add internal access controls, not tenant isolation.
Teams own sessions, environments, and automations. A session's Workspace, Team, or Private
visibility is separate from its fixed ownership; resources cannot move between teams or to/from the
workspace. Team-owned session actions require current owning-team membership, even for workspace
Owners and Administrators. With enforcement on, deletion additionally requires sessions.delete and
being the session owner, an owning-team lead, or a workspace administrator; team-owned and private
sessions apply their action checks in every mode.
Private sessions are readable by their owner and explicit collaborators. Workspace Owners have an
audited break-glass read path, not automatic collaboration or sandbox access. Team visibility's read
boundary requires TEAMS_ENFORCEMENT=on; the deployment default remains shadow.
For a single-team deployment, create one team, add the users who need to act on its sessions, and grant its repositories. Existing workspace-owned rows are not moved or hidden. Even with every user in one team, being a Member does not let someone delete another member's session under enforcement unless they satisfy the ownership/lead rule. Follow the first-team setup before inviting users.
The shared GitHub App installation bounds workspace repository reach. Sandbox git credentials are limited to the session's persisted repositories and, for team-owned sessions, current owning-team grants. Workspace permissions and resource access still apply; Open-Inspect does not compare a user's personal GitHub repository permissions before creating a session. GitLab credentials remain a deployment-wide PAT rather than a per-session token.
Credentials are brokered on demand but cached on disk, so snapshots can retain them. Grant removal does not immediately revoke issued tokens. See the canonical Authentication and Authorization guide for access rules and credential boundaries, including user versus App identity and snapshot limitations.
This architecture follows Ramp's Inspect design, which was built for internal use where all employees are trusted and have access to company repositories.
For multi-tenant deployment, you would need:
ALLOWED_GITHUB_ORGS)See Authentication and Authorization for workspace roles, session access, automation ownership, bots, and member suspension.
┌──────────────────┐
│ Clients │
│ ┌──────────────┐ │
│ │ Web / Slack │ │
│ │ GitHub / Lin.│ │
│ │ Webhooks │ │
│ └──────────────┘ │
└────────┬─────────┘
│
▼
┌────────────────────────────────────────────────────────────────────┐
│ Control Plane (Cloudflare) │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ Durable Objects (per session) │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌───────────────┐ │ │
│ │ │ SQLite │ │WebSocket│ │ Event │ │ GitHub │ │ │
│ │ │ DB │ │ Hub │ │ Stream │ │ Integration │ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ └───────────────┘ │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ D1 Database (repo-scoped secrets) │ │
│ └──────────────────────────────────────────────────────────────┘ │
└────────────────────────────────┬───────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────┐
│ Data Plane (Sandbox Backend) │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ Session Sandbox │ │
│ │ ┌───────────┐ ┌───────────┐ ┌───────────┐ │ │
│ │ │ Supervisor│──│ Harness │──│ Bridge │─────────────────┼──┼──▶ Control Plane
│ │ └───────────┘ │ (OpenCode │ └───────────┘ │ │
│ │ │ or Claude)│ │ │
│ │ └───────────┘ │ │
│ │ │ │ │
│ │ Full Dev Environment │ │
│ │ (Node.js, Python, git, agent-browser) │ │
│ └──────────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────────┘
| Package | Description |
|---|---|
| control-plane | Cloudflare Workers + Durable Objects |
| web | Next.js web client |
| sandbox-runtime | Shared in-sandbox agent runtime |
| modal-infra | Modal sandbox infrastructure |
| daytona-infra | Daytona snapshot infrastructure |
| e2b-infra | E2B sandbox template infrastructure |
| boat-infra | Boat sandbox snapshot infrastructure |
| slack-bot | Slack integration (sessions from messages) |
| github-bot | GitHub integration (auto-review, @mention) |
| linear-bot | Linear integration (issue → coding session) |
| shared |
For a practical setup guide (local + contributor + deployment paths), start with docs/SETUP_GUIDE.md.
See docs/GETTING_STARTED.md for deployment instructions.
To understand the architecture and core concepts, read docs/HOW_IT_WORKS.md.
To set up recurring scheduled tasks, see docs/AUTOMATIONS.md.
To create and use reusable agent instructions, see docs/MANAGED_SKILLS.md.
Sessions start near-instantly through multiple layers of warming:
One session can work across several repositories in a single sandbox:
Create reusable instructions and supporting files that agents receive when a session starts:
Multiple users can collaborate in the same session:
Commits are attributed to the user who sent the prompt:
// Configure git identity per prompt
await configureGitIdentity({
name: author.scmName,
email: author.scmEmail,
});
Choose the AI model that fits your task, with per-session reasoning effort controls:
Anthropic and OpenAI models are enabled by default. xAI / SuperGrok, OpenCode Zen and Go, Z.AI Coding Plan, and DeepSeek models are opt-in. See Available Models for current model IDs, descriptions, and reasoning efforts.
OpenAI models work with your existing ChatGPT subscription via OAuth — no separate API key needed. Anthropic models can run on the Claude Agent harness with a connected Claude subscription; see Using the Claude Agent Harness. Grok models work with an eligible SuperGrok subscription through control-plane-managed OAuth. See docs/OPENAI_MODELS.md or docs/GROK_MODELS.md for subscription setup instructions.
Interact with agents from wherever your team already works:
Schedule recurring tasks or react to external events — no human in the loop:
See docs/AUTOMATIONS.md for setup instructions.
Every session runs in an isolated sandbox backend with a full development environment:
/workspace/.tunnels.env before .openinspect/start.sh runs
(details).env paste importAgents can decompose work into parallel child sessions:
spawn-child creates a child session in its own sandbox and returns immediatelysend-child-prompt queues follow-up instructions in an existing direct child sessionget-child-status and cancel-child coordinate child sessionsRepositories can define two optional startup scripts under .openinspect/:
# .openinspect/setup.sh (provisioning)
#!/bin/bash
npm install
pip install -r requirements.txt
# .openinspect/start.sh (runtime startup)
#!/bin/bash
docker compose up -d postgres redis
setup.sh runs for image builds and fresh sessionssetup.sh is skipped for prebuilt-image and snapshot-restore startssetup.sh failures are non-fatal for fresh sessions, but fatal in image build modestart.sh runs for every non-build session startup (fresh, prebuilt-image, snapshot-restore)start.sh failures are strict: if present and it fails, session startup failsSANDBOX_BOOT_TIMEOUT_MS, 30 minutes by default, measured across the whole session boot), to
enclosing sandbox shutdown and image-build limits, and can apply their own command-specific
deadlines when needed.OPENINSPECT_BOOT_MODE (build, fresh, repo_image, snapshot_restore)MIT
Inspired by Ramp's Inspect and built with:
| Shared types and utilities |