opencodex — โลคัลพร็อกซีที่ทำให้ใช้ LLM ใดก็ได้กับ Codex
(lidge-jun.github.io)Codex ใช้ได้เฉพาะโมเดลของ OpenAI เท่านั้น ถ้าอยากใช้ Claude ล่ะ? ถ้าอยากเขียนโค้ดด้วย GLM-5.2 ล่ะ? ก็ต้องรอให้ OpenAI เพิ่มให้เท่านั้น
opencodex คือโลคัลพร็อกซีที่มาแก้ปัญหานี้ มันคั่นอยู่ระหว่าง Codex กับผู้ให้บริการ LLM แล้วแปลโปรโตคอลแบบเรียลไทม์ ทั้งสตรีมมิง, การเรียกใช้เครื่องมือ, โทเค็นการให้เหตุผล, รูปภาพ — ทำงานได้ครบทั้งสองทิศทาง
แอป Codex, cli, sdk
จะแสดงอยู่ในตัวเลือกโมเดลได้ตามปกติ
และภายในหนึ่งเซสชันสามารถใช้ทั้ง GPT และโมเดลที่ลงทะเบียนไว้ได้ทั้งหมด
npm install -g @bitkyc08/opencodex
ocx init # 프로바이더 선택
ocx start # 프록시 시작
codex -m "anthropic/claude-opus-4-8" "이 버그 고쳐줘"
วิธีการทำงาน
Codex ใช้เฉพาะโปรโตคอลของตัวเองที่ชื่อ Responses API(/v1/responses) เท่านั้น LLM ส่วนใหญ่ไม่ได้รองรับสิ่งนี้ opencodex จะแปลให้ผ่านอะแดปเตอร์โปรโตคอล 5 แบบ (Anthropic Messages, Google Gemini, Azure, OpenAI passthrough, OpenAI-compatible Chat Completions) มีผู้ให้บริการมากกว่า 40 รายที่รองรับมาให้ในตัว
โมเดลที่ถูกทำ routing จะแสดงในตัวเลือกโมเดลของ Codex เหมือนเป็นโมเดลเนทีฟ เพียงระบุในรูปแบบ provider/model
สิ่งที่ยากระหว่างการสร้าง
การออกแบบพร็อกซีนั้นมีโอเพนซอร์สอยู่มากมาย เลยทำได้ไม่ยาก
แต่เพื่อให้ประสบการณ์ใช้งานแบบเนทีฟของ Codex จำเป็นต้องแยกวิเคราะห์ codex-rs อย่างจริงจัง
การแมป reasoning effort ชื่อ effort ของแต่ละผู้ให้บริการไม่เหมือนกัน GLM ใช้คำว่า "max" ขณะที่ Codex เรียกว่า "xhigh" ส่วน Kimi ปฏิเสธพารามิเตอร์นี้ไปเลย จึงต้องทำตารางแปลงแยกตามแต่ละโมเดล
ประวัติเซสชัน Codex จะเก็บ model_provider ของแต่ละเธรดไว้ใน DB พอเปลี่ยนมาใช้ opencodex เซสชันเดิมจะหายไปทั้งหมด จึงต้องเปิด SQLite โดยตรงและทำตัว migrator ที่เปลี่ยนแท็ก model_provider ตอน inject/restore พร้อมคงค่า mtime ของไฟล์ไว้เพื่อไม่ให้ลำดับการกลับมาใช้งานเพี้ยน
ไซด์คาร์ โมเดลที่ไม่ใช่ OpenAI จะใช้การค้นหาเว็บหรือการเข้าใจภาพไม่ได้ จึงทำ routing ฟีเจอร์นี้ผ่านไซด์คาร์ gpt-5.4-mini ด้วยการล็อกอิน ChatGPT เพื่อให้ Claude หรือ GLM ค้นเว็บจริงได้เช่นกัน
ปิดแล้วกลับเป็นเหมือนเดิม
กด ocx stop แล้วการตั้งค่า Codex, แคตตาล็อก, ประวัติเซสชันทั้งหมดจะถูกกู้คืนกลับเป็นต้นฉบับ ไม่มีไฟล์ตกค้าง ปุ่ม Stop ในแดชบอร์ดหรือ ocx service uninstall ก็ให้ผลเหมือนกัน
ลิขสิทธิ์แบบ MIT รองรับแบบเนทีฟบน macOS/Linux/Windows (ไม่ต้องใช้ WSL)
GitHub: https://github.com/lidge-jun/opencodex
npm:npm install -g @bitkyc08/opencodex
ยังไม่มีความคิดเห็น