Skip to content

Repository files navigation

Iris

Iris 是一个独立运行在 Windows 本机的 QQ C2C 私聊入口。它把可信 owner 的命令转为 HYPERION/SELENE 的最小本机操作,或直接启动官方 Codex CLI 在指定工作区推进项目。

QQ owner 私聊 -> Iris -> HYPERION / SELENE 本机接口
                 Iris -> Codex CLI -> 指定项目工作区

没有中转网关或公网控制面。Iris 不开放端口,不读取 HYPERION 的原始归档, 不会把 QQ 输入交给 PowerShell、cmd 或任意 shell。

能做什么

  • 写入日记和每日状态,查看或完成 HYPERION 任务。
  • 查询人物、SELENE 时间线、AI 通道与 HYPERION 概览。
  • 从 QQ 向 Codex 提交明确的项目指令,并在完成时收到最终文本结果。
  • 选择后续指令要续接的 Codex CLI 会话。

Iris 只接受一个可信 C2C owner,群聊及陌生私聊全部忽略。

Hermes 接入

Iris 已支持接入本机 Hermes Agent。向 QQ 发送 hermes <指令>(或简写 hm <指令>)即可执行任务,完成结果会返回同一个私聊;发送 hermes statushermes sessionshermes use <序号>hermes stop 可查看、切换和停止任务。Hermes 默认从系统 PATH 查找,也可以在 .env 中用 IRIS_HERMES_ENTRY 指定 hermes.exe 的完整路径。

Windows 命令行安装

在 PowerShell 中执行。首次安装 winget 包后请重新打开 PowerShell,再继续执行后续命令:

winget install Git.Git
winget install OpenJS.NodeJS.LTS
git clone https://github.com/bakahuiii/Iris.git
cd Iris
npm install
Copy-Item .env.example .env
npm start

首次启动前仍需按下方说明填写 .env 中的 QQ Bot、owner、HYPERION 和 Codex 配置。

首次配置

前置条件:

  1. Node.js 22.12 或更高版本。
  2. QQ 开放平台 Bot,已开通 C2C 私聊消息能力。
  3. 正在运行的 HYPERION 本机服务,默认 http://127.0.0.1:8787
  4. 已登录的官方 Codex CLI:在 PowerShell 运行 codex --version 应有输出。
cd <IRIS_ROOT>
npm install
Copy-Item .env.example .env

在本机 .env 填写自己的值:

QQBOT_APP_ID=你的AppID
QQBOT_APP_SECRET=你的AppSecret
QQBOT_OWNER_OPENID=你的OpenID

HYPERION_API=http://127.0.0.1:8787

# Iris 通过 Codex CLI 工作的唯一写入范围。
IRIS_CODEX_WORKSPACE=<项目根目录>

# 可选。指定后优先续接该 Codex CLI 会话;也可在 QQ 中选取。
IRIS_CODEX_SESSION_ID=

# 可选。仅当 Codex CLI 不在默认 npm 位置时填写 bin/codex.js 的绝对路径。
IRIS_CODEX_ENTRY=

.env.iris-state.json 和临时的 Codex 结果文件都被忽略,不能提交或发送给他人。

Owner 绑定

推荐填写 QQBOT_OWNER_OPENID。它是 QQ OpenID,不一定等于可见 QQ 号。

若留空,第一位向 Iris 发送 C2C 私聊的人会成为本机 owner,写入 .iris-state.json。之后其它 sender 一律被拒绝。只有在你能保证第一条私聊来自自己 时才使用此方式。

启动

先启动 HYPERION,再运行:

cd <IRIS_ROOT>
npm start

在 QQ 中发送 帮助helph。开发时可运行 npm run dev;同一台机器只能保留 一个 Iris 进程,避免重复接收 QQ 消息。

命令

命令 作用 示例
帮助 / help / h 显示命令 h
日记 / diary / d <内容> 追加一条带当前时间的日记 d 今天把导入整理完了
状态 / status / s <字段> 保存当天状态快照 `s 3 7.5 药:减 酒:少
任务 / task / t 查看待完成任务 task
完成 / done / c <序号> 完成任务 done 1
人物 / people / p [名称] 查看人物摘要 p 张三
SELENE / se 查看粗粒度 SELENE 摘要 se
通道 / channels / ai 查看 AI 通道占用 channels
概览 / summary / o 查看 HYPERION 概览 summary
codex / iris / cx <指令> 让 Codex 推进工作区项目 iris 读取日志并修复导入测试
codex status / sessions 查看 Iris 任务和可续接会话 codex sessions
codex use <序号> 切换续接会话 codex use 2
codex stop 终止 Iris 正在等待的 Codex 任务 codex stop

状态 的格式为:

状态 <心情1-5> [睡眠小时] [药:是/否/减/未知] [酒:无/少/多/未知] [做:主要事情] [| 一句话]

同一日重复发送 状态 会更新当天状态;日记 总是追加新记录。

Codex 直接控制

发送 iris <指令> 时,Iris 使用没有 shell 的参数向量运行:

codex -C <IRIS_CODEX_WORKSPACE> -s workspace-write -a never exec ...

workspace-write 将模型的文件写入限制在你配置的项目工作区,never 的含义是:这条 owner 在 QQ 中明确发出的指令无需再等待终端确认。请把实际目标写清楚,例如:

iris 阅读最近日志,定位导入失败原因,修复并运行相关测试;不要提交或推送。

Iris 立即确认已提交,Codex 结束后再向同一 C2C 私聊发送最终可见文本。一次只运行一项 Iris 发起的 Codex 工作,以防多个任务同时修改同一项目。

codex sessions 读取本机 Codex CLI 的 session_index.jsonl,只显示会话编号、名称和 时间,不读取或发送任何聊天正文。codex use <序号> 会记住会话 id;后续指令使用 codex exec resume <id> 续接它。未显式选择会话时,Iris 创建新会话并在首次完成后记住它, 不会擅自把新指令投进历史对话。

这不是桌面 UI 自动化:Iris 不模拟点击、不抓取屏幕,也不插入到一个正打开的桌面标签页。 它直接调用 Codex CLI,以同一 Windows 用户的 Codex 登录态在指定项目目录完成工作。

隐私和安全边界

Iris 可读取:

  • HYPERION 的去敏任务、人物、SELENE、AI 调度摘要;
  • Codex CLI 会话索引中的 id、名称和更新时间。

Iris 可写入:

  • HYPERION 日记、当天状态、现有任务完成状态;
  • IRIS_CODEX_WORKSPACE 内由你明确下达的 Codex 工作结果。

Iris 不会读取或传输:

  • 原始聊天归档、完整 HYPERION 快照、人物证据、精确位置;
  • QQ AppSecret、Codex 登录凭据、API Key、Codex 会话正文;
  • 任何 shell 命令、PowerShell 脚本或未受控工作区路径。

不要把 HYPERION 的 8787 端口暴露到局域网或公网,也不要将 .env.iris-state.json 或 Codex 配置目录上传到 Git。

常见问题

“Iris 无法连接本机 Codex”

在同一 Windows 用户的 PowerShell 执行:

codex --version
codex login

确认 .envIRIS_CODEX_WORKSPACE 指向实际存在的项目目录。若 CLI 是自定义位置, 填写 IRIS_CODEX_ENTRY,其值必须是 bin/codex.js 的绝对路径。

Iris 没有回应

确认 Iris 进程仍在运行、消息为 C2C 私聊、QQ Bot 已开通 C2C 权限,并且 sender 是配置或 首次绑定的 owner。群聊不会触发任何操作。

续接了错误会话

发送 codex sessions 查看编号,再发送 codex use <序号>。若要完全重置本机选择, 关闭 Iris 后删除项目根目录中的 .iris-state.json;这只删除 owner/通知/会话选择, 不会删除 HYPERION 数据或 Codex 会话。

文档与开发

<IRIS_ROOT>
├─ src/
│  ├─ index.mjs       # QQ 生命周期、owner 保护、异步结果回传
│  ├─ commands.mjs    # 中英文/简写命令路由
│  ├─ codex.mjs       # 官方 Codex CLI 直接桥接,无 shell
│  ├─ hyperion.mjs       # HYPERION 回环 API 客户端
│  └─ state.mjs       # 本机 owner、通知、会话选择
├─ tests/
├─ .env.example
└─ .iris-state.json   # 本机私有状态,忽略

About

本机 QQ 私聊桥接器,统一接入 HYPERION、SELENE、Codex 与 Hermes。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages