Cách sử dụng CLI-Anything: Biến mọi phần mềm thành Native Agent

Herve Kom

Herve Kom

17 tháng 3 2026

Cách sử dụng CLI-Anything: Biến mọi phần mềm thành Native Agent

CLI-Anything là một plugin mã nguồn mở dành cho các tác nhân mã hóa AI (chủ yếu là Claude Code) giúp tạo ra một giao diện dòng lệnh đầy đủ cho bất kỳ phần mềm nào có cơ sở mã. Chỉ cần hướng nó đến GIMP, Blender, LibreOffice, hoặc bất kỳ ứng dụng nào khác, nó sẽ phân tích mã nguồn và tạo ra một CLI có cấu trúc mà tác nhân AI của bạn có thể sử dụng để điều khiển phần mềm đó theo lập trình.

Vấn đề: Tác nhân AI không thể sử dụng phần mềm GUI

Hệ thống phần mềm ngày nay được chia thành hai thế giới hầu như không giao tiếp với nhau.

Một mặt, bạn có các dịch vụ API-first hiện đại: lưu trữ đám mây, bộ xử lý thanh toán, nhà cung cấp email, nền tảng phân tích. Chúng giao tiếp qua HTTP. Một tác nhân AI có thể gọi chúng trực tiếp mà không cần công cụ đặc biệt nào.

Mặt khác, bạn có phần mềm mà hầu hết các quy trình làm việc chuyên nghiệp phụ thuộc vào: GIMP cho chỉnh sửa ảnh, Blender cho công việc 3D, LibreOffice cho tài liệu, Audacity cho âm thanh. Chúng được xây dựng để con người nhấp chuột. Chúng hiển thị giao diện đồ họa, chứ không phải API có cấu trúc.

Khi bạn cố gắng kết nối một tác nhân AI với loại phần mềm thứ hai này, các tùy chọn rất hạn chế. Bạn có thể tự viết các wrapper tùy chỉnh, điều này mất hàng tuần và bị lỗi khi phần mềm cập nhật. Bạn có thể thử các công cụ Tự động hóa Quy trình Robot (RPA), tự động hóa tương tác GUI thông qua ảnh chụp màn hình và nhấp pixel. Nhưng RPA rất dễ vỡ. Nó bị lỗi khi bố cục cửa sổ thay đổi, khi chủ đề cập nhật, khi tỷ lệ hiển thị dịch chuyển.

CLI-Anything thực hiện một cách tiếp cận khác: thay vì mô phỏng một người nhấp qua các menu, nó phân tích mã nguồn của phần mềm để tìm các API cơ bản mà GUI đã gọi. Sau đó, nó tạo ra một CLI thực sự gọi trực tiếp các API đó.

Tác nhân AI của bạn không cần "nhìn thấy" màn hình. Nó đưa ra các lệnh có cấu trúc. Phần mềm thực hiện công việc.

💡
Nếu các quy trình làm việc của tác nhân của bạn cũng cần gọi các REST API bên ngoài cùng với phần mềm cục bộ, Apidog sẽ xử lý phần kiểm thử API. Đây là một công cụ miễn phí để gửi, kiểm tra và sắp xếp các yêu cầu API, vì vậy bạn có thể xác minh tích hợp API trước khi xây dựng chúng vào quy trình làm việc của tác nhân của mình.
button

CLI-Anything làm gì

CLI-Anything là một plugin mã nguồn mở được xây dựng bởi HKUDS (Phòng thí nghiệm Khoa học Dữ liệu Đại học Hồng Kông). Người tạo ra nó, Chao Huang, đã phát biểu như sau trong thông báo dự án:

"Phần mềm ngày nay phục vụ con người. Người dùng của ngày mai sẽ là các tác nhân. CLI-Anything: thu hẹp khoảng cách giữa các tác nhân AI và phần mềm của thế giới. Một dòng lệnh để biến bất kỳ phần mềm nào sẵn sàng cho tác nhân."

Tại thời điểm viết bài, dự án có hơn 6.100 sao trên GitHub.

Plugin hoạt động bên trong Claude Code (và thử nghiệm trong Codex và OpenCode). Bạn hướng nó đến cơ sở mã của một phần mềm và nó chạy một quy trình tự động 7 giai đoạn:

  1. Phân tích - Quét mã nguồn, ánh xạ các hành động GUI tới các API cơ bản và tạo ra một tài liệu quy trình vận hành tiêu chuẩn dành riêng cho phần mềm
  2. Thiết kế - Kiến trúc các nhóm lệnh, mô hình trạng thái và định dạng đầu ra
  3. Triển khai - Xây dựng một CLI Python dựa trên Click với chế độ REPL, hỗ trợ đầu ra `--json` và hoàn tác/làm lại
  4. Lập kế hoạch kiểm thử - Tạo một tệp `TEST.md` với các kế hoạch kiểm thử đơn vị và end-to-end
  5. Viết kiểm thử - Viết `test_core.py` (kiểm thử đơn vị với dữ liệu tổng hợp) và `test_full_e2e.py` (end-to-end với các tệp thực)
  6. Tài liệu hóa - Chạy pytest và nối đầy đủ kết quả vào `TEST.md`
  7. Xuất bản - Tạo `setup.py`, cấu hình các điểm vào script console, cài đặt vào PATH

Đến cuối giai đoạn 7, bạn có một CLI hoạt động được cài đặt trên hệ thống của mình. Tác nhân AI của bạn có thể khám phá nó bằng `which cli-anything-gimp`, kiểm tra nó bằng `cli-anything-gimp --help` và bắt đầu đưa ra các lệnh.

Tất cả các CLI được tạo đều tuân theo một thiết kế nhất quán: đầu ra bảng dễ đọc đối với con người theo mặc định, đầu ra JSON dễ đọc đối với máy với cờ `--json`, trạng thái dự án bền vững, hoàn tác/làm lại và chế độ REPL tương tác. Sự nhất quán này rất quan trọng: tác nhân của bạn không cần phải học một giao diện khác cho mỗi công cụ.

Cài đặt CLI-Anything

CLI-Anything là một plugin dựa trên Python. Nó không phải là một gói npm. Bạn cài đặt nó vào tác nhân mã hóa AI của mình, và các CLI được tạo là các gói Python được cài đặt bằng `pip install -e .`.

Yêu cầu:

Claude Code (phương pháp chính)

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

Thao tác này cài đặt plugin và làm cho các lệnh dấu gạch chéo `/cli-anything` khả dụng trong phiên Claude Code của bạn.

OpenCode

Clone repo, sau đó sao chép các tệp lệnh và `HARNESS.md` vào `~/.config/opencode/commands/`. Thao tác này thêm năm lệnh dấu gạch chéo: `/cli-anything`, `/cli-anything-refine`, `/cli-anything-test`, `/cli-anything-validate` và `/cli-anything-list`.

Codex

bash CLI-Anything/codex-skill/scripts/install.sh

Qodercli

bash CLI-Anything/qoder-plugin/setup-qodercli.sh

Lưu ý về Windows

Plugin yêu cầu Git for Windows (bao gồm bash và cygpath) hoặc WSL. Native Windows shell không được hỗ trợ. Nếu bạn thấy `cygpath: command not found`, hãy cài đặt Git for Windows và thử lại.

Cài đặt CLI đã tạo

Sau khi plugin tạo CLI cho phần mềm của bạn, hãy cài đặt nó vào PATH của bạn:

cd <software>/agent-harness
pip install -e .

Thao tác này sử dụng chế độ cài đặt có thể chỉnh sửa (`-e`), nghĩa là các thay đổi của bạn đối với mã nguồn được tạo vẫn tồn tại mà không cần cài đặt lại.

Tạo CLI đầu tiên của bạn

Khi plugin đã được cài đặt, việc tạo ra chỉ là một lệnh duy nhất. Dưới đây là quy trình làm việc cho GIMP:

Trong Claude Code:

/cli-anything ./gimp

Hoặc từ một kho lưu trữ GitHub:

/cli-anything https://github.com/blender/blender

Plugin khởi động quy trình 7 giai đoạn. Việc này mất vài phút tùy thuộc vào kích thước của cơ sở mã và số lượng API mà phần mềm hiển thị.

Trong giai đoạn 1 (Phân tích), plugin đọc mã nguồn và xây dựng bản đồ các hành động GUI với các lệnh gọi API cơ bản của chúng. Đối với một trình chỉnh sửa hình ảnh như GIMP, điều này có nghĩa là tìm tất cả các chức năng tạo lớp, áp dụng bộ lọc, xuất tệp và quản lý dự án. Nó tạo ra một tài liệu SOP dành riêng cho phần mềm (`GIMP.md`) mô tả tập hợp đầy đủ các hoạt động.

Trong giai đoạn 3 (Triển khai), nó xây dựng CLI bằng cách sử dụng framework Click của Python. Mọi lệnh đều hỗ trợ đầu ra `--json`. Mọi thao tác có trạng thái (mở tệp, tạo dự án) đều lưu trữ trạng thái trong một tệp JSON. CLI bao gồm một REPL tương tác với các lời nhắc có màu và lịch sử bền vững.

Cấu trúc thư mục được tạo trông như thế này:

gimp/
  agent-harness/
    GIMP.md           # Tài liệu SOP phần mềm
    setup.py
    cli_anything/     # Gói namespace (không có __init__.py - PEP 420)
      gimp/
        README.md
        gimp_cli.py   # Điểm vào CLI chính
        core/         # Mô-đun Project, session, export
        utils/        # Giao diện REPL, helpers
        tests/
          test_core.py
          test_full_e2e.py
          TEST.md

Tất cả các CLI được tạo đều nằm dưới không gian tên `cli_anything.*` (ví dụ: `cli_anything.gimp`). Điều này ngăn ngừa xung đột đặt tên nếu bạn tạo CLI cho nhiều ứng dụng.

Sử dụng CLI đã tạo

Sau khi chạy `pip install -e .` trong thư mục `agent-harness`, bạn có một CLI mới khả dụng:

cli-anything-gimp --help

Thao tác này hiển thị tất cả các nhóm lệnh có sẵn và các lệnh con của chúng. Cách đặt tên nhất quán: mọi công cụ đều tạo ra một CLI có tên `cli-anything-<software>`.

Đầu ra dễ đọc đối với con người (mặc định)

# Bắt đầu một dự án mới
cli-anything-gimp project new --width 1920 --height 1080

# Liệt kê các lớp
cli-anything-gimp layer list

# Thêm một lớp
cli-anything-gimp layer add --name "Background" --type solid --color "#ffffff"

# Áp dụng một bộ lọc
cli-anything-gimp filter apply --name "gaussian-blur" --radius 3

# Xuất
cli-anything-gimp export save --format png --output ./output.png

Đầu ra JSON cho tác nhân AI

Khi tác nhân AI của bạn gọi CLI, nó sử dụng `--json` để nhận đầu ra dễ đọc đối với máy:

cli-anything-gimp --json project new --width 1920 --height 1080
# Trả về: {"status": "ok", "project_id": "proj_abc123", "width": 1920, "height": 1080}

cli-anything-gimp --json layer add -n "Background"
# Trả về: {"status": "ok", "layer_id": "layer_001", "name": "Background"}

Đầu ra JSON nhất quán trên tất cả các lệnh: `status`, các trường cụ thể theo hoạt động và chi tiết lỗi khi có sự cố.

Chế độ REPL tương tác

Đối với các phiên kéo dài, hãy khởi chạy REPL:

cli-anything-gimp

Thao tác này đưa bạn vào một shell tương tác với các lời nhắc có màu, hoàn thành tab và lịch sử bền vững. Hữu ích khi bạn đang xây dựng một quy trình làm việc và muốn thử các lệnh một cách tương tác trước khi viết script cho chúng.

Hoàn tác/Làm lại

Các thao tác sửa đổi trạng thái hỗ trợ ngăn xếp hoàn tác 50 cấp độ:

cli-anything-gimp undo
cli-anything-gimp redo

Tinh chỉnh và kiểm thử CLI của bạn

Các CLI được tạo không phải lúc nào cũng hoàn chỉnh trong lần đầu tiên. Lệnh `/cli-anything:refine` thực hiện phân tích khoảng cách và thêm các lệnh còn thiếu.

Tinh chỉnh chung

/cli-anything:refine /home/user/gimp

Thao tác này quét CLI hiện có so với bề mặt API của phần mềm, xác định các hoạt động chưa được bao phủ và thêm các lệnh mới cho các khoảng trống.

Tinh chỉnh tập trung

/cli-anything:refine /home/user/blender "particle systems and physics simulation"

Khi bạn biết khu vực nào cần được bao phủ nhiều hơn, hãy truyền mô tả tập trung. Plugin sẽ nhắm mục tiêu phần đó của cơ sở mã thay vì phân tích lại mọi thứ.

Chạy kiểm thử

/cli-anything:test /home/user/gimp

Thao tác này thực thi các bộ kiểm thử và cập nhật `TEST.md` với kết quả. Dự án báo cáo hơn 1.508 kiểm thử đã vượt qua trên 11 ứng dụng với tỷ lệ vượt qua 100%.

Xác thực

/cli-anything:validate /home/user/gimp

Kiểm tra giao diện CLI so với đặc tả `HARNESS.md` để xác nhận nó đáp ứng tất cả các yêu cầu cấu trúc.

Liệt kê các CLI khả dụng

/cli-anything:list
/cli-anything:list --json        # Đầu ra dễ đọc đối với máy
/cli-anything:list --path /home  # Tìm kiếm trong một thư mục cụ thể

Các trường hợp sử dụng thực tế

CLI-Anything đã được thử nghiệm trên 11 ứng dụng. Dưới đây là cách mỗi danh mục tương ứng với các quy trình làm việc thực tế.

Các quy trình xử lý hình ảnh với GIMP

Một tác nhân AI có thể xử lý một loạt hình ảnh sản phẩm: thay đổi kích thước theo tiêu chuẩn, áp dụng hình mờ nhất quán, xuất ra nhiều định dạng. Mỗi bước là một lệnh CLI có cấu trúc. Tác nhân có thể xử lý hàng trăm hình ảnh mà không cần bất kỳ sự tương tác nào của con người.

cli-anything-gimp project open --file product.jpg
cli-anything-gimp layer add --name "Watermark" --type image --source watermark.png
cli-anything-gimp layer position --name "Watermark" --x 10 --y 10
cli-anything-gimp export save --format webp --output product-final.webp

Tạo tài liệu với LibreOffice

LibreOffice tạo ra các tệp PDF thực. Một tác nhân có thể tạo hóa đơn, báo cáo hoặc hợp đồng từ các mẫu, điền dữ liệu động và xuất ra PDF, tất cả đều từ một script.

cli-anything-libreoffice document open --template invoice-template.ods
cli-anything-libreoffice cell set --address "B5" --value "Acme Corp"
cli-anything-libreoffice cell set --address "C10" --value "1500.00"
cli-anything-libreoffice export pdf --output invoice-2026-001.pdf

Kết xuất 3D với Blender

Các kết xuất Blender mất thời gian, nhưng chúng có thể được viết script. Một tác nhân có thể xếp hàng các công việc kết xuất, cấu hình các tham số cảnh và quản lý đầu ra mà không cần GUI:

cli-anything-blender scene open --file product-scene.blend
cli-anything-blender render set --samples 256 --output /renders/product
cli-anything-blender render start --format png

Tự động hóa phát trực tiếp với OBS Studio

OBS là một công cụ phát sóng. Với CLI-Anything, bạn có thể viết script cho các chuyển cảnh, quản lý nguồn và điều khiển ghi:

cli-anything-obs scene set --name "Main Camera"
cli-anything-obs recording start
cli-anything-obs scene set --name "Screen Share"
cli-anything-obs recording stop --output session.mp4

Tích hợp CI/CD

Bất kỳ điều nào trong số này đều có thể được đưa vào quy trình CI/CD. Một GitHub Action xây dựng một kết xuất Blender trên mỗi commit, hoặc một quy trình làm việc tạo các ghi chú phát hành PDF từ một mẫu LibreOffice, cả hai đều trở nên đơn giản.

Xây dựng quy trình làm việc của tác nhân với Apidog

CLI-Anything xử lý phần mềm cục bộ. Nhưng hầu hết các quy trình làm việc của tác nhân sản xuất cũng cần gọi các API bên ngoài: tải hình ảnh đã xử lý lên CDN, đẩy PDF đã tạo vào hệ thống quản lý tài liệu, gửi video đã kết xuất đến nền tảng đánh giá.

Apidog xử lý khía cạnh đó. Đây là một API client miễn phí để kiểm thử, tài liệu hóa và tự động hóa các lệnh gọi REST API.

Dưới đây là một ví dụ cụ thể: bạn đang xây dựng một tác nhân xử lý hình ảnh sản phẩm bằng GIMP và tải chúng lên API lưu trữ đám mây. CLI-Anything cung cấp cho bạn các lệnh GIMP. Apidog cho phép bạn kiểm thử API lưu trữ trước khi bạn viết bất kỳ mã ứng dụng nào.

Trong Apidog, bạn sẽ:

  1. Thiết lập môi trường với thông tin đăng nhập API của bạn được lưu trữ dưới dạng biến
  2. Kiểm thử điểm cuối tải lên bằng một tệp mẫu để xác nhận định dạng yêu cầu
  3. Chạy các khẳng định trên phản hồi để xác minh URL tệp trả về chính xác
  4. Xuất yêu cầu đang hoạt động dưới dạng lệnh curl hoặc đoạn mã để đưa vào script tác nhân của bạn

Điều này giúp tiết kiệm chu kỳ gỡ lỗi, nơi bạn viết mã, chạy nó, nhận được lỗi khó hiểu và cố gắng tìm ra vấn đề nằm ở lệnh GIMP hay lệnh gọi API của bạn. Bạn biết API hoạt động trước khi bạn tích hợp nó.

Apidog cũng hỗ trợ các bộ kiểm thử tự động. Khi quy trình làm việc của bạn hoạt động, bạn có thể thêm các khẳng định kiểm thử chạy trên mỗi lần thực thi để phát hiện lỗi hồi quy.

Những hạn chế cần biết

Hỗ trợ Windows yêu cầu Git Bash hoặc WSL

Các CLI được tạo dựa trên Python và dựa vào cách xử lý đường dẫn kiểu bash. Trên Windows, bạn cần Git for Windows (bao gồm bash và `cygpath`) hoặc WSL. PowerShell gốc không được hỗ trợ.

Phần mềm mục tiêu phải được cài đặt

CLI-Anything không đi kèm với phần mềm mà nó bao bọc. GIMP, Blender, LibreOffice và các công cụ khác cần được cài đặt trên cùng một máy mà bạn chạy CLI đã tạo. CLI gọi trực tiếp các backend ứng dụng thực.

Chỉ xuất ra Python

Tất cả các CLI được tạo đều là ứng dụng Python Click. Không có tùy chọn để tạo CLI bằng các ngôn ngữ khác. Nếu quy trình làm việc của bạn cần một wrapper CLI bằng Node.js hoặc Go, bạn sẽ cần phải xây dựng riêng điều đó.

Claude Code là nền tảng ổn định

Claude Code là môi trường chính và được kiểm thử nhiều nhất. Tích hợp Codex và OpenCode được đánh dấu là thử nghiệm. Các tính năng có thể hoạt động không nhất quán bên ngoài Claude Code.

Chất lượng tạo ra phụ thuộc vào cơ sở mã

Plugin phân tích mã nguồn để tìm các API đằng sau các hành động GUI. Nếu cơ sở mã được cấu trúc kém, bị xáo trộn nhiều hoặc gắn chặt với trạng thái GUI, phân tích có thể bỏ lỡ các lệnh hoặc tạo ra các wrapper không đầy đủ. Bước tinh chỉnh giúp ích, nhưng phần mềm độc quyền phức tạp có thể khó bao bọc một cách sạch sẽ.

button

FAQ

CLI-Anything có hoạt động với bất kỳ phần mềm nào không?

Về nguyên tắc, có. Nó có thể tạo CLI cho bất kỳ phần mềm nào có cơ sở mã có thể truy cập được. Trên thực tế, nó hoạt động tốt nhất với phần mềm mã nguồn mở, nơi mã nguồn ánh xạ rõ ràng các hành động GUI tới các lệnh gọi API cơ bản. Dự án đã thử nghiệm nó trên GIMP, Blender, Inkscape, Audacity, Kdenlive, Shotcut, OBS Studio, Draw.io, LibreOffice, AnyGen và Zoom.

Dự án có miễn phí để sử dụng không?

Có. CLI-Anything được cấp phép MIT và hoàn toàn mã nguồn mở tại github.com/HKUDS/CLI-Anything.

Tôi có cần biết Python để sử dụng nó không?

Không. Bạn không cần viết bất kỳ mã Python nào. Plugin tạo tất cả mã Python. Bạn cần có Python 3.10+ được cài đặt trên hệ thống của mình để chạy các CLI đã tạo.

Tôi có thể sử dụng CLI đã tạo từ mã của riêng mình, không chỉ từ một tác nhân AI không?

Có. CLI đã tạo là một công cụ dòng lệnh thông thường. Bạn có thể gọi nó từ các shell script, Makefiles, mã Python hoặc bất kỳ thứ gì có thể chạy một quy trình con.

Tệp HARNESS.md là gì?

`HARNESS.md` là tài liệu đặc tả định nghĩa giao diện của một giao diện do CLI-Anything tạo ra. Nó bao gồm cấu trúc lệnh, định dạng đầu ra, yêu cầu kiểm thử và đóng gói. Bước xác thực kiểm tra CLI đã tạo của bạn so với đặc tả này.

Tôi có thể tạo CLI cho các công cụ nội bộ mà công ty tôi đã xây dựng không?

Có. Hướng plugin đến bất kỳ cơ sở mã nào trên hệ thống tệp của bạn, bao gồm cả các công cụ nội bộ riêng tư. Plugin chạy cục bộ và không gửi mã nguồn của bạn đi bất cứ đâu.

Điều này so với Giao thức Ngữ cảnh Mô hình (MCP) như thế nào?

MCP kết nối các tác nhân AI với các dịch vụ bên ngoài thông qua một giao thức máy chủ được chuẩn hóa. CLI-Anything tạo các wrapper CLI cục bộ cho các ứng dụng GUI không có API. Chúng giải quyết các vấn đề khác nhau. Bạn có thể sử dụng cả hai: MCP cho các dịch vụ đám mây, CLI-Anything cho phần mềm máy tính để bàn.

Tài nguyên bổ sung

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API