CLI-Anything은 AI 코딩 에이전트(주로 Claude Code)를 위한 오픈 소스 플러그인입니다. 코드베이스가 있는 모든 소프트웨어에 대해 완전한 명령줄 인터페이스(CLI)를 자동으로 생성할 수 있습니다. 예를 들어 GIMP, Blender, LibreOffice 같은 데스크톱 애플리케이션에 CLI-Anything을 적용하면, AI 에이전트가 해당 소프트웨어를 프로그래밍 방식으로 제어할 수 있는 구조화된 CLI를 만들어줍니다.
문제: AI 에이전트가 GUI 소프트웨어를 자동화할 수 없음
현재 소프트웨어 스택은 두 가지로 나뉩니다. 하나는 HTTP API를 제공하는 클라우드 서비스(예: 결제, 이메일, 분석 등)이고, 다른 하나는 GIMP, Blender, LibreOffice, Audacity와 같이 GUI만 제공하는 데스크톱 소프트웨어입니다. 후자의 소프트웨어는 구조화된 API 없이 사람의 클릭만을 기다립니다.
AI 에이전트가 이러한 GUI 소프트웨어를 자동화하려면, 직접 래퍼를 짜거나(RPA), 픽셀 단위 자동화에 의존해야 합니다. 하지만 이는 유지보수에 취약하고 신뢰성이 떨어집니다.
CLI-Anything은 소스 코드를 분석해서 GUI가 내부적으로 호출하는 API를 찾아내고, 그 위에 실제 CLI를 만듭니다. 이제 AI 에이전트는 화면을 해석할 필요 없이 명령만으로 소프트웨어를 조작할 수 있습니다.
💡 에이전트 워크플로가 로컬 소프트웨어와 외부 REST API를 함께 호출해야 한다면, Apidog가 API 테스트‧관리 측면을 처리합니다. API 요청을 보내고, 검사하고, 정리하는 무료 도구이니, 에이전트 워크플로에 통합 전에 API 통합을 미리 검증하세요.
CLI-Anything의 기능
CLI-Anything은 HKUDS (홍콩대학교 데이터 과학 연구소)에서 오픈 소스로 개발되었습니다. 제작자는 다음과 같이 말합니다:
"오늘날의 소프트웨어는 인간에게 봉사합니다. 내일의 사용자는 에이전트가 될 것입니다. CLI-Anything: AI 에이전트와 전 세계 소프트웨어 간의 격차를 해소합니다. 모든 소프트웨어를 에이전트 사용 가능하게 만드는 하나의 명령줄."
프로젝트는 GitHub에서 6,100개 이상의 별을 받았습니다.
CLI-Anything은 Claude Code(메인), Codex, OpenCode에서 동작하며, 소프트웨어의 코드베이스를 지정하면 아래 7단계 파이프라인을 자동 실행합니다:
- 분석(Analyze): 소스 코드 스캔, GUI 동작을 내부 API에 매핑, SOP 문서(GIMP.md 등) 생성
- 설계(Design): 명령 그룹, 상태 모델, 출력 형식 설계
-
구현(Implement): Click 기반 Python CLI, REPL,
--json지원, 실행 취소/다시 실행 등 포함 - 테스트 계획(Plan tests): TEST.md에 단위 및 E2E 테스트 플랜 생성
- 테스트 작성(Write tests): test_core.py(단위), test_full_e2e.py(E2E)
- 문서화(Document): pytest 실행, 결과를 TEST.md에 기록
- 배포(Publish): setup.py 생성, 콘솔 스크립트 등록, PATH에 설치
이 7단계가 끝나면, 시스템에 작동하는 CLI가 설치됩니다. AI 에이전트는 예를 들어 which cli-anything-gimp로 검색, cli-anything-gimp --help로 명령을 탐색합니다.
모든 CLI는 일관된 설계(사람이 읽는 테이블 출력, --json 기계 출력, REPL, 실행 취소/재실행 등)를 따르므로, 에이전트는 새로운 툴마다 별도의 인터페이스를 익힐 필요가 없습니다.
CLI-Anything 설치
CLI-Anything은 Python 기반 플러그인입니다. AI 코딩 에이전트에 설치하며, 생성된 CLI는 pip install -e .로 설치합니다.
필수 조건:
- Python 3.10 이상
- 대상 소프트웨어가 로컬에 설치되어 있어야 함
- 지원 에이전트: Claude Code(메인), Codex, OpenCode(실험적)
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 필요
- 네이티브 PowerShell 미지원
-
cygpath: command not found오류 시 Git for Windows 설치 필요
생성된 CLI 설치
플러그인이 소프트웨어용 CLI를 생성한 후, 아래처럼 설치합니다:
cd <software>/agent-harness
pip install -e .
-e 옵션으로 소스 변경 시 재설치 불필요
첫 CLI 생성하기
설치 후, 생성은 단일 명령으로 가능합니다. 예시(GIMP):
Claude Code에서:
/cli-anything ./gimp
GitHub 저장소에서:
/cli-anything https://github.com/blender/blender
파이프라인이 실행되며, 소프트웨어 복잡도에 따라 수 분 소요.
1단계에서 GUI 동작 <-> 내부 API 매핑, SOP 문서 생성(GIMP.md)
3단계에서 Click 프레임워크 기반 Python CLI 코드 생성(--json 지원, 상태 저장, REPL 포함)
생성된 디렉터리 구조 예시:
gimp/
agent-harness/
GIMP.md
setup.py
cli_anything/
gimp/
README.md
gimp_cli.py
core/
utils/
tests/
test_core.py
test_full_e2e.py
TEST.md
CLI 네임스페이스는 cli_anything.* (예: cli_anything.gimp)로 여러 앱 지원 시 이름 충돌 방지
생성된 CLI 사용하기
agent-harness 디렉터리에서 설치 후 아래처럼 사용합니다:
cli-anything-gimp --help
모든 명령 그룹/서브명령 확인
CLI 이름은 항상 cli-anything-<소프트웨어> 패턴
사람이 읽을 수 있는 출력(기본)
# 새 프로젝트 시작
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 출력
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 모드
cli-anything-gimp
컬러 프롬프트, 탭 완성, 영구 기록 지원. 스크립트화 전에 명령 실험 가능.
실행 취소/다시 실행
cli-anything-gimp undo
cli-anything-gimp redo
상태 변경 작업은 50단계까지 실행 취소/재실행 지원
CLI 개선 및 테스트
CLI-Anything은 /cli-anything:refine 명령으로 누락된 명령을 자동 보완합니다.
일반 개선
/cli-anything:refine /home/user/gimp
API 표면과 비교, 빠진 명령 자동 추가
집중 개선
/cli-anything:refine /home/user/blender "particle systems and physics simulation"
특정 영역만 집중적으로 보완
테스트 실행
/cli-anything:test /home/user/gimp
테스트 스위트 실행, TEST.md 갱신
유효성 검사
/cli-anything:validate /home/user/gimp
HARNESS.md 사양에 맞는지 구조적 검사
사용 가능한 CLI 목록 확인
/cli-anything:list
/cli-anything:list --json # 기계가 읽는 출력
/cli-anything:list --path /home # 특정 디렉토리 대상
실제 사용 사례
CLI-Anything은 아래와 같이 11개 애플리케이션에서 자동화 파이프라인을 구현합니다.
GIMP로 이미지 처리 파이프라인
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
AI 에이전트가 이미지 크기 조정, 워터마크 적용, 포맷 변환을 자동 수행
LibreOffice로 문서 생성
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
송장 등 동적 데이터 채워서 PDF 생성 자동화
Blender로 3D 렌더링
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로 스트리밍 자동화
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 통합
이 모든 명령은 GitHub Actions 등 CI 파이프라인에 통합할 수 있습니다. 예: Blender 렌더 자동 빌드, LibreOffice로 릴리스 노트 PDF 생성 등.
Apidog로 에이전트 워크플로 구축
CLI-Anything은 로컬 소프트웨어 자동화에 집중합니다. 하지만 실제 워크플로에서는 외부 API 호출도 필요합니다(예: CDN 업로드, 문서 시스템 전송 등).
Apidog는 REST API를 테스트, 문서화, 자동화할 수 있는 무료 API 클라이언트입니다.
예시: GIMP로 이미지 처리 후 API 업로드
- Apidog 환경에 API 자격증명 변수 저장
- 샘플 파일로 업로드 엔드포인트 테스트
- 응답 반환값(파일 URL 등)에 단언 추가
- 성공한 요청을 curl/코드 스니펫으로 내보내 에이전트 스크립트에 삽입
이렇게 하면, 코드를 작성하고 디버깅하는 대신, API 연동부터 미리 검증할 수 있습니다. Apidog는 자동화 테스트 스위트도 지원하므로, 워크플로 실행마다 회귀를 체크할 수도 있습니다.
알아두어야 할 제한 사항
Windows 지원
- Git Bash(bash, cygpath) 또는 WSL 필요
- 네이티브 PowerShell 미지원
대상 소프트웨어 사전 설치 필요
- GIMP, Blender 등 실제 소프트웨어가 로컬에 설치되어야 함 (CLI-Anything이 소프트웨어를 번들로 제공하지 않음)
Python 전용 출력
- 생성된 CLI는 Python Click 기반. Node.js, Go 등 별도 래퍼 필요 시 직접 구현 필요
Claude Code 환경 권장
- 가장 안정적이며, Codex/OpenCode는 실험적
생성 품질은 코드 구조에 영향받음
- 소스 코드가 구조화되어 있지 않거나, 난독화/강결합되어 있으면 분석 정확도가 떨어질 수 있음
자주 묻는 질문
CLI-Anything은 모든 소프트웨어에서 동작하나요?
접근 가능한 코드베이스가 있다면 원칙적으로 가능. 오픈 소스 소프트웨어(GIMP, Blender, Inkscape 등)에서 가장 잘 작동합니다.
무료인가요?
네, MIT 라이선스의 완전한 오픈 소스입니다. github.com/HKUDS/CLI-Anything
Python을 알아야 하나요?
아니요. Python 코드를 직접 작성할 필요 없음. 단, Python 3.10 이상 설치 필요
AI 에이전트 외 내 코드(스크립트 등)에서도 사용 가능한가요?
네, 일반 CLI이므로 셸 스크립트, Makefile, Python 등 어디서든 호출 가능
HARNESS.md 파일은?
CLI-Anything의 명령 구조, 출력 형식, 테스트 요구사항, 패키징 등 사양이 기술된 문서. 유효성 검사 단계에서 활용
내부 도구(비공개 코드)에도 적용 가능한가요?
네. 로컬 코드베이스만 있으면 가능. 플러그인은 소스코드를 외부로 전송하지 않습니다.
MCP(Model Context Protocol)와의 차이는?
MCP는 외부 서비스용 표준 서버 프로토콜, CLI-Anything은 로컬 GUI 앱용 CLI 래퍼 생성. 목적이 다름
Top comments (0)