แก่นของเรื่อง
ซอฟต์แวร์ส่วนใหญ่สร้างมาให้คนคลิก แต่เอเจนต์ AI ทำงานกับคำสั่งข้อความที่มีโครงสร้างได้แม่นกว่า CLI-Anything จึงสร้างชั้นคำสั่ง (CLI) ครอบซอฟต์แวร์เดิม โดยคำสั่งเหล่านั้นเรียกโปรแกรมจริงอยู่เบื้องหลัง
แนวคิดหลัก
- ซอฟต์แวร์เดิมไม่ต้องถูกเขียนใหม่ และไม่ต้องมี API ให้เรียก
- เอเจนต์สั่งผ่านคำสั่งและรับผลเป็น JSON แทนการดูภาพหน้าจอแล้วเดาตำแหน่งปุ่ม
ทำไมจึงได้ผล
| ขั้นของเหตุผล |
อธิบาย |
| 1 |
GUI ต้องอาศัยภาพและพิกัด ซึ่งเปลี่ยนตามธีม ขนาดหน้าจอ และเวอร์ชัน |
| 2 |
คำสั่ง CLI มีชื่อ พารามิเตอร์ และผลลัพธ์ที่คงที่ เอเจนต์ทำซ้ำและตรวจผลได้ |
| 3 |
ตัว CLI เรียกแบ็กเอนด์จริง ผลงานที่ได้จึงเป็นไฟล์จริงจากโปรแกรมนั้น ไม่ใช่ของจำลอง |
| 4 |
ชุดทดสอบที่สร้างไปพร้อมกันช่วยจับกรณีที่คำสั่งทำงานผิด |
20% ที่สำคัญที่สุดในทางปฏิบัติ
| ต้องรู้ก่อน |
รอได้ |
pip install cli-anything-hub แล้ว cli-hub install <name> |
รายละเอียดของแต่ละแพลตฟอร์มเอเจนต์ |
แฟล็ก --json สำหรับเอเจนต์ |
การปรับแต่ง REPL |
| ต้องติดตั้งซอฟต์แวร์ต้นทางด้วยสำหรับ CLI ที่เรียกแบ็กเอนด์จริง |
การเขียน CLI ใหม่ด้วยปลั๊กอิน 7 เฟส |
| ดูผลการทดสอบของ CLI นั้นก่อนใช้งานจริง |
การส่ง PR เข้า hub |
ช่วยให้ดีขึ้นอย่างไร
| สถานการณ์ |
ไม่มีเครื่องมือ |
มีเครื่องมือ |
วัดอย่างไร |
หลักฐาน |
| เอเจนต์ใช้โปรแกรมที่ไม่มี API |
ต้องควบคุมผ่านภาพหน้าจอ |
เรียกคำสั่ง CLI ได้ตรง |
อัตราสำเร็จของงานเดียวกันก่อนและหลัง |
ตีความ |
| ติดตั้ง CLI ที่มีคนสร้างไว้แล้ว |
ต้องสร้างเอง |
cli-hub install <name> |
เวลาตั้งแต่เริ่มจนสั่งงานครั้งแรก |
อ่านจาก repo (2026-10-16) ว่ามีคำสั่งนี้ ส่วนเวลายังไม่ทดสอบ |
| ความมั่นใจว่า CLI ทำงานถูก |
ไม่มีชุดทดสอบ |
มีชุดทดสอบ unit และ E2E ต่อซอฟต์แวร์ |
จำนวนเทสต์ที่ผ่าน |
อ่านจาก repo และจากภาพ (2,461 passing) แต่ตัวเลขไม่ตรงกันเอง ดูหัวข้อความเสี่ยง |
| ผลลัพธ์ที่เอเจนต์ใช้ต่อ |
ข้อความอิสระ |
JSON ที่มีโครงสร้าง |
ส่งผลเข้าขั้นตอนถัดไปได้โดยไม่ต้องแปลงเอง |
อ่านจาก repo ว่ามี --json ส่วนประโยชน์ที่ได้ยังไม่ทดสอบ |
สิ่งที่เห็นในหน้าจอ
| องค์ประกอบ |
ข้อความ |
ความหมาย |
| หัวข้อ |
CLI-Anything: Making ALL Software Agent-Native |
เป้าหมายคือทำให้ซอฟต์แวร์ทุกตัวเอเจนต์ใช้ได้ (จากภาพ) |
| ป้าย 1 |
GitHub Trending: Repository of the Day #1 |
ติดอันดับ 1 ของวัน (จากภาพ) |
| ป้าย 2 |
GitHub Top Repository: Global Rank #479 |
อันดับรวมของ GitHub ที่แสดงในภาพ |
| สโลแกน |
Today's Software Serves Humans. Tomorrow's Users will be Agents. |
ผู้ใช้ซอฟต์แวร์ในอนาคตคือเอเจนต์ |
| ย่อหน้า CLI-Hub |
pip install cli-anything-hub แล้ว cli-hub install <name> |
วิธีเรียกดูและติดตั้ง CLI ที่ชุมชนสร้าง |
| See Demos |
AI agents ใช้ CLI ที่สร้างขึ้นสร้างงานจริง |
ตัวอย่างงาน CAD, ฉาก 3D, แผนภาพ, เกมเพลย์, คำบรรยาย |
| Become a Contributor |
ส่งคำขอสร้าง CLI ใหม่หรือเป็นผู้ร่วมพัฒนา |
ช่องทางร่วมพัฒนาและขอ CLI |
| ป้ายสถานะ |
Quick Start 5 min, Tests 2,461 passing, arXiv:2606.03854, Apache 2.0 |
ข้อมูลสรุปของโปรเจกต์ |
| ป้ายเวอร์ชัน |
python ≥3.10, click ≥8.0 |
ข้อกำหนดขั้นต่ำ |
| ป้ายคุณภาพ |
coverage unit + e2e, output JSON + Human |
ทดสอบ 2 ระดับ และมี 2 รูปแบบผลลัพธ์ |
แท็บของหน้า GitHub ในภาพแสดงรายการใบอนุญาตชื่อหนึ่ง แต่ README ที่อ่านจาก repo ระบุ Apache License 2.0 ให้ถือตาม repo
CLI-Hub: ตัวจัดการแพ็กเกจของ CLI
CLI-Hub คือที่รวม CLI ให้ค้นหา ติดตั้ง และจัดการแบบเดียวกับตัวจัดการแพ็กเกจ (อ่านจาก repo, 2026-10-16)
pip install cli-anything-hub
cli-hub list
cli-hub search <query>
cli-hub info <name>
cli-hub install <name>
cli-hub update <name>
cli-hub uninstall <name>
cli-hub launch <name> [args...]
ตัวอย่างจาก repo: cli-hub install gimp แล้ว cli-hub launch gimp CLI บางตัวต้องมีซอฟต์แวร์ต้นทางติดตั้งในเครื่องด้วย
ใช้ CLI ที่สร้างแล้ว
cd <software>/agent-harness
pip install -e .
cli-anything-<software> --help
cli-anything-<software>
cli-anything-<software> --json <command>
| คำสั่ง |
ผล |
--help |
แสดงกลุ่มคำสั่ง |
| รันชื่อคำสั่งเปล่า ๆ |
เข้าโหมด REPL แบบโต้ตอบ |
--json <command> |
ได้ผลเป็น JSON สำหรับเอเจนต์ |
กระบวนการสร้าง CLI 7 เฟส
คำสั่ง /cli-anything <software-path-or-repo> รันขั้นตอนต่อไปนี้ (อ่านจาก repo, 2026-10-16)
flowchart LR
A[1 Analyze] --> B[2 Design]
B --> C[3 Implement]
C --> D[4 Plan Tests]
D --> E[5 Write Tests]
E --> F[6 Document]
F --> G[7 Publish]
| เฟส |
ทำอะไร |
ผลที่ได้ |
| 1 Analyze |
สแกนซอร์สโค้ด จับคู่การกระทำใน GUI กับ API ภายใน |
รายการความสามารถของโปรแกรม |
| 2 Design |
วางกลุ่มคำสั่ง โมเดลสถานะ รูปแบบผลลัพธ์ |
แบบของ CLI |
| 3 Implement |
สร้าง CLI ด้วย Click พร้อม REPL, JSON และ undo/redo |
โค้ด CLI |
| 4 Plan Tests |
เขียนแผนทดสอบ unit และ E2E |
TEST.md |
| 5 Write Tests |
เขียนชุดทดสอบ |
ไฟล์เทสต์ |
| 6 Document |
บันทึกผลลงใน TEST.md |
เอกสารผลทดสอบ |
| 7 Publish |
สร้าง setup.py และติดตั้งเข้า PATH |
คำสั่ง cli-anything-<software> |
หลังเฟส 6 จะสร้าง SKILL.md ให้แต่ละ CLI อัตโนมัติ คำสั่ง refine ใช้วิเคราะห์ช่องว่างแล้วเพิ่มคำสั่ง เทสต์ และเอกสารทีละส่วน
ใช้กับแพลตฟอร์มเอเจนต์ใด
| แพลตฟอร์ม |
ติดตั้ง |
สั่งสร้าง |
| Claude Code |
/plugin marketplace add HKUDS/CLI-Anything + /plugin install cli-anything |
/cli-anything ./gimp |
| Codex |
bash codex-skill/scripts/install.sh |
พิมพ์ภาษาธรรมชาติ เช่น "Use CLI-Anything to build a harness for ./gimp" |
| Cursor |
bash cursor-plugin/scripts/install.sh |
คำสั่งแบบมีขีดคั่น |
| OpenClaw |
คัดลอก openclaw-skill/SKILL.md ไปที่ ~/.openclaw/skills/cli-anything/ |
@cli-anything build a CLI for ./gimp |
| GitHub Copilot CLI |
copilot plugin install ./cli-anything-plugin |
/cli-anything |
repo ยังมีตัวติดตั้งสำหรับ Pi Coding Agent, OpenCode, Hermes, Reasonix และ Qodercli ด้วย บน Windows ที่ใช้ Claude Code ต้องมี Git for Windows หรือ WSL
npx skills add HKUDS/CLI-Anything --skill cli-hub-meta-skill -g -y
ซอฟต์แวร์ที่รองรับ
repo จัดกลุ่มไว้ดังนี้ (ตัวเลขในวงเล็บคือจำนวนเทสต์ที่ README ระบุ)
| กลุ่ม |
ตัวอย่าง |
| สื่อและงานสร้างสรรค์ |
GIMP (107), Blender (208), Inkscape (202), Audacity (161), OBS Studio (153) |
| สำนักงานและความรู้ |
LibreOffice (158), Calibre (58), Joplin (134), Zotero, Obsidian |
| ระบบอัตโนมัติและ AI |
n8n, ComfyUI (73), Ollama (98), NotebookLM (21) |
| พัฒนาและโครงสร้างพื้นฐาน |
LLDB (27), RenderDoc (59), WireMock |
| เกม วิทยาศาสตร์ อื่น ๆ |
Godot (24), QGIS, FreeCAD, Mermaid (10) |
ลองใช้
ตัวอย่างประกอบ: ตรวจว่าตัวเลขเทสต์สอดคล้องกัน
ตัวเลขนี้อ่านจาก README เมื่อ 2026-10-16 เราคำนวณเอง
| รายการ |
ค่า |
| unit |
1,732 |
| E2E |
579 |
| Node.js |
19 |
| ผลรวม |
1,732 + 579 + 19 = 2,330 |
| ป้ายและตารางใน README |
2,461 |
| ส่วนต่าง |
2,461 − 2,330 = 131 |
ผลรวมจากบรรทัดแจกแจงไม่เท่ากับตัวเลขบนป้าย จึงไม่ควรอ้างตัวเลขเดียวเป็นหลักฐานคุณภาพ ให้รันเทสต์ของ CLI ที่จะใช้เอง
ควรใช้เมื่อไหร่
| ควรใช้ |
ไม่ควรใช้ |
ต้องมีก่อน |
| ซอฟต์แวร์ที่มี CLI สำเร็จรูปใน hub |
งานที่ต้องการการตัดสินด้วยสายตาเป็นหลัก |
Python 3.10 ขึ้นไป |
| งานซ้ำที่ต้องรันเป็นสคริปต์หรือผ่านเอเจนต์ |
ซอฟต์แวร์ที่ไม่ได้ติดตั้งในเครื่อง |
ติดตั้งซอฟต์แวร์ต้นทางแล้ว |
| งานที่ต้องการผลเป็น JSON |
ข้อมูลลับที่ยังไม่ผ่านการตรวจ CLI ที่ติดตั้งจากภายนอก |
เอเจนต์ที่รองรับ |
ก้าวแรกที่เล็กที่สุด
pip install cli-anything-hub
cli-hub search gimp แล้ว cli-hub info gimp
cli-hub install gimp และสั่ง cli-anything-gimp --help
ทดสอบว่าช่วยได้จริง
| รายการ |
ตัวอย่างที่ตั้งก่อนรัน |
| ตัวชี้วัด |
อัตราสำเร็จของงานเดียวกัน 10 ครั้ง |
| ค่าฐาน |
ให้เอเจนต์ทำงานผ่านภาพหน้าจอ 10 ครั้ง นับครั้งที่สำเร็จ |
| เงื่อนไขผ่าน |
ผ่าน CLI สำเร็จมากกว่าค่าฐานอย่างน้อย 2 ครั้ง และผลไฟล์ตรวจสอบได้ |
แนวปฏิบัติที่ดี
- ใช้
--json เมื่อให้เอเจนต์เรียก และใช้โหมดข้อความเมื่อคนอ่าน
- รันเทสต์ของ CLI นั้นก่อนใช้กับงานจริง
- ใช้
refine เพิ่มคำสั่งที่ขาดแทนการเขียนใหม่ทั้งชุด
- ดูไฟล์
SKILL.md ของ CLI เพื่อรู้ว่าเอเจนต์ควรเรียกอะไร
ข้อผิดพลาดที่พบบ่อย
| ข้อผิดพลาด |
ผล |
วิธีแก้ |
| ติดตั้ง CLI แต่ไม่ติดตั้งซอฟต์แวร์ต้นทาง |
คำสั่งที่ต้องใช้แบ็กเอนด์ทำงานไม่ได้ |
ติดตั้งโปรแกรมนั้นก่อน |
| เชื่อป้ายจำนวนเทสต์ |
ได้ภาพคุณภาพที่ไม่ตรงกัน |
รันเทสต์เอง |
| ใช้ Python เวอร์ชันต่ำกว่า 3.10 |
ติดตั้งไม่ผ่าน |
อัปเกรด Python |
ชุดทดสอบ
cd <software>/agent-harness
python3 -m pytest cli_anything/<software>/tests/ -v
CLI_ANYTHING_FORCE_INSTALLED=1 python3 -m pytest cli_anything/<software>/tests/ -v -s
ร่วมพัฒนา
| ช่องทาง |
วิธี |
| เพิ่มซอฟต์แวร์ใหม่ |
สร้าง harness ด้วยปลั๊กอินแล้วส่งตาม cli-anything-plugin/PUBLISHING.md |
| ปรับวิธีการ |
ส่ง PR แก้ HARNESS.md |
| เพิ่มเทสต์ |
เพิ่มสถานการณ์ E2E และกรณีขอบ |
| เพิ่มเข้า CLI-Hub |
เปิด PR ตาม CONTRIBUTING.md |
| ขอ CLI ที่ยังไม่มี |
ส่งฟอร์ม wishlist บน GitHub |
Risks
Warning ตัวเลขจำนวนเทสต์ใน README ขัดกันเอง (2,461, 2,330, 2,464 และ 2,280) ห้ามใช้เป็นหลักฐานยืนยันคุณภาพ
| ความเสี่ยง |
ข้อสังเกต |
| ความปลอดภัย |
CLI จากชุมชนรันบนเครื่องคุณ ควรตรวจโค้ดก่อนติดตั้ง |
| ความครอบคลุม |
README พูดถึงการทดสอบบน 18 แอปหลัก แต่ตารางรายชื่อยาวกว่านั้นมาก |
| ความต่างของเวอร์ชัน |
ผลที่ได้ขึ้นกับเวอร์ชันของซอฟต์แวร์ต้นทาง ยังไม่ทดสอบ |
| ผลของเอเจนต์ |
คำสั่งที่เอเจนต์เรียกอาจแก้ไขไฟล์จริง ควรทำสำเนาก่อน (ตีความ) |
ทดสอบความเข้าใจ
| คำถาม |
คำตอบ |
คำตอบที่มักผิด |
| ทำไม CLI ที่เรียกแบ็กเอนด์จริงจึงน่าเชื่อถือกว่าการเขียนฟังก์ชันของโปรแกรมใหม่ |
ผลที่ได้มาจากโปรแกรมจริง พฤติกรรมจึงตรงกับของเดิม |
เพราะเร็วกว่า |
cli-hub install gimp สำเร็จ แต่คำสั่งตัดต่อภาพล้มเหลว ควรเช็กอะไรก่อน |
อาจยังไม่ได้ติดตั้ง GIMP ในเครื่อง |
CLI เสีย |
ทำไมเอเจนต์ควรใช้ --json |
ผลมีโครงสร้าง ส่งต่อเข้าขั้นตอนถัดไปได้ตรง ๆ |
เพราะอ่านง่ายสำหรับคน |
| ป้ายบอก 2,461 passing เพียงพอจะสรุปว่า CLI ทุกตัวเชื่อถือได้หรือไม่ |
ไม่พอ ตัวเลขใน repo ขัดกันเอง และเป็นจำนวนรวม ไม่ใช่ผลของ CLI ที่คุณจะใช้ |
พอ เพราะผ่าน 100% |
| ถ้าซอฟต์แวร์ไม่มีใน hub ควรทำอย่างไร |
สร้างด้วย /cli-anything <path> หรือขอ CLI ผ่านฟอร์ม wishlist |
รอจนมีคนทำ |
ในเฟสใดที่ได้ SKILL.md และมีไว้ทำอะไร |
หลังเฟส 6 มีไว้บอกเอเจนต์ว่าจะเรียกคำสั่งอย่างไร |
ได้ในเฟส Publish เพื่อเป็นเอกสารให้คนอ่าน |
Sources
| รายการ |
รายละเอียด |
| repo |
HKUDS/CLI-Anything https://github.com/HKUDS/CLI-Anything |
| commit |
34f5195 (HEAD ของ repo ที่อ่าน เมื่อ 2026-09-22) |
| วันที่อ่าน |
2026-10-16 |
| วิธีอ่าน |
README ผ่าน raw.githubusercontent.com (ไม่ได้อ่านไฟล์ย่อยอื่น) |
| รายงานเทคนิค |
arXiv:2606.03854 "CLI-Anything: Towards Agent-Native Computer Use" |
ตัวย่อที่ใช้ในหน้านี้
ทุกแถวมาจากความรู้ทั่วไป ไม่ใช่นิยามที่หัวข้อนี้ให้ไว้
| ตัวย่อ |
ชื่อเต็ม |
คืออะไร |
อ่านค่าอย่างไร |
| CLI |
Command-Line Interface |
โปรแกรมที่สั่งด้วยข้อความในเทอร์มินัล |
cli-anything-gimp --help คือสั่งโปรแกรมด้วยข้อความ |
| GUI |
Graphical User Interface |
หน้าจอที่ใช้เมาส์คลิก |
ปุ่มและเมนูของโปรแกรม |
| API |
Application Programming Interface |
ช่องทางให้โปรแกรมเรียกกันเอง |
"ไม่มี API" คือไม่มีช่องทางนี้ให้เรียก |
| AI |
Artificial Intelligence |
ปัญญาประดิษฐ์ |
เอเจนต์ AI คือโปรแกรมที่ตัดสินใจและลงมือทำงานเอง |
| REPL |
Read-Eval-Print Loop |
โหมดโต้ตอบที่พิมพ์คำสั่งแล้วเห็นผลทันที |
รันชื่อคำสั่งเปล่า ๆ เพื่อเข้า |
| JSON |
JavaScript Object Notation |
รูปแบบข้อมูลที่เครื่องอ่านง่าย |
{"ok": true} |
| E2E |
End-to-End |
ทดสอบทั้งเส้นทางตั้งแต่ต้นจนจบ |
"unit + e2e" คือทดสอบทั้งส่วนย่อยและทั้งกระบวนการ |
| PR |
Pull Request |
คำขอรวมโค้ดบน GitHub |
เปิด PR เพื่อเพิ่ม CLI เข้า hub |
| SOP |
Standard Operating Procedure |
ขั้นตอนมาตรฐาน |
HARNESS.md คือขั้นตอนมาตรฐานของวิธีสร้าง CLI |
| CAD |
Computer-Aided Design |
งานออกแบบด้วยคอมพิวเตอร์ |
งานสร้างโมเดลชิ้นส่วน |
| 3D |
Three-Dimensional |
สามมิติ |
ฉาก 3D |
| PATH |
PATH |
รายการโฟลเดอร์ที่ระบบค้นหาคำสั่ง |
อยู่ใน PATH จึงพิมพ์ชื่อคำสั่งได้เลย |
| GIMP |
GNU Image Manipulation Program |
โปรแกรมแก้ไขภาพ |
cli-hub install gimp |
| WSL |
Windows Subsystem for Linux |
ระบบ Linux บน Windows |
ใช้รัน bash บน Windows |
| pip |
pip |
ตัวติดตั้งแพ็กเกจของ Python |
pip install ... |
| npx |
npx |
ตัวรันแพ็กเกจของ Node.js |
npx skills add ... |
| Click |
Click |
ไลบรารี Python สำหรับสร้าง CLI |
click ≥8.0 คือเวอร์ชัน 8.0 ขึ้นไป |
| pytest |
pytest |
เครื่องมือรันเทสต์ของ Python |
python3 -m pytest ... |
| SKILL.md |
SKILL.md |
ไฟล์อธิบายความสามารถให้เอเจนต์ |
เอเจนต์อ่านเพื่อรู้วิธีเรียกคำสั่ง |
| TEST.md |
TEST.md |
ไฟล์แผนและผลทดสอบของ CLI |
ได้ในเฟส 4 และอัปเดตในเฟส 6 |
| arXiv |
arXiv |
คลังรายงานวิชาการก่อนตีพิมพ์ |
arXiv:2606.03854 คือเลขรายงาน |
Summary
- CLI-Anything สร้าง CLI ครอบซอฟต์แวร์เดิมให้เอเจนต์ AI สั่งงานด้วยคำสั่งและ JSON
- เริ่มเร็วสุดด้วย
pip install cli-anything-hub แล้ว cli-hub install <name>
- ซอฟต์แวร์ที่ไม่มีใน hub สร้างได้ด้วยกระบวนการ 7 เฟสผ่านปลั๊กอิน
- ตัวเลขเทสต์ใน README ไม่ตรงกัน จึงต้องรันเทสต์เองก่อนใช้งานจริง
- ใบอนุญาตตาม README คือ Apache License 2.0 และต้องใช้ Python 3.10 ขึ้นไป
| ตัวเลขสำคัญ |
ค่า |
| เฟสสร้าง CLI |
7 |
| จำนวนเทสต์บนป้าย |
2,461 |
| Python ขั้นต่ำ |
3.10 |
| Click ขั้นต่ำ |
8.0 |