OpenRig 摄像头取景框架

mvschwarz/openrig 访问 GitHub ↗
🔤 TypeScript ★ 7258 ⑂ 0 weekly #9 (+2056) 抓取 2026-10-13

一句话简介

基于 TypeScript 的开源项目,提供摄像头取景与扫描功能,支持条形码识别与图像处理等应用。

标签

  • TypeScript
  • 计算机视觉
  • 图像处理
  • 条形码识别
  • 摄像头框架

适用应用场景

  • 实时摄像头图像捕获
  • 条形码与二维码扫描识别
  • 网页端扫码登录与支付
  • 文档或物体拍照取景应用

README 中文摘要

项目目标与定位

OpenRig 是一个用于构建和运行自有智能体网络的开源系统。它将 AI 编程智能体从零散的终端会话转变为持久化、有组织的团队:用户在仓库中提出期望的产出,由"主智能体"(lead agent)协调跨团队的专业智能体,把结果和需要决策的事项反馈给用户。

核心能力

  • 拓扑定义:使用 YAML(RigSpec)声明 Pod、边(edges)、成员与延续策略;
  • 一键启动:rig up 创建 tmux 会话、加载 harness、执行启动检查;
  • 可视化:TUI 提供拓扑表与图视图,可检视项目、规范、Feed 与实例健康状态;
  • 会话发现与接管:rig discover 指纹化现有 tmux 会话,rig adopt 将其纳入托管;
  • 快照与恢复:rig down --snapshot 保存状态,rig up <name> 按名称恢复,并报告每个节点的结局(已恢复/重新初始化/等待决策/需关注/失败);
  • 跨智能体通信:rig send、rig broadcast、rig chatroom;
  • 手动输入保护:rig seat set-typing-guard 暂停向手工输入席位自动发送消息;
  • Slack 集成:通过 rig slack manifest 输出自建应用的清单;
  • 拓扑演进:rig grow、rig shrink、rig launch、rig remove。

每个智能体都运行在可附着、可直接操作的 tmux 会话中。

团队模板

  • starter:一个 builder 加一个 reviewer,适用于单次有界变更;同时默认使用 Claude Code 与 Codex;
  • workshop:lead、builder、QA、reviewer 组成的常驻团队,以 rig bundle 形式分发;
  • factory:七个席位(lead、advisor、build、QA、design、两个独立 reviewer),用于持续产品工作。

另外内置专家团队 code-review、research、pm,以及由专门智能体运维的 HashiCorp Vault 实例 secrets-manager。

架构

OpenRig 由本地守护进程、CLI、TUI、MCP 服务器组成,底层基于 tmux。React Web UI 处于维护模式。

CLI / TUI / MCP
      |
Hono HTTP 守护进程
      |
  领域服务
      |
  SQLite + tmux + 运行时适配器
  • CLI:面向人与智能体的命令集合,用于启动团队、检视状态、发送消息、管理上下文;
  • TUI:键盘、鼠标或命令栏操作,覆盖拓扑图、Spec、Project、Terminal、Feed、System 等视图;
  • MCP:暴露 rig_up、rig_ps、rig_send、rig_chatroom_send 等工具,使智能体能管理自身拓扑;
  • 运行时:原生 Claude Code 与 Codex 会话、终端节点,通过 RPC 运行器接入 Pi 与 Oh My Pi。

安装与运行

依赖 Node.js 22 或 24、tmux,支持 macOS 与 Linux;Windows 需使用 WSL2。一键安装脚本会校验 Node.js 与 npm、全局安装 @openrig/cli、执行 rig setup --dry-run 与 rig setup:

# 仅预览,不修改环境
curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.6.8/scripts/install.sh | sh -s -- --dry-run
# 实际安装
curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.6.8/scripts/install.sh | sh

也可手动分步:

npm install -g @openrig/cli
rig setup --dry-run   # 预览
rig setup             # 应用

安装完成后,启动守护进程并打开 TUI:

rig daemon start
rig terminal open saved:kernel --window

启动 starter 团队:

cd /path/to/your/repository
rig specs preview starter --kind rig
rig up starter --cwd . --plan    # 仅计划
rig up starter --cwd .          # 实际启动

向 builder 发送首个有界任务:

rig send dev-build@starter '实现某项具体改动。在队列中跟踪任务并返回其 ID。保持在本地、验证行为、由 dev-review 复核该候选版本、记录结果与试用方式。'
rig queue list --destination dev-build@starter --limit 1000

关键概念

  • RigSpec:声明式多智能体 harness 定义,YAML 格式,包含 Pod、成员、边、延续策略与文化文件;
  • AgentSpec:可复用的智能体蓝图,含技能、指引、钩子、profile 与启动契约;
  • Seat:团队中的稳定角色与地址(如 dev-build@starter),承载它的会话可以变化,但身份与上下文保持稳定;
  • Pod:共享指引与上下文的一组席位,每个智能体仍拥有独立上下文窗口;
  • Culture:rig 的 CULTURE.md(culture_file)定义协调准则,叠加在 OpenRig 默认文化之上;
  • RigBundle:携带 AgentSpec 与 SHA-256 完整性信息的可移植归档,可通过 GitHub 链接直接安装。

权限策略

默认情况下 rig setup 不向用户配置文件写入 rig 命令白名单。无权限策略、每席位选择或(对 Codex)命名 profile 的席位,按"团队默认"启动:Claude 可无询问执行普通 rig 命令、项目读取与常规测试,但 rig up、rig down 等生命周期命令仍会询问;Codex 额外将工作区与 pod 状态目录设为可写。

可通过以下命令设置经审计的每席位覆盖:

rig seat set-permissions <seat> --mode <mode> --reason <text>

可选模式:floor、full_bypass,或 inherit 清除覆盖。rig policy permissions list|show|current|apply 用于 rig 级别的策略配置。YOLO 默认关闭。

对系统所做的修改

rig setup 与运行时会写入实例状态、provider 集成与工作区文件,主要包括:

  • npm 安装:在 npm 全局目录下安装 rig 与 openrig-tui,并校验 Node.js 版本与 SQLite 模块加载;
  • rig setup:补齐缺失工具,向 ~/.tmux.conf 写入鼠标支持与回滚条目;默认安装 herdr(可用 --no-herdr 关闭),macOS 上可选 Ghostty;
  • 守护进程启动:在 OPENRIG_HOME(默认 ~/.openrig)下创建/更新实例状态、数据库与托管插件资源;向 ~/.claude/skills 与 ~/.agents/skills 植入发现技能与 rigs 技能;启用 Codex 时写入钩子配置与信任记录;
  • 席位启动与附着:创建 tmux 会话,注入席位身份与守护进程连接环境,预信任工作区,向 .codex/plugins/ 与 .openrig/ 等目录写入运行时资源;
  • Bundle 安装:将 bundle 文件写入指定目标,记录于 OPENRIG_HOME/bundle-audit.jsonl;
  • Provider 文件:Claude Code 写入工作区信任与 onboarding 记录,并按需更新 .claude/settings.local.json;Codex 写入 CODEX_HOME/config.toml、启用钩子、写入活动转发信任哈希。

建议在首次使用前备份 ~/.claude、~/.codex、~/.tmux.conf 等相关文件;rig setup --dry-run 只能预览 setup 阶段,不会预览后续启动的副作用。

摘要更新于 2026-10-12 02:45:48 · 原文 37926 字符 · md5 74d7ff0df6b7…