
AI 에이전트가 코드를 작성하고, 터미널 명령을 실행하고, API를 호출하는 건 이제 흔한 일이다. 하지만 GIMP로 이미지를 편집하거나 Blender로 3D 모델을 렌더링하거나 LibreOffice로 문서를 생성하라고 하면? 에이전트는 무력하다. GUI를 클릭할 수 없으니까.
CLI-Anything가 이 간극을 메운다. 홍콩대학교 데이터과학연구소(HKUDS)에서 개발한 이 도구는 모든 소프트웨어를 AI 에이전트가 제어 가능한 CLI로 자동 변환한다.
문제: AI 에이전트는 “진짜 도구”를 못 쓴다
현재의 한계
AI 에이전트가 전문 소프트웨어를 사용하려면 세 가지 선택지가 있다:
| 방식 | 문제점 |
|---|---|
| UI 자동화 (RPA) | 스크린샷 캡처, 픽셀 클릭 — 깨지기 쉽고 느리고 불안정 |
| 제한된 API | 대부분의 소프트웨어는 API가 없거나 기능의 10%만 노출 |
| 대체재 구현 | ”GIMP 대신 Pillow 쓰세요” — 기능의 90%를 포기해야 함 |
결국 에이전트는 “진짜 GIMP”가 아니라 “GIMP의 극히 일부 기능만 가진 장난감”을 쓰게 된다.
CLI-Anything의 철학
“실제 소프트웨어를 사용하라. 대체재가 아닌 진짜 GIMP, 진짜 Blender를 호출하라.”
CLI-Anything은 소프트웨어를 재작성하지 않는다. 소프트웨어의 전체 기능을 CLI로 노출하는 인터페이스를 자동 생성한다. 에이전트는 이 CLI를 통해 진짜 소프트웨어 백엔드를 호출한다.
7단계 파이프라인: 소프트웨어를 CLI로 변환하는 과정
CLI-Anything은 하나의 명령으로 전체 CLI를 생성한다:
/cli-anything ./gimp
이 명령 하나로 다음 7단계가 자동 실행된다:
1단계: Analyze (분석)
소스코드를 스캔하여 GUI 액션을 API로 매핑한다. 어떤 버튼이 어떤 함수를 호출하는지, 어떤 메뉴가 어떤 기능을 수행하는지 분석한다.
2단계: Design (설계)
명령 그룹, 상태 모델, 출력 포맷을 설계한다. gimp layer add, gimp filter blur 같은 명령 구조를 만든다.
3단계: Implement (구현)
Click 기반 CLI를 구축한다. REPL 인터페이스, JSON 출력, undo/redo 기능을 포함한다.
4단계: Plan Tests (테스트 계획)
TEST.md 파일에 유닛 테스트와 E2E 테스트 계획을 작성한다.
5단계: Write Tests (테스트 작성)
포괄적인 테스트 스위트를 구현한다. 유닛 테스트 + E2E 테스트 + CLI 서브프로세스 테스트까지.
6단계: Document (문서화)
TEST.md에 테스트 결과를 업데이트하고 사용법을 문서화한다.
7단계: Publish (배포)
setup.py를 생성하고 PATH에 설치한다. 이제 어디서든 cli-anything-gimp --help로 사용 가능하다.
검증된 성과: 9개 소프트웨어, 1,436개 테스트
CLI-Anything은 이론만이 아니다. 9개의 복잡한 오픈소스 소프트웨어에 적용되어 1,436개의 테스트를 100% 통과했다.
| 소프트웨어 | 도메인 | CLI 명령 | 백엔드 | 테스트 |
|---|---|---|---|---|
| 🎨 GIMP | 이미지 편집 | cli-anything-gimp | Pillow + GEGL | 107 |
| 🧊 Blender | 3D 모델링 | cli-anything-blender | bpy (Python) | 208 |
| ✏️ Inkscape | 벡터 그래픽 | cli-anything-inkscape | SVG/XML | 202 |
| 🎵 Audacity | 오디오 제작 | cli-anything-audacity | wave + sox | 161 |
| 📄 LibreOffice | 오피스 스위트 | cli-anything-libreoffice | ODF + headless | 158 |
| 📹 OBS Studio | 라이브 스트리밍 | cli-anything-obs-studio | JSON + obs-websocket | 153 |
| 🎞️ Kdenlive | 비디오 편집 | cli-anything-kdenlive | MLT XML + melt | 155 |
| 🎬 Shotcut | 비디오 편집 | cli-anything-shotcut | MLT XML + melt | 154 |
| 📐 Draw.io | 다이어그램 | cli-anything-drawio | mxGraph XML | 138 |
| 총계 | 1,436 |
테스트 계층 구조
각 CLI는 4개 계층의 테스트를 거친다:
- 유닛 테스트 — 합성 데이터로 각 함수를 격리 테스트
- E2E 테스트 (네이티브) — 프로젝트 파일 생성 파이프라인 검증
- E2E 테스트 (진짜 백엔드) — 실제 소프트웨어 호출 + 출력 검증
- CLI 서브프로세스 테스트 — 설치된 명령어를 subprocess로 실행
LibreOffice는 진짜로 PDF를 생성하고 (%PDF- 매직 바이트 확인), Blender는 진짜로 PNG를 렌더링한다. 장난감이 아닌 진짜다.
에이전트 네이티브 설계
JSON 출력 지원
모든 명령어에 --json 플래그가 있다:
cli-anything-gimp --json layer add -n "Background" --type solid --color "#1a1a2e"
에이전트는 구조화된 JSON을 받아 파싱 없이 바로 사용할 수 있다.
REPL 인터페이스
명령어만 입력하면 대화형 REPL 모드로 진입한다:
cli-anything-gimp
# > project new --width 1920 --height 1080
# > layer add -n "Background"
# > filter apply --type blur --radius 5
# > export --format png --output poster.png
상태를 유지하며 연속적인 작업이 가능하다. undo/redo도 지원한다.
표준 발견 가능성
에이전트는 --help와 which 명령으로 도구를 발견할 수 있다:
which cli-anything-gimp
# /usr/local/bin/cli-anything-gimp
cli-anything-gimp --help
# Usage: cli-anything-gimp [OPTIONS] COMMAND [ARGS]...
#
# Commands:
# project Create and manage GIMP projects
# layer Layer operations
# filter Apply filters
# export Export to various formats
설치 및 사용법
Claude Code 플러그인으로 설치
# 마켓플레이스 추가
/plugin marketplace add HKUDS/CLI-Anything
# 플러그인 설치
/plugin install cli-anything
이제 Claude Code 세션에서 바로 사용할 수 있다.
수동 설치
git clone https://github.com/HKUDS/CLI-Anything.git
cp -r CLI-Anything/cli-anything-plugin ~/.claude/plugins/cli-anything
/reload-plugins
새 소프트웨어에 CLI 생성
# 소스코드가 있는 디렉토리 지정
/cli-anything ./my-software
# 설치
cd my-software/agent-harness && pip install -e .
# 사용
cli-anything-my-software --help
활용 시나리오
창작 워크플로우 자동화
에이전트가 GIMP로 이미지를 편집하고, Blender로 3D 모델을 렌더링하고, Kdenlive로 영상을 편집할 수 있다. 진짜 소프트웨어를 호출하니 기능 제약이 없다.
문서 생성 파이프라인
LibreOffice CLI로 문서를 생성하고 PDF로 변환한다. Draw.io CLI로 다이어그램을 만들고 문서에 삽입한다. 모든 것이 프로그래밍 가능하다.
라이브 스트리밍 제어
OBS Studio CLI로 씬을 전환하고 소스를 관리한다. 에이전트가 시청자 반응에 따라 자동으로 레이아웃을 조정할 수도 있다.
기존 코드베이스 에이전트화
오픈소스 프로젝트를 찾아 CLI-Anything에 넣으면 된다. VSCodium, WordPress, Joplin, Logseq 등 수천 개의 프로젝트가 에이전트 제어 가능한 도구로 변환된다.
기술적 특징
진짜 소프트웨어 백엔드 호출
CLI-Anything은 소프트웨어를 재작성하지 않는다. 유효한 프로젝트 파일(ODF, MLT XML, SVG)을 생성하고 실제 소프트웨어에 렌더링을 위임한다.
소프트웨어로의 구조화된 인터페이스를 만드는 것이지, 대체재를 만드는 것이 아니다.
유연한 인터랙션 모델
모든 CLI는 두 가지 모드로 동작한다:
- REPL 모드 — 대화형 에이전트 세션용
- 서브커맨드 모드 — 스크립팅/파이프라인용
일관된 사용자 경험
모든 생성된 CLI는 통일된 REPL 인터페이스(repl_skin.py)를 공유한다:
- 브랜디드 배너
- 스타일이 적용된 프롬프트
- 명령 히스토리
- 진행 표시기
- 표준화된 포맷팅
타협 없는 의존성
진짜 소프트웨어가 필수 요구사항이다. 대체재나 우아한退化(graceful degradation)는 없다. 백엔드가 없으면 테스트가 실패(skip이 아니라 fail)한다.
마치며: 모든 소프트웨어가 에이전트의 도구가 되는 세상
CLI-Anything은 단순한 CLI 생성기가 아니다. 인간을 위해 설계된 모든 소프트웨어를 AI 에이전트가 사용 가능한 도구로 변환하는 다리다.
핵심 통찰은 단순하다:
- CLI는 인간과 AI 에이전트 모두에게 보편적 인터페이스다
- 소프트웨어를 재작성하지 말고, 인터페이스를 생성하라
- 진짜 소프트웨어를 호출하라, 장난감이 아니라
이 접근법의 아름다움은 범용성에 있다. GIMP든 Blender든 LibreOffice든, 소스코드만 있으면 된다. /cli-anything 한 번이면 에이전트가 그 소프트웨어의 전체 기능에 접근할 수 있다.
1,436개 테스트의 100% 통과율은 이것이 프로토타입이 아니라 프로덕션 레디임을 증명한다. 이미지 편집, 3D 렌더링, 비디오 편집, 문서 생성 — 모든 것이 명령행 하나로 가능하다.
AI 에이전트가 “진짜 도구”를 못 쓴다는 말은 이제 구시대의 이야기가 되었다.
🔗 관련 정보
- GitHub: https://github.com/HKUDS/CLI-Anything
- Claude Code 플러그인:
/plugin marketplace add HKUDS/CLI-Anything - 라이선스: MIT
- 개발: HKUDS (Hong Kong University Data Science Lab)