[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81606":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":12,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":13,"stars7d":12,"stars30d":12,"stars90d":13,"forks30d":13,"starsTrendScore":13,"compositeScore":14,"rankGlobal":8,"rankLanguage":8,"license":15,"archived":16,"fork":16,"defaultBranch":17,"hasWiki":18,"hasPages":16,"topics":19,"createdAt":8,"pushedAt":8,"updatedAt":20,"readmeContent":21,"aiSummary":22,"trendingCount":13,"starSnapshotCount":13,"syncStatus":23,"lastSyncTime":24,"discoverSource":25},81606,"Codex-Voice-Agent","maxrubin629\u002FCodex-Voice-Agent","maxrubin629",null,"TypeScript",24,3,1,0,39.41,"MIT License",false,"main",true,[],"2026-06-12 04:01:34","# Codex Voice Agent\n\n![Codex Voice Agent](.\u002Fdocs\u002Fassets\u002Fcodex-voice-agent-readme-banner.png)\n\nCodex Voice Agent is a local desktop app that lets you talk to Codex through OpenAI\nRealtime voice. Realtime handles the voice\u002Fcontrol layer; `codex app-server`\nowns local execution, approvals, questions, project state, and tool work.\n\n## Features\n\n- Compact voice window for speaking requests to Codex.\n- Project creation, resume, summarize, interrupt, and steer flows for\n  `codex app-server` turns.\n- Per-project workspaces stored under `~\u002FDocuments\u002FCodex Voice Agent Projects\u002F`.\n- Approval and tool-question forwarding between Codex, the UI, and the voice\n  layer.\n- Debug window for project state, chats, runtime status, events, pending\n  approvals, and manual send\u002Fsteer controls.\n\n## Requirements\n\n- Node.js and npm\n- Codex CLI on `PATH` with `codex app-server` support\n- OpenAI API key for Realtime voice\n\n## Setup\n\nInstall dependencies.\n\n```sh\nnpm install\n```\n\nConfigure an OpenAI API key in one of two ways.\n\n- Set `OPENAI_API_KEY` in the environment before launching the app.\n- Add the key from the app menu after launch. The app can store it through the\n  local key store.\n\nOptional Realtime settings:\n\n```sh\nexport OPENAI_REALTIME_MODEL=gpt-realtime-2\nexport OPENAI_REALTIME_VOICE=marin\nexport OPENAI_REALTIME_REASONING_EFFORT=low\n```\n\nThe app also exposes a Realtime model selector in Settings, with\n`gpt-realtime-2` and `gpt-realtime-1.5` available. GPT Realtime 2 is the default\nand supports minimal, low, medium, high, or xhigh reasoning effort for voice\nsessions.\n\nThe app uses OpenAI's ephemeral-token WebRTC path: the desktop main process\ncreates a Realtime client secret with the saved or environment API key, and the\nrenderer posts browser SDP to `\u002Fv1\u002Frealtime\u002Fcalls` with that short-lived secret.\nIt does not use the unified server-side multipart `\u002Fv1\u002Frealtime\u002Fcalls` sample.\n\n## Development\n\nRun the app in development mode.\n\n```sh\nnpm run dev\n```\n\nTypecheck.\n\n```sh\nnpm run typecheck\n```\n\nBuild.\n\n```sh\nnpm run build\n```\n\nPreview the built desktop app.\n\n```sh\nnpm run preview\n```\n\n## Project layout\n\n```text\nsrc\u002Fmain\u002F       Desktop main process, Codex bridge, Realtime secret creation,\n                project store, and orchestration.\nsrc\u002Fpreload\u002F    Context-isolated renderer bridge.\nsrc\u002Frenderer\u002F   React UI and browser-side Realtime client.\nsrc\u002Fshared\u002F     Shared TypeScript types.\n```\n\n## Notes\n\nThe voice layer should stay narrow. It passes spoken intent, status requests,\napproval answers, and steering instructions to Codex; it should not inspect the\ncomputer, infer local state, or perform the task itself.\n\n## License\n\nMIT. See [LICENSE](.\u002FLICENSE).\n","Codex Voice Agent 是一个本地桌面应用程序，允许用户通过OpenAI的实时语音技术与Codex进行交流。其核心功能包括紧凑的语音窗口用于发送请求、项目管理（如创建、恢复、总结等）、以及在Codex、用户界面和语音层之间转发审批和工具问题的能力。此外，还提供了一个调试窗口来查看项目状态、聊天记录等信息。该项目采用TypeScript编写，需要Node.js环境及Codex CLI的支持，并且需配置OpenAI API密钥以启用语音功能。适用于希望利用语音命令提高编程效率或希望通过更自然的方式与AI助手交互的开发者场景。",2,"2026-06-11 04:05:41","CREATED_QUERY"]