Nontarak / guides
Herdr · Documentation

คุม AI agent หลายตัว
จากที่เดียว

Herdr เป็น terminal multiplexer ที่รัน coding agent หลายตัวพร้อมกัน แล้วให้คุณสั่งงาน อ่านผล และไล่สถานะได้จากคำสั่งเดียว — คู่มือนี้สรุปคำสั่งชุด herdr agent ที่ใช้บ่อยที่สุด

~/gun-wiki herdr agent prompt w3:p2 …

01 Herdr agent คืออะไร

Herdr รัน AI coding agent หลายตัวพร้อมกัน — ตัวละ pane — แล้วคอยติดตามสถานะ (idle / working / blocked) ให้เห็นในที่เดียว คุณจึงสั่งงานข้าม session ได้โดยไม่ต้องสลับหน้าต่างไปจ้องทีละตัว

รองรับ agent

  • Claude Code · Anthropic
  • Codex · OpenAI
  • Gemini / Antigravity · Google
  • Cursor
  • Devin
  • Cline
  • + agent อื่นในเทอร์มินัล

02 อ้างถึง agent (target)

คำสั่งเกือบทุกตัวขึ้นต้นด้วย target ซึ่งระบุได้ 2 แบบ:

ชื่อ agent — เช่น agy
สั้น จำง่าย · แต่ถ้ามีหลายตัวชื่อซ้ำจะกำกวม
pane id — เช่น w3:p2
รูปแบบ w{workspace}:p{pane} (เช่น w1:p0 = workspace 1 pane 0) — แนะนำเมื่อมี agent ชื่อซ้ำ

03 Lifecycle states

Herdr จัดสถานะ agent เป็น 5 แบบ — agent wait และ --until อ้างสถานะพวกนี้:

idle

พร้อมรับ input — ว่างแล้ว

working

กำลังทำงาน (เขียนโค้ด, คิด, compile)

blocked

ติด prompt — รอ approval หรือคำถามจากผู้ใช้

done

idle หลังงาน background เสร็จ

unknown

ยังจัดประเภทไม่ได้ (เพิ่งเปิด/output แปลก)

04 คำสั่ง agent

herdr agent list
ดู agent ทั้งหมด + สถานะ (output เป็น JSON)
herdr agent start <name> --kind codex|claude|gemini --pane <pane_id>
เปิด agent ใหม่ใน pane ที่ prompt ว่างอยู่
herdr agent prompt <target> <text> [--wait] [--until idle|working|blocked|done] [--timeout MS]
ส่ง prompt ให้ agent (encode Enter ให้อัตโนมัติ)
herdr agent send-keys <target> <key…>
ส่งปุ่ม UI เช่น escape, ลูกศร
herdr agent wait <target> --until <state>
รอจน agent เข้าสถานะที่ต้องการ
herdr agent attach <name> [--takeover]
เข้าไปคุม terminal ตรง ๆ (ออกด้วย ctrl+b q)
herdr agent explain <target>
อธิบายว่าทำไม detect สถานะออกมาแบบนี้
herdr agent rename <target> <label> | --clear
เปลี่ยนชื่อ agent (หรือล้างชื่อกลับ)

05 คำสั่ง pane

ใช้คู่กับคำสั่ง agent บ่อย ๆ — โดยเฉพาะตอนอ่านผลกลับ:

herdr pane read <pane_id> --source visible|recent [--lines N]
อ่านข้อความบนจอ pane
herdr pane run <pane_id> <command>
รัน shell command ใน pane
herdr pane send-text <pane_id> <text>
พิมพ์ข้อความดิบลง pane
herdr pane wait-output <pane_id> --match TEXT | --regex PATTERN
รอจนเจอข้อความ/แพตเทิร์นบนจอ

06 ตัวอย่าง workflow

สั่งข้าม session — จาก agent หนึ่ง ยิงงานให้อีก agent แล้วอ่านผลกลับ:

cross-session · herdr
# 1) ดู agent ที่รันอยู่
$ herdr agent list

# 2) ยิง prompt ให้ agent ที่ pane w3:p2 แล้วรอจนเสร็จ
$ herdr agent prompt w3:p2 "สรุป retro สัปดาห์นี้" --wait --until idle --timeout 120000

# 3) อ่านคำตอบกลับมา
$ herdr pane read w3:p2 --source recent --lines 30

ลำดับการทำงาน

  1. list — เช็กก่อนว่ามี agent ตัวไหนรันอยู่ และ pane id อะไร
  2. prompt … --wait --until idle — ส่งงานแล้วรอจนกลับเป็น idle (แปลว่าทำเสร็จ)
  3. pane read … --source recent — ดึง output ล่าสุดของ pane นั้นกลับมา

07 Tips & ข้อควรรู้

01
ทุกคำสั่งคืน JSON — ให้ capture id/pane จาก response จริง อย่าเดาเอง
02
ถ้า agent เป็น full-screen TUI (เช่น Claude Code) Herdr เลื่อนอ่าน scrollback ให้อัตโนมัติ (alternate-screen history reads) จึงไม่พลาด output ตอนท้าย
03
ติด hooks ด้วย herdr integration install <agent> เพื่อให้สถานะ authoritative (แม่นจาก agent ตรง ๆ) แทนการเดาจากหน้าจอ
04
งงว่าทำไมสถานะเป็นแบบนี้ ใช้ herdr agent explain <target> ให้มันอธิบายกฎที่ใช้ตัดสิน
05
ใช้ --wait --until idle คู่กันเสมอเวลาต้องรอ agent เสร็จก่อนทำขั้นถัดไป