[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80235":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":14,"stars30d":14,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":16,"rankGlobal":9,"rankLanguage":9,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":9,"pushedAt":9,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":15,"starSnapshotCount":15,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},80235,"CodexMobile","RNG2018-mlxg\u002FCodexMobile","RNG2018-mlxg","iPhone-first PWA bridge for using a local Codex setup over a private network.",null,"JavaScript",57,21,56,1,0,4.03,"MIT License",false,"main",true,[],"2026-06-12 02:03:59","# CodexMobile\n\nCodexMobile 是一个面向 iPhone 的 Codex PWA 客户端。它在电脑上启动一个轻量本地桥接服务，通过 Tailscale、局域网或其它私有网络，让手机可以访问并使用这台电脑上的 Codex 项目、会话和模型能力。\n\n这个项目适合个人使用：你可以在 iPhone 主屏像 App 一样打开它，切换 Codex 项目、查看线程、发送文字或语音消息、上传文件，并在手机上接收 Codex 的实时回复和执行状态。\n\n> 本项目不是公网 SaaS、多人控制台或远程桌面工具。建议只在可信私有网络中使用。\n\n## 界面演示\n\n| 项目抽屉 | 对话与模型选择 | 语音整理交给 Codex |\n| --- | --- | --- |\n| \u003Cimg src=\"docs\u002Fimages\u002Fios-drawer.png\" width=\"260\" alt=\"CodexMobile 项目抽屉\" \u002F> | \u003Cimg src=\"docs\u002Fimages\u002Fios-chat.png\" width=\"260\" alt=\"CodexMobile 对话界面\" \u002F> | \u003Cimg src=\"docs\u002Fimages\u002Fvoice-handoff.jpg\" width=\"260\" alt=\"语音对话整理任务后交给 Codex 执行\" \u002F> |\n\n## 功能特性\n\n- iPhone 优先的 PWA 界面，可添加到 iOS 主屏\n- 读取本机 Codex 项目和会话，支持项目切换、线程展开、重命名和删除\n- 新建对话、续聊已有线程，并通过 WebSocket 显示实时状态\n- 支持权限模式、模型选择和推理强度选择\n- 支持图片\u002F文件上传，文件保存在本机并将路径交给 Codex 使用\n- 支持语音输入：前端录音，后端转写后自动发送给 Codex\n- 支持实时语音对话：可以持续说想法，由 Realtime 模型即时回应\n- 支持“总结一下交给 Codex”：语音模型把口语想法整理成明确任务，确认后交给 Codex 执行\n- 支持语音朗读：优先 Edge Neural TTS，可回退 OpenAI 兼容 TTS 或 Windows 本地语音\n- 支持飞书文档、PPT、表格和云空间操作：通过本机 `lark-cli` 授权，以用户身份创建、读取和修改\n- 移动端任务进度更简洁：只显示创建文档、读取表格、验证结果等关键过程，隐藏命令生命周期噪音\n- 支持本地 SenseVoice\u002FFunASR 中文语音识别服务\n- 支持生成图片并在移动端展示\n- 支持 CLIProxyAPI Codex 额度查询\n- 支持浅色\u002F深色主题\n- 支持一次性配对码和本机设备 token，适合私有网络访问\n\n## 架构\n\n```text\niPhone PWA\n  |\n  | HTTPS \u002F WebSocket，建议走 Tailscale 或局域网\n  v\nCodexMobile Node.js 服务\n  |-- 读取 ~\u002F.codex\u002Fconfig.toml\n  |-- 读取 ~\u002F.codex\u002Fsessions\n  |-- 调用 @openai\u002Fcodex-sdk 发送和续聊\n  |-- 调用 OpenAI 兼容接口生成图片\n  |-- 调用本地 SenseVoice ASR 或 OpenAI 兼容转写接口\n  |-- 可选调用本机 lark-cli 操作飞书文档、PPT、表格和云空间\n  |-- 可选调用 CLIProxyAPI 管理接口查询 Codex 额度\n```\n\n## 环境要求\n\n- Node.js 20+\n- npm\n- 已配置好的本机 Codex 环境，默认读取 `~\u002F.codex`\n- 手机和电脑在同一私有网络中，例如 Tailscale 或局域网\n- 可选：Docker Desktop，用于本地 SenseVoice 语音识别\n- 可选：CLIProxyAPI，用于 OpenAI 兼容路由、图片生成或额度查询\n\n## 快速开始\n\n```powershell\ngit clone https:\u002F\u002Fgithub.com\u002FRNG2018-mlxg\u002FCodexMobile.git\ncd CodexMobile\nnpm install\nnpm run build\nnpm start\n```\n\n启动后在电脑浏览器打开：\n\n```text\nhttp:\u002F\u002F127.0.0.1:3321\n```\n\n手机访问时，建议先把电脑和 iPhone 接入 Tailscale 或同一个局域网，然后打开：\n\n```text\nhttp:\u002F\u002F\u003C电脑的私网 IP>:3321\n```\n\n第一次进入需要输入服务启动时打印的 6 位配对码。配对成功后，浏览器会保存设备 token，后续不需要每次重新输入。\n\n## HTTPS 与 iOS 语音权限\n\niOS Safari \u002F PWA 通常要求 HTTPS 才能稳定使用麦克风。你可以使用自己的证书、反向代理，或 Tailscale Serve 暴露 HTTPS 地址。\n\n示例：\n\n```powershell\n$env:CODEXMOBILE_PUBLIC_URL=\"https:\u002F\u002F\u003Cyour-device>.\u003Cyour-tailnet>.ts.net:3443\u002F\"\nnpm run start:env\n```\n\n如果你使用自签名证书，可以通过环境变量指定：\n\n```powershell\n$env:HTTPS_PFX_PATH=\"C:\\path\\to\\server.pfx\"\n$env:HTTPS_PFX_PASSPHRASE=\"change-me\"\n$env:HTTPS_ROOT_CA_PATH=\"C:\\path\\to\\root-ca.cer\"\nnpm run start:env\n```\n\n## 配置\n\n复制示例配置：\n\n```powershell\nCopy-Item .env.example .env\nnpm run start:env\n```\n\n常用配置项：\n\n- `HOST`：服务监听地址，默认 `0.0.0.0`\n- `PORT`：HTTP 端口，默认 `3321`\n- `HTTPS_PORT`：HTTPS 端口，默认 `3443`\n- `CODEXMOBILE_PUBLIC_URL`：手机访问用的公开私网地址\n- `CODEXMOBILE_PAIRING_CODE`：可选固定 6 位配对码；不设置则启动时随机生成\n- `CODEX_HOME`：Codex 配置目录，默认 `~\u002F.codex`\n- `CODEXMOBILE_HOME`：CodexMobile 本地状态目录，默认 `.codexmobile\u002Fstate`\n- `CODEXMOBILE_FEISHU_APP_ID` \u002F `CODEXMOBILE_FEISHU_APP_SECRET`：可选飞书应用凭证，用于 `lark-cli` 文档集成\n- `LARK_APP_ID` \u002F `LARK_APP_SECRET`：可选飞书凭证别名，供 `lark-cli` 和 Codex 子进程读取\n- `CLIPROXYAPI_CONFIG`：CLIProxyAPI 配置文件路径\n- `CLIPROXYAPI_API_KEY` \u002F `CLI_PROXY_API_KEY`：OpenAI 兼容接口密钥\n- `CODEXMOBILE_CLIPROXY_MANAGEMENT_URL`：CLIProxyAPI 管理接口地址\n- `CODEXMOBILE_CLIPROXY_MANAGEMENT_KEY`：CLIProxyAPI 管理密钥\n\n不要提交 `.env`、`.codexmobile`、证书、日志、上传文件、生成图片或本地认证数据。\n\n## 本地中文语音识别\n\nCodexMobile 支持本地 SenseVoice\u002FFunASR 语音识别。第一版默认使用 `iic\u002FSenseVoiceSmall`，更适合中文、粤语、口音和短指令场景。\n\n启动本地 ASR 服务：\n\n```powershell\nnpm run asr:start\n```\n\n默认接口：\n\n```text\nhttp:\u002F\u002F127.0.0.1:8000\u002Fv1\u002Faudio\u002Ftranscriptions\n```\n\n语音数据不会保存为聊天附件。服务端只在内存中处理上传音频；如果模型推理必须落临时文件，会在请求结束后立即删除。\n\n相关配置：\n\n- `CODEXMOBILE_LOCAL_TRANSCRIBE_BASE_URL`\n- `CODEXMOBILE_TRANSCRIBE_MODEL`\n- `CODEXMOBILE_ASR_DEVICE`\n- `CODEXMOBILE_ASR_PORT`\n\n## 图片生成\n\n图片生成使用 OpenAI 兼容接口。你可以通过 CLIProxyAPI 或其它兼容服务提供图片模型。\n\n相关配置：\n\n- `CODEXMOBILE_IMAGE_BASE_URL`\n- `CODEXMOBILE_IMAGE_API_KEY`\n- `CODEXMOBILE_IMAGE_MODEL`\n- `CODEXMOBILE_IMAGE_TIMEOUT_MS`\n\n生成的图片默认保存到 `.codexmobile\u002Fgenerated`，不会进入 Git。\n\n## CLIProxyAPI 额度查询\n\n如果本机配置了 CLIProxyAPI 管理接口，CodexMobile 可以在 iPhone 抽屉中查询 Codex 额度。\n\n相关配置：\n\n- `CODEXMOBILE_CLIPROXY_MANAGEMENT_URL`\n- `CODEXMOBILE_CLIPROXY_MANAGEMENT_KEY`\n- `CLIPROXYAPI_CONFIG`\n\n返回给前端的数据会脱敏，不会返回 access token 或完整密钥。\n\n## 常用脚本\n\n- `npm run build`：构建 PWA 到 `client\u002Fdist`\n- `npm start`：启动 API、WebSocket 和构建后的 PWA\n- `npm run start:env`：读取 `.env` 后启动\n- `npm run start:bg`：后台启动服务，日志写入 `.codexmobile`\n- `npm run asr:start`：构建并启动本地 SenseVoice ASR Docker 容器\n- `npm run smoke`：检查本机 `\u002Fapi\u002Fstatus`\n\n## 私有网络部署建议\n\n推荐方式：\n\n1. 电脑和 iPhone 都安装 Tailscale。\n2. 电脑启动 CodexMobile。\n3. 使用 Tailscale IP 或 Tailscale Serve HTTPS 地址访问。\n4. 第一次访问时输入配对码。\n5. 在 iPhone Safari 中选择“添加到主屏幕”。\n\n不建议直接把 CodexMobile 暴露到公网。\n\n## 安全说明\n\n- 配对 token 存储在 `.codexmobile\u002Fstate`\n- 上传文件和生成图片存储在 `.codexmobile`\n- `.env.example` 只包含占位配置，不包含真实密钥\n- `.gitignore` 已排除 `.env`、`.codexmobile`、证书、日志、构建产物和依赖目录\n- CLIProxyAPI \u002F OpenAI key 应通过环境变量或本地配置文件提供\n- 本项目默认按单用户、私有网络场景设计\n\n## License\n\nMIT\n","CodexMobile 是一个面向 iPhone 的渐进式 Web 应用 (PWA)，允许用户通过私有网络访问并使用本地 Codex 项目的功能。其核心功能包括项目和会话管理、实时对话与模型交互、语音输入及转写、图片生成与展示，以及对飞书文档的集成操作等。技术上，该项目基于 JavaScript 构建，采用 WebSocket 实现移动端与桌面端之间的高效通信，并支持多种语音识别服务以提高用户体验。CodexMobile 适用于需要在个人设备上便捷访问本地 AI 模型能力的场景，特别是当用户希望在移动环境中继续完成复杂任务或进行创意工作时。由于涉及敏感数据处理，建议仅在安全可控的私有网络环境下部署使用。",2,"2026-06-11 03:59:46","CREATED_QUERY"]