# CLI-Anything: biến app bất kỳ thành CLI cho agent

[AICodeKing](https://homus.dev/speakers/aicodeking) · [AICodeKing](https://homus.dev/orgs/aicodeking)

> CLI-Anything của HKUDS: dùng CLI-Hub và meta skill để agent tự cài CLI, và plugin bảy phase tạo CLI cho GIMP, LibreOffice, Blender.

Topics: Coding Agents, Dev Tools, Plugins, Skills

Canonical: https://homus.dev/talks/cli-anything-turn-any-app-into-a-cli-for-claude-code-codex-gimp-blender-libreoffice-more

## 1. CLI-Anything là gì và ai làm ra nó

AICodeKing chào người xem rồi giới thiệu chủ đề hôm nay: một project tên là CLI-Anything. Project này đến từ HKUDS, tức Data Intelligence Lab của University of Hong Kong. Theo anh (video đăng ngày 25/10/2026), đây cũng là lab đã làm ra LightRAG và một vài project agent phổ biến khác.

Ý tưởng rất đơn giản. Phần lớn phần mềm được làm ra cho con người dùng: nó có nút bấm, menu và cửa sổ. Theo AICodeKing (video đăng ngày 25/10/2026), AI agent không giỏi những thứ đó; chúng giỏi làm việc với text. Vì vậy CLI-Anything lấy một phần mềm và cho nó một command line interface mà agent dùng được.

Theo cách anh mô tả trong video đăng ngày 25/10/2026, việc này chỉ cần một lệnh. Bạn đưa vào source code của một app như GIMP hay Blender, coding agent của bạn đọc code đó và dựng một CLI đầy đủ cho nó. Agent cũng viết luôn test, tài liệu và một skill file để các agent khác biết cách dùng CLI.

![Sơ đồ /cli-anything: source code (GIMP, Blender) đi vào coding agent rồi ra a full CLI](https://homus.dev/photos/0XQele28q0w-0043.jpg)

Slide tóm tắt ý tưởng trong video đăng ngày 25/10/2026: lệnh `/cli-anything` nhận source code (ví dụ GIMP, Blender), giao cho coding agent, và đầu ra là một CLI hoàn chỉnh.

Theo AICodeKing (video đăng ngày 25/10/2026), repo lúc đó có hơn 54.000 sao, dùng giấy phép Apache 2.0 và hoàn toàn mã nguồn mở, nên anh gọi đây là một project khá lớn.

## 2. Ba cách cho agent dùng app desktop, và vì sao chọn CLI

Tiếp theo anh giải thích vì sao CLI là interface đúng cho bài toán này. Theo AICodeKing (video đăng ngày 25/10/2026), lúc này có ba cách phổ biến để cho một agent dùng một app desktop.

Cách thứ nhất là GUI automation: agent chụp màn hình và click vào các pixel. Theo anh (video đăng ngày 25/10/2026), cách này chậm và hỏng mỗi khi giao diện thay đổi. Cách thứ hai là dùng API, nhưng theo anh nhiều app không có API, hoặc API chỉ phủ một phần nhỏ của app. Cách thứ ba là viết lại: ai đó dựng một bản sao nhỏ của app bằng Python, nhưng theo anh bản sao đó thiếu phần lớn tính năng.

Theo AICodeKing (video đăng ngày 25/10/2026), CLI giải quyết được các vấn đề này. Agent vốn đã biết dùng terminal. Một CLI là text vào, text ra. Mỗi lệnh có một trang help, nên agent tự khám phá được nó làm được gì. Và ở project này, mỗi lệnh còn có cờ `--json`; với cờ đó, đầu ra là JSON sạch mà agent đọc được mà không phải đoán.

![Đầu ra JSON của lệnh layer new --json, bên cạnh dòng chữ reads it without guessing](https://homus.dev/photos/0XQele28q0w-0143.jpg)

Slide trong video đăng ngày 25/10/2026: đầu ra của một lệnh `layer new --json` là một object JSON (id, name "Background", type "solid", width 1920, height 1080, opacity, blend_mode, offset, filters, fill). Bên phải ghi "reads it without guessing" và "no screen parsing".

## 3. Gọi phần mềm thật, và hai cách dùng project

Điểm quan trọng thứ hai, theo AICodeKing (video đăng ngày 25/10/2026), là CLI-Anything không thay thế phần mềm thật mà gọi chính phần mềm đó. Ví dụ, CLI của LibreOffice tạo ra một file PDF thật thông qua LibreOffice ở headless mode. CLI của Blender render bằng Blender thật.

Project gọi cách làm này là authentic software integration. Theo anh (video đăng ngày 25/10/2026), nhờ vậy bạn có toàn bộ sức mạnh của app, chứ không phải một phiên bản đồ chơi của nó.

Cách CLI-Anything vận hành theo mô tả của AICodeKing (video đăng ngày 25/10/2026): agent gọi CLI, CLI gọi chính phần mềm thật, và agent nhận lại JSON thay vì phải đọc màn hình.

Có hai cách dùng project này. Cách thứ nhất là dùng các CLI mà người khác đã làm sẵn. Cách thứ hai là tự build một CLI mới cho phần mềm của riêng bạn. AICodeKing nói anh sẽ chỉ cả hai.

## 4. CLI-Hub: cài đặt và xem registry

Anh bắt đầu với cách thứ nhất, là CLI-Hub. Theo AICodeKing (video đăng ngày 25/10/2026), CLI-Hub là một package manager cho các CLI này. Để cài, mở terminal và chạy lệnh dưới đây. Theo anh (video đăng ngày 25/10/2026), bạn cần Python 3.10 trở lên.

```
pip install cli-anything-hub
```

Khi cài xong, chạy `cli-hub list`. Lệnh này cho bạn thấy mọi CLI trong registry. Theo anh (video đăng ngày 25/10/2026), có rất nhiều: anh đọc ra GIMP, Blender, Inkscape, Audacity, OBS Studio, LibreOffice, Kdenlive, Shotcut, Draw.io, Zoom, ComfyUI, FreeCAD, QGIS, Obsidian, Zotero và nhiều cái khác nữa. Slide lúc đó ghi "a few of the 103 CLIs in the registry".

![Terminal chạy cli-hub list, danh sách CLI theo nhóm SEARCH, STORAGE, STREAMING, TESTING, VIDEO, WEB](https://homus.dev/photos/0XQele28q0w-0243.jpg)

Cuối đầu ra của `cli-hub list` trong video đăng ngày 25/10/2026: các CLI xếp theo nhóm (SEARCH, STORAGE, STREAMING, TESTING, VIDEO, WEB...), dòng cuối ghi "103 CLIs available (79 harness, 24 public), 0 installed" cùng danh sách category.

## 5. Tìm, cài, xem thông tin và khởi động một CLI

Nếu bạn muốn tìm thứ gì cụ thể, chạy `cli-hub search` rồi gõ một từ khoá. Ví dụ với `cli-hub search image`, trong demo của video đăng ngày 25/10/2026 chỉ còn hiện các công cụ về ảnh.

Theo demo trong video đăng ngày 25/10/2026, để cài một CLI, chạy `cli-hub install gimp`. Sau đó chạy `cli-hub info gimp` để xem chi tiết, và để khởi động nó thì chạy `cli-hub launch gimp`.

```
cli-hub search image
cli-hub install gimp
cli-hub info gimp
cli-hub launch gimp
```

![Terminal chạy cli-hub install gimp, cli-hub info gimp và cli-hub launch gimp](https://homus.dev/photos/0XQele28q0w-0320.jpg)

Demo trong video đăng ngày 25/10/2026: `cli-hub install gimp` báo "Installed GIMP (cli-anything-gimp)"; `cli-hub info gimp` ghi category image, Requires "gimp (apt install gimp)", entry point `cli-anything-gimp` và đường dẫn SKILL.md; `cli-hub launch gimp` mở một khung chào kèm lệnh `npx skills add` cho skill tương ứng, rồi `quit` để thoát.

Có một điều cần biết ở đây. Theo AICodeKing (video đăng ngày 25/10/2026), các CLI này gọi app thật, nên nếu bạn cài GIMP CLI thì máy bạn cũng phải có GIMP. Blender, LibreOffice và các app khác cũng vậy.

## 6. Meta skill của CLI-Hub cho agent

Giờ giao việc này cho agent. Theo AICodeKing (video đăng ngày 25/10/2026), project có một meta skill cho CLI-Hub. Anh giải thích meta skill là một skill dạy agent cách tìm và cài các công cụ khác.

Để thêm nó, chạy `npx skills add HKUDS/CLI-Anything`, rồi `--skill cli-hub-meta-skill`, rồi `-g` và `-y`. Theo anh, cờ `-g` cài ở mức global, còn cờ `-y` bỏ qua các câu hỏi. Lệnh đầy đủ như README ghi (đọc ngày 25/10/2026):

```
npx skills add HKUDS/CLI-Anything --skill cli-hub-meta-skill -g -y
```

Theo AICodeKing (video đăng ngày 25/10/2026), skill này chạy được với Claude Code, Codex, OpenClaw, Nanobot, Antigravity và các agent khác có hỗ trợ skill. Sau đó bạn có thể đưa agent một prompt như sau, rồi viết task của bạn ngay sau đó:

```
Find appropriate CLI software in CLI-Hub and complete the task: ...
```

## 7. Agent tự tìm Draw.io CLI để vẽ diagram

Ví dụ, AICodeKing yêu cầu agent vẽ một architecture diagram đơn giản. Trong demo của video đăng ngày 25/10/2026, agent tìm trên Hub, thấy Draw.io CLI và cài nó. Sau đó agent đọc skill file của CLI đó và bắt đầu chạy lệnh: thêm các hình, nối chúng lại, và cuối cùng xuất ra một file PNG.

Anh nói rằng anh không hề bảo cho agent dùng công cụ nào. Agent tự tìm ra công cụ (demo trong video đăng ngày 25/10/2026), và anh thấy điều này khá hay.

![Slide năm bước: cli-hub search diagram, drawio [diagrams], cli-hub install drawio, reads its SKILL.md, shape add · connect add](https://homus.dev/photos/0XQele28q0w-0403.jpg)

Slide "the flow · real cli-hub + draw.io output" trong video đăng ngày 25/10/2026, liệt kê năm bước agent đã làm: `cli-hub search diagram`, tìm thấy `drawio [diagrams]`, `cli-hub install drawio`, đọc SKILL.md của nó, rồi chạy `shape add` và `connect add`.

Sau đó anh chuyển sang phần chính là CLI generator. Theo AICodeKing (video đăng ngày 25/10/2026), đây là thứ bạn dùng khi Hub không có phần mềm bạn cần, hoặc khi bạn có một công cụ nội bộ của riêng mình và muốn agent dùng được nó.

## 8. CLI generator: cài plugin trong Claude Code

AICodeKing làm demo trong Claude Code, nhưng theo anh (video đăng ngày 25/10/2026) generator cũng chạy được trong Cursor, Codex, OpenCode, Pi, Hermes, GitHub Copilot CLI và vài công cụ khác.

Đầu tiên, bạn cần thêm marketplace. Trong Claude Code, chạy lệnh thứ nhất bên dưới. Sau đó chạy lệnh thứ hai để cài plugin. Theo AICodeKing (video đăng ngày 25/10/2026), thế là xong, plugin đã hoạt động.

```
/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything
```

![README CLI-Anything: Step 1 thêm marketplace, Step 2 cài plugin, nhãn plugin installed](https://homus.dev/photos/0XQele28q0w-0443.jpg)

Phần README mà AICodeKing mở trong video đăng ngày 25/10/2026: Step 1 thêm marketplace bằng `/plugin marketplace add HKUDS/CLI-Anything`, Step 2 cài bằng `/plugin install cli-anything`, kèm câu "That's it. The plugin is now available in your Claude Code session." và một ghi chú cho người dùng Windows.

Nếu bạn dùng Windows, theo anh (video đăng ngày 25/10/2026) bạn cần Git for Windows hoặc WSL, vì Claude Code chạy shell command qua Bash và plugin cần đến nó.

Theo AICodeKing (video đăng ngày 25/10/2026), để build một CLI, bạn chạy `/cli-anything` rồi đưa vào một đường dẫn hoặc một GitHub URL. Ví dụ `/cli-anything ./gimp`, hoặc bạn có thể đưa URL repo GitHub của Blender. Trên màn hình, README ghi lệnh này sẽ "Generate a complete CLI for GIMP (all 7 phases)", và một nhãn bổ sung ghi "or a repo URL: github.com/blender/blender".

```
/cli-anything ./gimp
```

## 9. Bảy phase của pipeline

Sau đó plugin chạy một pipeline gồm bảy phase. AICodeKing giải thích từng phase theo video đăng ngày 25/10/2026:

- **Phase 1, Analyze.** Theo video đăng ngày 25/10/2026, agent đọc source code, tìm các action mà GUI làm, và nối mỗi action với đoạn code thực hiện nó.

- **Phase 2, Design.** Theo video đăng ngày 25/10/2026, agent lên kế hoạch cho các command group, state model và các định dạng đầu ra.

- **Phase 3, Implement.** Theo video đăng ngày 25/10/2026, agent viết CLI bằng thư viện Click trong Python. Mỗi CLI có REPL mode, đầu ra JSON, và undo/redo.

- **Phase 4, Plan tests.** Theo video đăng ngày 25/10/2026, agent viết một file tên là TEST.md với kế hoạch cho unit test và end-to-end test.

- **Phase 5, Write tests.** Theo video đăng ngày 25/10/2026, agent viết test theo kế hoạch đó.

- **Phase 6, Document.** Theo video đăng ngày 25/10/2026, agent chạy test và ghi kết quả ngược lại vào TEST.md. Ở phase này nó cũng tạo một file SKILL.md; các agent khác dùng file này để khám phá CLI.

- **Phase 7, Publish.** Theo video đăng ngày 25/10/2026, agent tạo một file setup.py và cài CLI vào PATH của bạn.

![Thanh tiến trình bảy phase, Analyze và Design đã xong, đang ở Implement](https://homus.dev/photos/0XQele28q0w-0523.jpg)

Slide bảy phase trong video đăng ngày 25/10/2026: Analyze, Design, Implement, Plan tests, Write tests, Document, Publish. Hai phase đầu đã đánh dấu xong, phase 3 Implement đang được tô sáng.

Theo AICodeKing (video đăng ngày 25/10/2026), việc này mất một lúc, nên anh chờ một chút. Slide lúc đó ghi "this takes a while", rồi thanh tiến trình chuyển sang "done".

## 10. Dùng CLI GIMP vừa được tạo

Giờ dùng CLI mà agent vừa làm ra (demo trong video đăng ngày 25/10/2026). Anh nói vào thư mục agent harness và chạy pip install -e; README ghi lệnh này là `cd gimp/agent-harness && pip install -e .` (đọc ngày 25/10/2026). Theo AICodeKing, sau đó bạn gọi được nó từ bất kỳ đâu.

Theo AICodeKing (video đăng ngày 25/10/2026), mọi CLI có cùng một mẫu tên: `cli-anything-` rồi đến tên phần mềm. Ở đây là `cli-anything-gimp`. Chạy `cli-anything-gimp --help`, bạn thấy mọi command group.

Tiếp theo anh tạo một project (demo trong video đăng ngày 25/10/2026). Trên màn hình, lệnh anh chạy là tạo project mới với chiều rộng 1920, chiều cao 1080 và file đầu ra là poster.json:

```
cli-anything-gimp project new --width 1920 --height 1080 -o poster.json
```

![Terminal chạy cli-anything-gimp project new, đầu ra ghi Created project: untitled với canvas 1920x1080](https://homus.dev/photos/0XQele28q0w-0623.jpg)

Demo trong video đăng ngày 25/10/2026: CLI trả về "Created project: untitled" cùng canvas width 1920, height 1080, color_mode RGB, background #ffffff, dpi 72, layer_count 0 và metadata ghi software gimp-cli 1.0.

Sau đó anh thêm một layer với cờ `--json`. Trong demo của video đăng ngày 25/10/2026, đầu ra là JSON sạch, và AICodeKing nói đây chính là thứ agent đọc.

## 11. LibreOffice: tạo một PDF thật ở headless mode

Theo AICodeKing (video đăng ngày 25/10/2026), README cũng có một ví dụ LibreOffice hay, nên anh thử luôn. Đầu tiên anh tạo một Writer document mới. Rồi anh thêm một heading ghi "Q1 Report". Rồi anh thêm một bảng bốn hàng ba cột. Cuối cùng anh chạy lệnh export render để tạo PDF. Các lệnh như README ghi (README đọc ngày 25/10/2026, cũng là phần hiện trên màn hình):

```
# Create a new Writer document
cli-anything-libreoffice document new -o report.json --type writer

# Add content
cli-anything-libreoffice --project report.json writer add-heading -t "Q1 Report" --level 1
cli-anything-libreoffice --project report.json writer add-table --rows 4 --cols 3

# Export to real PDF via LibreOffice headless
cli-anything-libreoffice --project report.json export render output.pdf -p pdf --overwrite

# JSON mode for agent consumption
cli-anything-libreoffice --json document info --project report.json
```

![Mục Demo: Using a Generated CLI trong README, với các lệnh cli-anything-libreoffice](https://homus.dev/photos/0XQele28q0w-0635.jpg)

Mục "Demo: Using a Generated CLI" trong README (video đăng ngày 25/10/2026): từng lệnh `cli-anything-libreoffice` kèm kết quả mẫu, ví dụ "Added 4×3 table", "Exported: output.pdf (42,831 bytes) via libreoffice-headless", và object JSON của `document info` (name "Q1 Report", type writer, pages 1, elements 2).

Và đây là file PDF. Theo AICodeKing (demo trong video đăng ngày 25/10/2026), đó là một PDF thật, do LibreOffice tạo ra ở headless mode.

## 12. Blender và REPL mode

Theo AICodeKing (video đăng ngày 25/10/2026), nếu bạn chạy một CLI mà không kèm lệnh nào, bạn vào REPL mode. Anh thử với Blender: chạy `cli-anything-blender` và nhận được một prompt tương tác.

Trong demo (video đăng ngày 25/10/2026), anh gõ `scene new --name ProductShot`, rồi thêm một cube mesh. Sau đó anh dùng render engine Cycles và chạy render; trên màn hình là `render settings --engine CYCLES --samples 32` rồi `render execute render.png`. AICodeKing nói Blender render ảnh ở chế độ nền (background). Trên màn hình có nhãn "writes a bpy script for blender --background", và sau khi `exit` khỏi REPL, lệnh `blender --background --python _render_script.py` in ra "Render complete".

```
cli-anything-blender
scene new --name ProductShot
render settings --engine CYCLES --samples 32
render execute render.png
```

![Terminal REPL Blender với render settings và render execute, bên phải là ảnh render một khối lập phương xám](https://homus.dev/photos/0XQele28q0w-0712.jpg)

Kết quả demo Blender trong video đăng ngày 25/10/2026: bên trái là REPL với prompt `blender [ProductShot*]`, cài đặt CYCLES 32 samples ở 1920x1080 và dòng "Render complete" kèm "Blender 5.0.1"; bên phải là file render.png 1920 × 1080 hiển thị một khối lập phương xám.

Prompt cũng hiện tên scene, và hiện một dấu sao khi có thay đổi chưa được lưu (slide ghi "scene name" và "unsaved changes" dưới `blender [ProductShot*]`). Theo AICodeKing (video đăng ngày 25/10/2026), nhờ vậy agent luôn biết trạng thái hiện tại.

## 13. Refine, test và validate

Theo AICodeKing (video đăng ngày 25/10/2026), lần chạy đầu tiên không phải lúc nào cũng phủ hết app. Để xử lý việc này có lệnh refine: chạy `/cli-anything:refine` rồi đường dẫn. Agent so sánh những gì phần mềm làm được với những gì CLI làm được, rồi thêm lệnh, test và tài liệu cho các chỗ còn thiếu.

Ý tưởng của lệnh refine như slide "after the first run" trong video đăng ngày 25/10/2026: so khả năng của app với phần CLI đang phủ, rồi lấp phần gap.

Theo AICodeKing (video đăng ngày 25/10/2026), bạn cũng có thể đưa cho lệnh refine một trọng tâm. Ví dụ, bạn nói bạn muốn có thêm lệnh cho batch processing và filter. Slide ghi đây là ví dụ của chính README:

```
/cli-anything:refine ./gimp "I want more CLIs on image batch processing and filters"
```

Theo AICodeKing (video đăng ngày 25/10/2026), bạn có thể chạy refine nhiều lần; mỗi lần chạy bổ sung thêm vào CLI và không xoá phần đã làm trước đó. README cũng ghi mỗi lần refine là "incremental and non-destructive" (đọc ngày 25/10/2026).

Còn hai lệnh nữa. Theo anh (video đăng ngày 25/10/2026), lệnh test chạy các test và cập nhật TEST.md. Lệnh validate kiểm tra CLI theo các quy tắc của project.

## 14. HARNESS.md và cách các test kiểm tra kết quả

Các quy tắc đó nằm trong một file tên là HARNESS.md. AICodeKing gọi đây là playbook mà agent làm theo ở mọi phase, và theo anh (video đăng ngày 25/10/2026) nó có vài bài học hay.

Ví dụ, CLI phải dùng phần mềm thật; nó không được dùng Pillow thay cho GIMP. HARNESS.md ghi đúng điều này là một anti-pattern: "Building a Pillow-based image compositor to replace GIMP" (đọc ngày 25/10/2026). Một bài học khác anh nêu là exit code bằng 0 không chứng minh được việc export đã thành công. Vì vậy, theo anh (video đăng ngày 25/10/2026), các test kiểm tra file đầu ra thật: magic bytes, cấu trúc file, pixel, mức âm thanh và độ dài.

Theo AICodeKing (video đăng ngày 25/10/2026), số liệu test cũng tốt: README cho thấy hơn 2.400 test pass trên khoảng 30 harness. Bảng trên màn hình ghi tổng 2.464 passed.

![Bảng Test Summary trong README liệt kê số test pass cho từng harness, từ gimp đến joplin](https://homus.dev/photos/0XQele28q0w-0823.jpg)

Bảng "Test Summary" trong README (video đăng ngày 25/10/2026): mỗi dòng là một harness với số test pass, chia unit và e2e, ví dụ gimp 107 passed (64 unit + 43 e2e), blender 208, libreoffice 158, drawio 138, joplin 134; dòng cuối ghi tổng 2.464 passed.

Mỗi harness có unit test dùng dữ liệu giả và end-to-end test dùng phần mềm thật. Theo AICodeKing (video đăng ngày 25/10/2026), nếu phần mềm thật chưa được cài thì test sẽ fail chứ không skip; HARNESS.md cũng ghi "if the software isn't installed, tests fail, not skip" (đọc ngày 25/10/2026). Anh nói anh rất thích điểm này, vì một test bị skip có thể che giấu một CLI hỏng.

## 15. Các demo trong README

Theo AICodeKing (video đăng ngày 25/10/2026), README cũng có vài demo hay. Trong một demo, một agent dựng một xe tự hành Curiosity trong FreeCAD từng bước một, có live preview. README mô tả đây là một rover "Curiosity-inspired" mà agent lắp dần trong khi xuất preview FreeCAD thật (đọc ngày 25/10/2026).

Trong một demo khác, một agent dựng một chiếc drone khoa học viễn tưởng trong Blender. Cũng có một agent chơi Slay the Spire II thông qua CLI, và một agent điều khiển một phiên ArcGIS Pro đang chạy. Theo AICodeKing (video đăng ngày 25/10/2026), như vậy công cụ này không chỉ dành cho các công cụ văn phòng; slide lúc đó ghi "not only office tools".

Bốn demo trong README mà AICodeKing nhắc tới trong video đăng ngày 25/10/2026.

## 16. Giới hạn

Giờ nói về giới hạn, vì theo AICodeKing (video đăng ngày 25/10/2026) project có vài giới hạn.

Thứ nhất, nó cần một model mạnh. README ghi rằng bạn cần một model frontier-class để có kết quả đáng tin cậy. AICodeKing đọc ra Claude Opus, Sonnet và GPT 5.4; trên màn hình, README ghi "Claude Opus 4.6, Claude Sonnet 4.6, GPT-5.4" (README trong video đăng ngày 25/10/2026). Theo anh, một model local nhỏ có thể tạo ra một CLI chưa đầy đủ hoặc chưa đúng. Vì vậy, theo AICodeKing (video đăng ngày 25/10/2026), chạy trên một codebase lớn không hề rẻ: quá trình generate có thể tốn rất nhiều token.

![Mục Limitations trong README: Requires strong foundation models, Relies on available source code, May require iterative refinement](https://homus.dev/photos/0XQele28q0w-0902.jpg)

Mục "Limitations" của README trong video đăng ngày 25/10/2026: cần foundation model mạnh (ví dụ Claude Opus 4.6, Claude Sonnet 4.6, GPT-5.4), dựa vào source code có sẵn (chỉ có binary đã compile thì chất lượng và độ phủ giảm mạnh), và có thể phải refine nhiều lần. Bên dưới là phần Roadmap.

Thứ hai, theo anh (video đăng ngày 25/10/2026), nó làm tốt nhất khi bạn có source code. Nếu bạn chỉ có một binary đã compile, chất lượng và độ phủ sẽ thấp hơn nhiều.

Thứ ba, theo AICodeKing (video đăng ngày 25/10/2026), một lần chạy thường là chưa đủ. Nhiều khả năng bạn sẽ phải chạy refine vài lần trước khi CLI đủ tốt cho công việc thật.

AICodeKing nói thêm một điều (video đăng ngày 25/10/2026): một CLI do agent tạo ra vẫn là code do agent tạo ra. Vì vậy hãy đọc các test và kiểm tra các lệnh trước khi cho nó quyền truy cập vào các file quan trọng.

## 17. Nhận định của AICodeKing

Nhìn chung, AICodeKing cho rằng đây là một ý tưởng rất hay (video đăng ngày 25/10/2026). Theo anh, GUI agent dùng ảnh chụp màn hình thì chậm và tốn kém, còn một CLI có đầu ra JSON thì nhanh, rẻ và dễ dùng với agent. Và project này làm giúp bạn phần việc nhàm chán là tạo ra CLI đó.

Theo anh (video đăng ngày 25/10/2026), phần CLI-Hub cũng miễn phí và dễ dùng, kể cả khi bạn không bao giờ tự build một CLI. Nếu bạn dùng Claude Code hoặc Codex nhiều, anh nói anh sẽ cài meta skill của CLI-Hub trước, vì theo anh nó không tốn gì và agent của bạn có thêm một bộ công cụ mới lớn. Sau đó, nếu bạn có một app không có trong Hub, hãy thử generator với app đó.

Thứ tự AICodeKing gợi ý ở cuối video đăng ngày 25/10/2026.

Anh kết lại rằng nhìn chung project này khá hay, mời người xem để lại ý kiến trong phần bình luận, và hẹn gặp lại ở video sau.

## Nguồn và liên kết

- Tên gốc: CLI-Anything: Turn ANY App into a CLI for Claude Code & Codex (GIMP, Blender, LibreOffice & More!)
- Sự kiện: [YouTube](https://homus.dev/events/youtube)
- Video gốc: [https://www.youtube.com/watch?v=0XQele28q0w](https://www.youtube.com/watch?v=0XQele28q0w)

- Kênh YouTube AICodeKing (AICodeKing): [youtube.com/channel/UC0m81bQuthaQZmFbXEY9QSw](https://www.youtube.com/channel/UC0m81bQuthaQZmFbXEY9QSw)

- Repo CLI-Anything của HKUDS trên GitHub (giấy phép Apache-2.0, khoảng 57.000 sao khi đọc ngày 25/10/2026): [github.com/HKUDS/CLI-Anything](https://github.com/HKUDS/CLI-Anything)

- HARNESS.md, phương pháp mà mọi lệnh của plugin tham chiếu (đọc ngày 25/10/2026: anti-pattern dùng Pillow thay GIMP, test fail chứ không skip khi thiếu phần mềm, kiểm tra magic bytes): [cli-anything-plugin/HARNESS.md](https://github.com/HKUDS/CLI-Anything/blob/main/cli-anything-plugin/HARNESS.md)

- Trang web CLI-Hub (đọc ngày 25/10/2026): [hkuds.github.io/CLI-Anything](https://hkuds.github.io/CLI-Anything/)

- Package cli-anything-hub trên PyPI (đọc ngày 25/10/2026): [pypi.org/project/cli-anything-hub](https://pypi.org/project/cli-anything-hub/)

- LightRAG, một project khác của HKUDS mà AICodeKing nhắc tới: [github.com/HKUDS/LightRAG](https://github.com/HKUDS/LightRAG)

Nguồn: https://homus.dev/talks/cli-anything-turn-any-app-into-a-cli-for-claude-code-codex-gimp-blender-libreoffice-more · cập nhật 2026-10-25
