尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证一个开源的后台代理编码系统
AI 翻译
An open-source background agents coding system
取自仓库 README
正在加载完整 README。
查看完整 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 |