CLI-Anything 사용법: 모든 소프트웨어를 에이전트 네이티브로 만들기

Herve Kom

Herve Kom

17 March 2026

CLI-Anything 사용법: 모든 소프트웨어를 에이전트 네이티브로 만들기

CLI-Anything은 AI 코딩 에이전트(주로 Claude Code)를 위한 오픈 소스 플러그인으로, 코드베이스가 있는 모든 소프트웨어에 대해 완전한 명령줄 인터페이스를 생성합니다. GIMP, Blender, LibreOffice 또는 다른 어떤 애플리케이션에 CLI-Anything을 적용하면, 소스 코드를 분석하여 AI 에이전트가 해당 소프트웨어를 프로그래밍 방식으로 제어하는 데 사용할 수 있는 구조화된 CLI를 생성합니다.

문제: AI 에이전트가 GUI 소프트웨어를 사용할 수 없음

오늘날의 소프트웨어 스택은 서로 거의 소통하지 않는 두 가지 세계로 나뉘어 있습니다.

한쪽에는 클라우드 스토리지, 결제 처리기, 이메일 제공업체, 분석 플랫폼과 같은 현대적인 API-first 서비스가 있습니다. 이들은 HTTP를 사용합니다. AI 에이전트는 특별한 도구 없이도 이들을 직접 호출할 수 있습니다.

다른 한쪽에는 대부분의 전문 워크플로가 의존하는 소프트웨어, 즉 이미지 편집을 위한 GIMP, 3D 작업을 위한 Blender, 문서를 위한 LibreOffice, 오디오를 위한 Audacity가 있습니다. 이들은 사람이 클릭하여 사용하도록 만들어졌습니다. 이들은 구조화된 API가 아닌 그래픽 인터페이스를 노출합니다.

AI 에이전트를 이 두 번째 범주의 소프트웨어에 연결하려고 하면 옵션이 제한적입니다. 수동으로 사용자 지정 래퍼를 작성할 수 있지만, 이는 몇 주가 걸리고 소프트웨어 업데이트 시 깨집니다. 스크린샷과 픽셀 클릭을 통해 GUI 상호 작용을 자동화하는 로봇 프로세스 자동화(RPA) 도구를 시도할 수 있습니다. 그러나 RPA는 취약합니다. 창 레이아웃이 변경되거나 테마가 업데이트되거나 디스플레이 스케일링이 바뀌면 깨집니다.

CLI-Anything은 다른 접근 방식을 취합니다. 메뉴를 클릭하는 인간을 시뮬레이션하는 대신, 소프트웨어의 소스 코드를 분석하여 GUI가 이미 호출하고 있는 기본 API를 찾습니다. 그런 다음 해당 API를 직접 호출하는 실제 CLI를 생성합니다.

AI 에이전트는 화면을 "볼" 필요가 없습니다. 구조화된 명령을 발행하면 소프트웨어가 작업을 수행합니다.

💡
에이전트 워크플로가 로컬 소프트웨어와 함께 외부 REST API도 호출해야 하는 경우, Apidog가 API 테스트 측면을 처리합니다. 이는 API 요청을 보내고, 검사하고, 정리하는 무료 도구이므로, 에이전트 워크플로에 통합하기 전에 API 통합을 확인할 수 있습니다.
button

CLI-Anything의 기능

CLI-Anything은 HKUDS (홍콩대학교 데이터 과학 연구소)에서 구축한 오픈 소스 플러그인입니다. 제작자인 차오 황(Chao Huang)은 프로젝트 발표에서 다음과 같이 말했습니다:

"오늘날의 소프트웨어는 인간에게 봉사합니다. 내일의 사용자는 에이전트가 될 것입니다. CLI-Anything: AI 에이전트와 전 세계 소프트웨어 간의 격차를 해소합니다. 모든 소프트웨어를 에이전트 사용 가능하게 만드는 하나의 명령줄."

작성 시점 기준으로 이 프로젝트는 GitHub에서 6,100개 이상의 별을 받았습니다.

이 플러그인은 Claude Code 내에서 작동하며(실험적으로 Codex 및 OpenCode에서도 가능), 소프트웨어의 코드베이스를 지정하면 7단계 자동화 파이프라인을 실행합니다:

  1. 분석(Analyze) - 소스 코드를 스캔하고, GUI 동작을 기본 API에 매핑하며, 소프트웨어별 표준 운영 절차 문서를 생성합니다.
  2. 설계(Design) - 명령 그룹, 상태 모델 및 출력 형식을 설계합니다.
  3. 구현(Implement) - REPL 모드, --json 출력 지원, 실행 취소/다시 실행 기능을 갖춘 Click 기반 Python CLI를 구축합니다.
  4. 테스트 계획(Plan tests) - 단위 및 엔드투엔드 테스트 계획이 포함된 TEST.md 파일을 생성합니다.
  5. 테스트 작성(Write tests) - test_core.py(합성 데이터로 단위 테스트) 및 test_full_e2e.py(실제 파일로 엔드투엔드 테스트)를 작성합니다.
  6. 문서화(Document) - pytest를 실행하고 전체 결과를 TEST.md에 추가합니다.
  7. 배포(Publish) - setup.py를 생성하고, 콘솔 스크립트 진입점을 구성하며, PATH에 설치합니다.

7단계가 완료되면 시스템에 작동하는 CLI가 설치됩니다. AI 에이전트는 which cli-anything-gimp로 CLI를 검색하고, cli-anything-gimp --help로 검사한 후 명령을 실행할 수 있습니다.

생성된 모든 CLI는 일관된 디자인을 따릅니다: 기본적으로 사람이 읽을 수 있는 테이블 출력, --json 플래그를 통한 기계가 읽을 수 있는 JSON 출력, 영구 프로젝트 상태, 실행 취소/다시 실행, 그리고 대화형 REPL 모드. 이러한 일관성은 중요합니다. 에이전트가 모든 도구에 대해 다른 인터페이스를 배울 필요가 없습니다.

CLI-Anything 설치

CLI-Anything은 Python 기반 플러그인입니다. npm 패키지가 아닙니다. AI 코딩 에이전트에 설치되며, 생성된 CLI는 pip install -e .로 설치되는 Python 패키지입니다.

요구 사항:

Claude Code (주요 방법)

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

이것은 플러그인을 설치하고 Claude Code 세션에서 /cli-anything 슬래시 명령을 사용할 수 있도록 합니다.

OpenCode

레포를 클론한 다음, 명령 파일과 HARNESS.md~/.config/opencode/commands/에 복사합니다. 이렇게 하면 /cli-anything, /cli-anything-refine, /cli-anything-test, /cli-anything-validate, /cli-anything-list의 다섯 가지 슬래시 명령이 추가됩니다.

Codex

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

Qodercli

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

Windows 참고 사항

플러그인은 Git for Windows(bash 및 cygpath 포함) 또는 WSL이 필요합니다. 네이티브 Windows 셸은 지원되지 않습니다. cygpath: command not found 오류가 발생하면 Git for Windows를 설치하고 다시 시도하십시오.

생성된 CLI 설치

플러그인이 소프트웨어용 CLI를 생성한 후, PATH에 설치합니다:

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

이것은 편집 가능한 설치 모드(-e)를 사용하므로, 생성된 소스에 대한 변경 사항이 재설치 없이 유지됩니다.

첫 CLI 생성하기

플러그인이 설치되면, 생성은 단일 명령으로 이루어집니다. 다음은 GIMP의 워크플로입니다:

Claude Code에서:

/cli-anything ./gimp

또는 GitHub 저장소에서:

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

플러그인은 7단계 파이프라인을 시작합니다. 이는 코드베이스의 크기와 소프트웨어가 노출하는 API 표면 수에 따라 몇 분이 걸릴 수 있습니다.

1단계(분석) 동안 플러그인은 소스 코드를 읽고 GUI 동작을 기본 API 호출에 매핑하는 지도를 만듭니다. GIMP와 같은 이미지 편집기의 경우, 이는 레이어를 생성하고, 필터를 적용하고, 파일을 내보내고, 프로젝트를 관리하는 모든 함수를 찾는 것을 의미합니다. 이는 완전한 작업 세트를 설명하는 소프트웨어별 SOP 문서(GIMP.md)를 생성합니다.

3단계(구현) 동안에는 Python의 Click 프레임워크를 사용하여 CLI를 구축합니다. 모든 명령은 --json 출력을 지원합니다. 모든 상태 저장 작업(파일 열기, 프로젝트 생성)은 JSON 파일에 상태를 저장합니다. CLI에는 색상 프롬프트와 영구 기록이 있는 대화형 REPL이 포함되어 있습니다.

생성된 디렉토리 구조는 다음과 같습니다:

gimp/
  agent-harness/
    GIMP.md           # 소프트웨어 SOP 문서
    setup.py
    cli_anything/     # 네임스페이스 패키지 (__init__.py 없음 - PEP 420)
      gimp/
        README.md
        gimp_cli.py   # 메인 CLI 진입점
        core/         # 프로젝트, 세션, 내보내기 모듈
        utils/        # REPL 스킨, 헬퍼
        tests/
          test_core.py
          test_full_e2e.py
          TEST.md

생성된 모든 CLI는 cli_anything.* 네임스페이스(예: cli_anything.gimp) 아래에 있습니다. 이렇게 하면 여러 애플리케이션용 CLI를 생성할 때 이름 충돌을 방지할 수 있습니다.

생성된 CLI 사용하기

agent-harness 디렉토리에서 pip install -e .를 실행한 후, 새로운 CLI를 사용할 수 있습니다:

cli-anything-gimp --help

이것은 사용 가능한 모든 명령 그룹과 하위 명령을 보여줍니다. 명명법은 일관적입니다: 모든 도구는 cli-anything-<소프트웨어>라는 이름의 CLI를 생성합니다.

사람이 읽을 수 있는 출력 (기본)

# 새 프로젝트 시작
cli-anything-gimp project new --width 1920 --height 1080

# 레이어 목록
cli-anything-gimp layer list

# 레이어 추가
cli-anything-gimp layer add --name "Background" --type solid --color "#ffffff"

# 필터 적용
cli-anything-gimp filter apply --name "gaussian-blur" --radius 3

# 내보내기
cli-anything-gimp export save --format png --output ./output.png

AI 에이전트를 위한 JSON 출력

AI 에이전트가 CLI를 호출할 때, 기계가 읽을 수 있는 출력을 얻기 위해 --json을 사용합니다:

cli-anything-gimp --json project new --width 1920 --height 1080
# 반환: {"status": "ok", "project_id": "proj_abc123", "width": 1920, "height": 1080}

cli-anything-gimp --json layer add -n "Background"
# 반환: {"status": "ok", "layer_id": "layer_001", "name": "Background"}

JSON 출력은 모든 명령에서 일관적입니다: status, 작업별 필드, 그리고 문제가 발생했을 때의 오류 세부 정보.

대화형 REPL 모드

확장 세션의 경우 REPL을 실행합니다:

cli-anything-gimp

이렇게 하면 색상 프롬프트, 탭 완성 및 영구 기록이 있는 대화형 셸로 이동합니다. 워크플로를 구축하고 스크립트화하기 전에 명령을 대화식으로 시도하고 싶을 때 유용합니다.

실행 취소/다시 실행

상태를 수정하는 작업은 50단계의 실행 취소 스택을 지원합니다:

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

CLI 개선 및 테스트

생성된 CLI는 항상 첫 번째 시도에서 완전하지는 않습니다. /cli-anything:refine 명령은 간극 분석을 수행하고 누락된 명령을 추가합니다.

일반 개선

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

이것은 소프트웨어의 API 표면과 비교하여 기존 CLI를 스캔하고, 다루지 않은 작업을 식별하며, 간극에 대한 새로운 명령을 추가합니다.

집중 개선

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

어떤 영역에 더 많은 커버리지가 필요한지 알고 있다면, 초점 설명을 전달하십시오. 플러그인은 모든 것을 재분석하는 대신 코드베이스의 해당 부분을 대상으로 합니다.

테스트 실행

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

이것은 테스트 스위트를 실행하고 TEST.md를 결과로 업데이트합니다. 이 프로젝트는 11개 애플리케이션에서 1,508개 이상의 통과 테스트와 100% 통과율을 보고합니다.

유효성 검사

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

CLI 하네스가 모든 구조적 요구 사항을 충족하는지 확인하기 위해 HARNESS.md 사양에 대해 검사합니다.

사용 가능한 CLI 목록

/cli-anything:list
/cli-anything:list --json        # 기계가 읽을 수 있는 출력
/cli-anything:list --path /home  # 특정 디렉토리에서 검색

실제 사용 사례

CLI-Anything은 11개 애플리케이션에서 시연되었습니다. 다음은 각 범주가 실제 워크플로에 어떻게 매핑되는지 보여줍니다.

GIMP를 사용한 이미지 처리 파이프라인

AI 에이전트는 제품 이미지 배치를 처리할 수 있습니다: 표준 치수로 크기를 조정하고, 일관된 워터마크를 적용하고, 여러 형식으로 내보냅니다. 각 단계는 구조화된 CLI 명령입니다. 에이전트는 사람의 개입 없이 수백 개의 이미지를 처리할 수 있습니다.

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

LibreOffice를 사용한 문서 생성

LibreOffice는 실제 PDF를 생성합니다. 에이전트는 템플릿에서 송장, 보고서 또는 계약서를 생성하고, 동적 데이터를 채우고, PDF로 내보낼 수 있으며, 이 모든 것을 스크립트에서 수행할 수 있습니다.

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

Blender를 사용한 3D 렌더링

Blender 렌더링은 시간이 걸리지만 스크립트화할 수 있습니다. 에이전트는 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

OBS Studio를 사용한 스트리밍 자동화

OBS는 방송 도구입니다. CLI-Anything을 사용하면 장면 전환, 소스 관리 및 녹화 제어를 스크립트화할 수 있습니다:

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

CI/CD 통합

이러한 모든 기능은 CI/CD 파이프라인에 통합될 수 있습니다. 모든 커밋에서 Blender 렌더를 빌드하는 GitHub 액션이나 LibreOffice 템플릿에서 PDF 릴리스 노트를 생성하는 워크플로는 모두 간단해집니다.

Apidog로 에이전트 워크플로 구축

CLI-Anything은 로컬 소프트웨어를 처리합니다. 그러나 대부분의 프로덕션 에이전트 워크플로는 외부 API도 호출해야 합니다: 처리된 이미지를 CDN에 업로드하고, 생성된 PDF를 문서 관리 시스템에 푸시하며, 렌더링된 비디오를 검토 플랫폼으로 보냅니다.

Apidog가 이러한 측면을 처리합니다. 이는 REST API 호출을 테스트, 문서화 및 자동화하기 위한 무료 API 클라이언트입니다.

여기 구체적인 예가 있습니다: GIMP로 제품 이미지를 처리하고 클라우드 스토리지 API에 업로드하는 에이전트를 구축하고 있습니다. CLI-Anything은 GIMP 명령을 제공합니다. Apidog를 사용하면 애플리케이션 코드를 작성하기 전에 스토리지 API를 테스트할 수 있습니다.

Apidog에서는 다음을 수행합니다:

  1. API 자격 증명을 변수로 저장하는 환경을 설정합니다.
  2. 요청 형식을 확인하기 위해 샘플 파일로 업로드 엔드포인트를 테스트합니다.
  3. 파일 URL이 올바르게 반환되는지 확인하기 위해 응답에 대한 단언(assertion)을 실행합니다.
  4. 작동하는 요청을 curl 명령이나 코드 스니펫으로 내보내 에이전트 스크립트에 삽입합니다.

이렇게 하면 코드를 작성하고, 실행하고, 알 수 없는 오류를 받고, 문제가 GIMP 명령에 있는지 API 호출에 있는지 파악하려는 디버깅 사이클을 줄일 수 있습니다. 통합하기 전에 API가 작동한다는 것을 알 수 있습니다.

Apidog는 자동화된 테스트 스위트도 지원합니다. 워크플로가 작동하면, 모든 실행에서 실행되는 테스트 단언을 추가하여 회귀를 포착할 수 있습니다.

알아두어야 할 제한 사항

Windows 지원에는 Git Bash 또는 WSL 필요

생성된 CLI는 Python 기반이며 bash 스타일의 경로 처리에 의존합니다. Windows에서는 Git for Windows(bash 및 cygpath 포함) 또는 WSL이 필요합니다. 네이티브 PowerShell은 지원되지 않습니다.

대상 소프트웨어는 설치되어 있어야 함

CLI-Anything은 래핑하는 소프트웨어를 번들로 제공하지 않습니다. GIMP, Blender, LibreOffice 및 기타 도구는 생성된 CLI를 실행하는 동일한 머신에 설치되어 있어야 합니다. CLI는 실제 애플리케이션 백엔드를 직접 호출합니다.

Python 전용 출력

생성된 모든 CLI는 Python Click 애플리케이션입니다. 다른 언어로 CLI를 생성하는 옵션은 없습니다. 워크플로에 Node.js 또는 Go CLI 래퍼가 필요한 경우 별도로 구축해야 합니다.

Claude Code는 안정적인 플랫폼

Claude Code는 기본이자 가장 많이 테스트된 환경입니다. Codex 및 OpenCode 통합은 실험적으로 표시됩니다. Claude Code 외부에서는 기능이 일관되지 않게 작동할 수 있습니다.

생성 품질은 코드베이스에 따라 달라짐

플러그인은 소스 코드를 분석하여 GUI 동작 뒤에 있는 API를 찾습니다. 코드베이스가 제대로 구조화되지 않았거나, 심하게 난독화되었거나, GUI 상태와 긴밀하게 결합된 경우, 분석이 명령을 놓치거나 불완전한 래퍼를 생성할 수 있습니다. 개선 단계가 도움이 되지만, 복잡한 독점 소프트웨어는 깨끗하게 래핑하기 더 어려울 수 있습니다.

button

자주 묻는 질문

CLI-Anything은 모든 소프트웨어에서 작동하나요?

원칙적으로는 그렇습니다. 접근 가능한 코드베이스가 있는 모든 소프트웨어에 대해 CLI를 생성할 수 있습니다. 실제로는 소스 코드가 GUI 동작을 기본 API 호출에 명확하게 매핑하는 오픈 소스 소프트웨어에서 가장 잘 작동합니다. 이 프로젝트는 GIMP, Blender, Inkscape, Audacity, Kdenlive, Shotcut, OBS Studio, Draw.io, LibreOffice, AnyGen 및 Zoom에서 이를 시연했습니다.

프로젝트는 무료로 사용할 수 있나요?

네. CLI-Anything은 MIT 라이선스를 따르며 github.com/HKUDS/CLI-Anything에서 완전히 오픈 소스입니다.

사용하려면 Python을 알아야 하나요?

아니요. Python 코드를 작성할 필요는 없습니다. 플러그인이 모든 Python 코드를 생성합니다. 생성된 CLI를 실행하려면 시스템에 Python 3.10 이상이 설치되어 있어야 합니다.

AI 에이전트뿐만 아니라 제 코드에서도 생성된 CLI를 사용할 수 있나요?

네. 생성된 CLI는 일반적인 명령줄 도구입니다. 셸 스크립트, Makefile, Python 코드 또는 서브프로세스를 실행할 수 있는 모든 곳에서 호출할 수 있습니다.

HARNESS.md 파일은 무엇인가요?

HARNESS.md는 CLI-Anything이 생성한 하네스가 어떤 모습이어야 하는지를 정의하는 사양 문서입니다. 명령 구조, 출력 형식, 테스트 요구 사항 및 패키징을 다룹니다. 유효성 검사 단계는 이 사양에 대해 생성된 CLI를 확인합니다.

저희 회사가 만든 내부 도구용 CLI도 생성할 수 있나요?

네. 비공개 내부 도구를 포함하여 파일 시스템에 있는 모든 코드베이스에 플러그인을 지정하십시오. 플러그인은 로컬에서 실행되며 소스 코드를 어디로도 보내지 않습니다.

이것은 모델 컨텍스트 프로토콜(MCP)과 어떻게 비교되나요?

MCP는 표준화된 서버 프로토콜을 통해 AI 에이전트를 외부 서비스에 연결합니다. CLI-Anything은 API가 없는 GUI 애플리케이션을 위한 로컬 CLI 래퍼를 생성합니다. 이들은 다른 문제를 해결합니다. 클라우드 서비스에는 MCP를 사용하고, 데스크톱 소프트웨어에는 CLI-Anything을 사용하는 식으로 둘 다 사용할 수 있습니다.

추가 자료

Apidog에서 API 설계-첫 번째 연습

API를 더 쉽게 구축하고 사용하는 방법을 발견하세요