codex-to-im 1.0.10 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -24
- package/README_CN.md +3 -24
- package/SKILL.md +67 -0
- package/agents/openai.yaml +4 -0
- package/config.env.example +5 -4
- package/dist/daemon.mjs +655 -157
- package/dist/ui-server.mjs +703 -123
- package/docs/codex-to-im-prd.md +3 -21
- package/docs/install-windows.md +7 -29
- package/package.json +3 -2
- package/references/setup-guides.md +1 -8
- package/references/usage.md +4 -33
- package/scripts/install-codex.sh +48 -56
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ The product is no longer centered around a Codex skill. The main path is:
|
|
|
10
10
|
4. Start the bridge in the background
|
|
11
11
|
5. Bind real desktop Codex threads to Feishu or Weixin chats
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Optional: if you want Codex to know it can send local files or images back to IM without relying on bridge-injected prompt text, install the bundled `codex-to-im` skill from the workbench.
|
|
14
14
|
|
|
15
15
|
## Project Origin
|
|
16
16
|
|
|
@@ -19,7 +19,7 @@ The current codebase is a consolidated continuation of two earlier repositories:
|
|
|
19
19
|
- `Claude-to-IM`
|
|
20
20
|
- `Claude-to-IM-skill`
|
|
21
21
|
|
|
22
|
-
`codex-to-im` is based on those two projects and has been reworked toward a single-package local app
|
|
22
|
+
`codex-to-im` is based on those two projects and has been reworked toward a single-package local app and shared-thread workflow.
|
|
23
23
|
|
|
24
24
|
Windows host installation guide: [docs/install-windows.md](D:/codex/Claude-to-IM-skill/docs/install-windows.md)
|
|
25
25
|
|
|
@@ -31,7 +31,6 @@ Windows host installation guide: [docs/install-windows.md](D:/codex/Claude-to-IM
|
|
|
31
31
|
- Weixin QR login flow
|
|
32
32
|
- Desktop session discovery from `~/.codex/sessions`
|
|
33
33
|
- Web-side binding updates for IM chats
|
|
34
|
-
- Optional Codex integration for opening `codex-to-im` or entering the Feishu handoff flow
|
|
35
34
|
|
|
36
35
|
## Install
|
|
37
36
|
|
|
@@ -190,8 +189,7 @@ This is closer to a full-power `code` workflow. It fits a controlled local proje
|
|
|
190
189
|
The channel pages also expose a “Use Markdown for bridge feedback” switch:
|
|
191
190
|
- enabled by default for Feishu
|
|
192
191
|
- disabled by default for WeChat
|
|
193
|
-
-
|
|
194
|
-
- does not affect raw Codex replies
|
|
192
|
+
- affects text sent through the bridge, including normal replies, shared-thread mirror messages, and system feedback such as `/h`, `/status`, and `/threads`
|
|
195
193
|
|
|
196
194
|
## Update
|
|
197
195
|
|
|
@@ -205,23 +203,6 @@ npm update -g codex-to-im
|
|
|
205
203
|
codex-to-im
|
|
206
204
|
```
|
|
207
205
|
|
|
208
|
-
## Optional Codex Integration
|
|
209
|
-
|
|
210
|
-
The repo still includes a lightweight optional integration under `SKILL.md`.
|
|
211
|
-
|
|
212
|
-
It is not required for the product to work.
|
|
213
|
-
|
|
214
|
-
If installed into `~/.codex/skills/codex-to-im`, it should only be used for two actions:
|
|
215
|
-
|
|
216
|
-
- Open `codex-to-im`
|
|
217
|
-
- Open the Feishu session-sharing entry for the current workflow
|
|
218
|
-
|
|
219
|
-
You can install that optional integration from the web UI, or with:
|
|
220
|
-
|
|
221
|
-
```bash
|
|
222
|
-
bash scripts/install-codex.sh --link
|
|
223
|
-
```
|
|
224
|
-
|
|
225
206
|
## Repo Layout
|
|
226
207
|
|
|
227
208
|
- `src/ui-server.ts` — local workbench UI and HTTP API
|
|
@@ -229,7 +210,6 @@ bash scripts/install-codex.sh --link
|
|
|
229
210
|
- `src/desktop-sessions.ts` — desktop thread discovery from Codex session files
|
|
230
211
|
- `src/session-bindings.ts` — binding summaries and web-side binding updates
|
|
231
212
|
- `src/lib/bridge/` — bridge runtime and IM channel routing
|
|
232
|
-
- `SKILL.md` — optional Codex integration only
|
|
233
213
|
- `docs/` — PRD and shared-thread design docs
|
|
234
214
|
|
|
235
215
|
## Development
|
|
@@ -246,6 +226,5 @@ Current product direction:
|
|
|
246
226
|
- Standalone local app first
|
|
247
227
|
- Web workbench first
|
|
248
228
|
- Shared Codex thread model first
|
|
249
|
-
- Codex integration is optional, not the primary installation path
|
|
250
229
|
|
|
251
230
|
[中文文档](README_CN.md)
|
package/README_CN.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
4. 在后台启动 bridge
|
|
11
11
|
5. 把真实的桌面 Codex thread 绑定到飞书或微信聊天
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
可选:如果你希望 Codex 在不依赖 bridge 注入提示词的前提下,知道“可以把本地图片/文件回发到 IM”,可以在工作台里安装附带的 `codex-to-im` skill。
|
|
14
14
|
|
|
15
15
|
## 项目来源
|
|
16
16
|
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
- `Claude-to-IM`
|
|
20
20
|
- `Claude-to-IM-skill`
|
|
21
21
|
|
|
22
|
-
现在的 `codex-to-im`
|
|
22
|
+
现在的 `codex-to-im` 是在这两个工程基础上继续演进的单包版本,重点调整成了本地应用和共享 thread 的形态。
|
|
23
23
|
|
|
24
24
|
Windows 主机安装说明见:[docs/install-windows.md](D:/codex/Claude-to-IM-skill/docs/install-windows.md)
|
|
25
25
|
|
|
@@ -31,7 +31,6 @@ Windows 主机安装说明见:[docs/install-windows.md](D:/codex/Claude-to-IM-
|
|
|
31
31
|
- 微信扫码登录
|
|
32
32
|
- 从 `~/.codex/sessions` 发现桌面会话
|
|
33
33
|
- 在网页中查看和切换 IM 绑定
|
|
34
|
-
- 可选的 Codex 集成,仅用于打开 `codex-to-im` 或进入飞书共享入口
|
|
35
34
|
|
|
36
35
|
## 安装
|
|
37
36
|
|
|
@@ -189,8 +188,7 @@ codex-to-im stop
|
|
|
189
188
|
通道页还支持“反馈使用 Markdown”开关:
|
|
190
189
|
- 飞书默认开启
|
|
191
190
|
- 微信默认关闭
|
|
192
|
-
-
|
|
193
|
-
- 不影响 Codex 原始回复内容
|
|
191
|
+
- 影响通过 bridge 发送到通道的文本反馈,包括普通回复、共享桌面线程镜像以及 `/h`、`/status`、`/threads` 这类系统反馈
|
|
194
192
|
|
|
195
193
|
## 更新
|
|
196
194
|
|
|
@@ -204,23 +202,6 @@ npm update -g codex-to-im
|
|
|
204
202
|
codex-to-im
|
|
205
203
|
```
|
|
206
204
|
|
|
207
|
-
## 可选 Codex 集成
|
|
208
|
-
|
|
209
|
-
仓库里仍然保留了一个很薄的可选集成,定义在 `SKILL.md`。
|
|
210
|
-
|
|
211
|
-
它不是必需的。
|
|
212
|
-
|
|
213
|
-
如果你把它装到 `~/.codex/skills/codex-to-im`,它只保留两个动作:
|
|
214
|
-
|
|
215
|
-
- 打开 `codex-to-im`
|
|
216
|
-
- 打开“共享当前会话到飞书”的入口
|
|
217
|
-
|
|
218
|
-
你可以在 Web UI 中安装这层可选集成,也可以手动执行:
|
|
219
|
-
|
|
220
|
-
```bash
|
|
221
|
-
bash scripts/install-codex.sh --link
|
|
222
|
-
```
|
|
223
|
-
|
|
224
205
|
## 仓库结构
|
|
225
206
|
|
|
226
207
|
- `src/ui-server.ts` — 本地工作台 UI 和 HTTP API
|
|
@@ -228,7 +209,6 @@ bash scripts/install-codex.sh --link
|
|
|
228
209
|
- `src/desktop-sessions.ts` — 从 Codex 会话文件发现桌面 thread
|
|
229
210
|
- `src/session-bindings.ts` — 绑定摘要与网页侧切换
|
|
230
211
|
- `src/lib/bridge/` — bridge 运行时与 IM 路由
|
|
231
|
-
- `SKILL.md` — 可选 Codex 集成,不是主产品
|
|
232
212
|
- `docs/` — PRD 与共享 thread 技术设计
|
|
233
213
|
|
|
234
214
|
## 开发
|
|
@@ -243,6 +223,5 @@ npm run build
|
|
|
243
223
|
- 先做独立本地应用
|
|
244
224
|
- 先做 Web 工作台
|
|
245
225
|
- 先做共享 Codex thread
|
|
246
|
-
- Codex 集成是可选增强,不是主安装路径
|
|
247
226
|
|
|
248
227
|
[English](README.md)
|
package/SKILL.md
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: codex-to-im
|
|
3
|
+
description: Use this skill when working through Codex-to-IM and you need Codex to send a local image or file back to the current IM chat. It teaches the attachment-send protocol and when to use it.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Codex-to-IM attachment sending
|
|
7
|
+
|
|
8
|
+
Use this skill only when the user is chatting through Codex-to-IM and wants you to send a generated or existing local artifact back to the IM chat.
|
|
9
|
+
|
|
10
|
+
## What this skill does
|
|
11
|
+
|
|
12
|
+
Codex-to-IM can send local files back to the chat after your reply. You trigger that by including one or more `<cti-send>...</cti-send>` blocks in your final answer.
|
|
13
|
+
|
|
14
|
+
Supported artifact kinds:
|
|
15
|
+
|
|
16
|
+
- `image`
|
|
17
|
+
- `file`
|
|
18
|
+
|
|
19
|
+
## Required format
|
|
20
|
+
|
|
21
|
+
Output valid JSON inside the block, with no markdown fence.
|
|
22
|
+
|
|
23
|
+
Single artifact:
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
<cti-send>
|
|
27
|
+
{"type":"image","path":"D:\\path\\to\\result.png","caption":"optional caption"}
|
|
28
|
+
</cti-send>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
or
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
<cti-send>
|
|
35
|
+
{"type":"file","path":"D:\\path\\to\\report.pdf","caption":"optional caption"}
|
|
36
|
+
</cti-send>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Multiple artifacts:
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
<cti-send>
|
|
43
|
+
{"items":[
|
|
44
|
+
{"type":"image","path":"D:\\path\\to\\result.png"},
|
|
45
|
+
{"type":"file","path":"D:\\path\\to\\report.pdf"}
|
|
46
|
+
]}
|
|
47
|
+
</cti-send>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Rules
|
|
51
|
+
|
|
52
|
+
- The `path` must be an absolute local path.
|
|
53
|
+
- The file must already exist before you emit the block.
|
|
54
|
+
- Keep normal user-facing explanation outside the `<cti-send>` block.
|
|
55
|
+
- Do not invent artifacts that were not actually created or found.
|
|
56
|
+
- If you are unsure whether the file exists, verify first.
|
|
57
|
+
- If the channel probably does not support the artifact well, explain that plainly instead of inventing a successful send.
|
|
58
|
+
|
|
59
|
+
## When to use
|
|
60
|
+
|
|
61
|
+
Use this protocol when the user asks you to:
|
|
62
|
+
|
|
63
|
+
- send a generated chart, diagram, screenshot, or edited image
|
|
64
|
+
- send a report, archive, patch, PDF, spreadsheet, or other output file
|
|
65
|
+
- send the final result as an attachment instead of only pasting text
|
|
66
|
+
|
|
67
|
+
Do not use it for ordinary text replies.
|
package/config.env.example
CHANGED
|
@@ -85,8 +85,8 @@ CTI_TG_CHAT_ID=your-chat-id
|
|
|
85
85
|
# Current Codex runtime note: thinking/progress can update live, but
|
|
86
86
|
# assistant body text may still arrive only at completion.
|
|
87
87
|
# CTI_FEISHU_STREAMING_ENABLED=true
|
|
88
|
-
# Use Markdown for
|
|
89
|
-
#
|
|
88
|
+
# Use Markdown for text sent through the bridge, including normal replies,
|
|
89
|
+
# shared-thread mirror messages, and system feedback such as /h or /status.
|
|
90
90
|
# CTI_FEISHU_COMMAND_MARKDOWN_ENABLED=true
|
|
91
91
|
|
|
92
92
|
# ── QQ ──
|
|
@@ -111,8 +111,9 @@ CTI_TG_CHAT_ID=your-chat-id
|
|
|
111
111
|
# only accepts WeChat-provided speech-to-text text and otherwise returns an error.
|
|
112
112
|
# (default false for safety in CLI setups)
|
|
113
113
|
# CTI_WEIXIN_MEDIA_ENABLED=false
|
|
114
|
-
# Use Markdown for
|
|
115
|
-
#
|
|
114
|
+
# Use Markdown for text sent through the bridge, including normal replies,
|
|
115
|
+
# shared-thread mirror messages, and system feedback such as /h or /status.
|
|
116
|
+
# Default is false for WeChat.
|
|
116
117
|
# CTI_WEIXIN_COMMAND_MARKDOWN_ENABLED=false
|
|
117
118
|
|
|
118
119
|
# ── Permission ──
|