วิธีใช้งาน
คำสั่ง
bash
orch run "เพิ่ม endpoint health check" # รันในโฟลเดอร์ปัจจุบัน
orch run --cwd ~/code/app "แก้ test ที่พัง"
orch run --context lean "แก้ typo ใน README" # ข้าม hooks, plugins และ skills ระดับผู้ใช้
orch run --team standard "เพิ่ม test ให้ clamp()" # developer, tester, reviewer (ดู Roles)
orch status # cooldown และงานล่าสุด
orch init # สร้าง ~/.orch/config.yaml ถ้ายังไม่มี
orch daemon start # ไม่จำเป็น เพราะเปิดเองเมื่อต้องใช้
orch daemon stop # ต้องสั่งหลังแก้ config.yaml
orch usage --since 7d --by model # ยอดโทเค่นจาก ledgerorch runพิมพ์คำตอบสุดท้ายของเอเจนต์ (เอเจนต์ที่ตั้งoutput: textจะสตรีมสด) และจบด้วย exit code ไม่เป็นศูนย์ถ้าทั้งสองตัวล้ม เมื่อสลับเอเจนต์จะเห็นorch: switched agent, finished with <agent>ที่ stderrorch statusแสดงแต่ละเอเจนต์เป็นavailableหรือcooling down, Nm leftตามด้วยงานล่าสุด งานที่ใช้ model จาก rule จะมีชื่อ model ในวงเล็บเหลี่ยม- สถานะอยู่ที่
~/.orch/state.json(cooldown และงานล่าสุด 50 รายการ) เปลี่ยนโฟลเดอร์ด้วยORCH_HOME
รายการคำสั่งทั้งหมดสร้างจากโค้ดโดยตรง ดูที่ CLI reference
Roles
รันงานผ่าน role เฉพาะทางแทนการเรียกครั้งเดียวแบบทั่วไป orch run ธรรมดาไม่เปลี่ยน
bash
orch run --role reviewer "review the last commit" # role เดียว
orch run --team standard "เพิ่ม test ให้ clamp()" # ทีมที่ตั้งชื่อไว้
orch run --roles developer,tester "แก้บั๊กใน parser.ts" # รายการของคุณ ตามลำดับ
orch run --team standard --dry-run "เพิ่ม test ให้ clamp()" # แสดงแผน ไม่เสียโทเค่น
orch run --auto "แก้ typo ใน README" # เลือก role ให้ (ดู Roles)
orch explain "แก้ typo ใน README" # --auto จะเลือก role อะไร เพราะอะไร--role,--rolesและ--teamใช้ร่วมกันไม่ได้ ส่วน--dry-run,--require-codexและ--keep-goingใช้ได้เมื่อมีตัวใดตัวหนึ่งข้างต้นเท่านั้น ถ้าไม่มี orch จะปฏิเสธแทนการเมิน--autoเลือก role จาก prompt (ไม่เรียก model) ส่วน--no-autoปิดauto.enabledในรันเดียว--autoใช้ร่วมกับ--role,--rolesหรือ--teamไม่ได้ และorch explain "<prompt>"แสดงการเลือกโดยไม่รัน--dry-runแสดง role เอเจนต์ของมัน และจำนวนการเรียก model โดยไม่รันอะไร--require-codexหยุดก่อนเริ่มเมื่อมี role ที่ต้องใช้ Codex และ Codex ไม่พร้อม ถ้าไม่ใส่ role นั้นจะถูกข้าม--keep-goingรัน role ที่เหลือต่อหลังมี role ล้ม ค่าเริ่มต้นทีมจะหยุด--only claudeหรือ--only codexรันงานกับเอเจนต์ตัวเดียว (single mode) orch จัดงานเป็น tier small, medium หรือ large ด้วยคีย์เวิร์ด (ไม่เรียก model) แล้วใช้ model และ effort ของเอเจนต์นั้นตาม tier ไม่มี failover ถ้าล้มหรือติด cooldown จะรายงานตามจริง ใช้ร่วมกับ--role,--roles,--team,--autoหรือ--dry-runไม่ได้orch explain --only claude "<prompt>"แสดง tier และ model โดยไม่รัน ดู Tiers--ปิดส่วน option: ทุกอย่างหลังจากนั้นคือ prompt แม้เป็นคำที่ขึ้นต้นด้วย--(orch run -- "explain what --force does")- การรันแบบ team พิมพ์ความคืบหน้าหนึ่งบรรทัดต่อ role ที่ stderr (
orch: developer: started (claude),orch: developer: ok) คำตอบยังไปที่ stdout --sequentialรันทีละ role โดยค่าเริ่มต้น role อ่านอย่างเดียวที่อยู่ติดกัน (เช่นreviewerกับsecurity) รันขนานกัน ซึ่งประหยัดเวลาแต่ไม่ประหยัดโทเค่น
ดู Roles สำหรับหน้าที่ของแต่ละ role, handoff และไฟล์ที่บันทึก
Editor และแอปแชท
bash
orch mcp-config vscode --write # หรือ cursor, claude-desktop; ถ้าไม่ใส่ --write จะแค่พิมพ์orch mcp-config <vscode|cursor|claude-desktop> พิมพ์ entry ของ MCP และไฟล์ที่ต้องใส่ --write เพิ่มให้โดยไม่แตะ server อื่น ดู Editor และแอปแชท
การใช้งานและค่าใช้จ่าย
orch บันทึกทุก attempt ของเอเจนต์ลง ~/.orch/usage.jsonl (เก็บ 90 วัน) และอ่านจำนวนโทเค่นจาก JSON output ของเอเจนต์
bash
orch usage # 24 ชั่วโมงล่าสุด แยกตามเอเจนต์
orch usage --since 7d --by model # 7 วันล่าสุด แยกตาม model
orch usage --by context # เทียบ context preset
orch usage --by role # ต้นทุนของแต่ละ roletasksนับจำนวนงานที่ต่างกัน (failover ยังนับเป็นงานเดียว และการรัน team ทั้งชุดนับเป็นหนึ่งงาน) ส่วนtokensรวมทุก attempt ของงานเหล่านั้น รวมครั้งที่ล้มก่อน failover- ตัวเลขโทเค่นคือ billable tokens: input ที่ไม่รวม cache read บวก output (reasoning รวมอยู่ใน output แล้ว) เป็นค่าประมาณไว้ติดตามโควต้า ไม่ใช่การนับของผู้ให้บริการ
- Claude รายงานค่าใช้จ่ายเป็น USD ด้วย ส่วน Codex รายงานเฉพาะโทเค่น
orch statusแสดงยอด 24 ชั่วโมงล่าสุดต่อเอเจนต์ และผลของ MCPorch_runปิดท้ายด้วยtokens=<n>(โทเค่นที่คิดเงินได้ของทุก attempt)- เอเจนต์ถูกเรียกในโหมด JSON (
--output-format jsonของ Claude,--jsonของ Codex) ดังนั้นorch runจะพิมพ์เฉพาะคำตอบสุดท้ายหนึ่งครั้งเมื่อเอเจนต์ทำงานเสร็จ
จาก Claude Code และ Codex (MCP)
bash
claude mcp add orch -- orch-mcp
codex mcp add orch -- orch-mcpถ้า Codex ของคุณไม่มี codex mcp add ให้เพิ่มใน ~/.codex/config.toml:
toml
[mcp_servers.orch]
command = "orch-mcp"
tool_timeout_sec = 1800 # ค่าเริ่มต้นของ Codex สั้นเกินไปสำหรับงานจริงTools:
orch_run({ prompt, cwd?, context?, role?, roles?, team?, auto?, dryRun?, requireCodex?, keepGoing? })รันงานและคืนผลของเอเจนต์ ตามด้วยบรรทัด[orch] status=... agent=... failedOver=...ค่าcwdต้องเป็นโฟลเดอร์ที่มีอยู่จริงorch_status()คืน cooldown และงานล่าสุดเป็น JSON
การยกเลิกคำสั่งจะหยุดเอเจนต์ที่กำลังรันด้วย
งานหนึ่งงานทำงานอย่างไร
- เลือก: rule แรกที่
matchตรงกับ prompt เลือกเอเจนต์ (และmodel/effort) ถ้าไม่ตรงใช้defaultAgentข้ามเอเจนต์ที่พักอยู่ - รัน: เอเจนต์เริ่มแบบ headless (
claude -p,codex exec) ในโฟลเดอร์เป้าหมาย - สลับหนึ่งครั้ง: ถ้าออกด้วยค่าไม่เป็นศูนย์ ส่งให้อีกตัว เฉพาะเจอ rate limit เท่านั้นที่ตัวแรกถูกพัก จนถึงเวลา reset ในข้อความ (ถ้ามี) ไม่งั้นใช้
defaultCooldownSecส่วน login หมดอายุจะบอกวิธีแก้และไม่พัก - ส่งต่อแบบประหยัด: เอเจนต์ตัวที่สองได้ prompt เดิมและ
git statusแนบ diff เต็มเมื่อไม่เกิน 4000 ตัวอักษร ถ้าใหญ่กว่านั้นแนบgit diff --statให้เอเจนต์อ่านไฟล์เอง และขอสรุปจากตัวแรกเฉพาะเมื่อมันล้มธรรมดา - กันวนซ้ำ: เอเจนต์ที่ orch เรียกจะเรียก orch ซ้ำไม่ได้ (
ORCH_DEPTH)