ai> agent CLI를 조작하고 메뉴를 탐색하고 결과를 확인

어떤 터미널 프로그램이든
사람처럼 조작.

사람이 AI에게 할 일을 지시합니다. 하지만 메뉴, 스피너, 비밀번호 입력란, 에이전트 CLI는 단순한 파이프에는 보이지 않습니다. SmartCLI는 모델이 화면을 인식하고, 키를 누르고, 결과를 확인하게 해줍니다 — 사람이 하는 방식 그대로.

pip install smartcli-toolkit  ·  Windows · POSIX  ·  MIT
SmartCLI driving an agent CLI TUI
문제

당신의 AI는 터미널에서 앞을 보지 못합니다.

전체 화면 프로그램에 파이프를 연결하면 아무것도 나오지 않거나 멈춥니다. SmartCLI로 조작하면 모델이 의미 있는 스냅샷을 읽고, 방향키로 이동하며, 단계마다 검증합니다.

  일반 서브프로세스 / 파이프
$ agent-cli | cat (대기 중…) 아무것도 없음. TUI에는 진짜 터미널이 필요하다 — 그리기가 안 되거나, 그냥 멈춘다. 메뉴 없음. 방향키 없음. 커서 없음.
  drive-tui — 인식 → 조작
[screen 30x100] cursor=r25c6 [stable] ╭─────────────────────────╮ Agent CLI Beta 0.2 New worktree ctrl+w ╰─────────────────────────╯ keys: Down Down model tier: low · switched
✗ 앞을 못 보고 멈춤  →  ✓ 인식하고, 조작하고, 확인함
세 가지 스킬, 하나의 코어

조작하고. 설계하고. 렌더링하라.

각 스킬은 하나의 플러그형 PTY + pyte 화면 모델 위에서 독립적으로 동작하는 도구입니다.

DRIVE-TUI

대화형 TUI 조작

인식 → 판단 → 조작 → 대기 → 확인. 무작정 sleep을 넣지 않고 의미 있는 화면 스냅샷을 읽습니다. 화면을 분류하고 조작합니다.

8 recipes · repl · menu · pager · form · wizard
CMD-ART

터미널 비주얼 이펙트

살아 있는 템플릿형 fx 엔진: 순수 프레임 프로듀서, 자동 탐색, 테마 지원, 트루컬러. 경계가 명확한 재생 루프.

30 effects · 8 themes · donut · cbonsai · spectrum_bars
TUI-UI

셀 단위로 정확한 UI

tmux에서 안전한 ANSI 프레임을 내보내는 웹 스타일 레이아웃 엔진. CSS 박스 모델, flex/grid, CJK 정확 처리로 열이 절대 어긋나지 않습니다.

15 widgets · panel · table · meter · chart
설치 없이 바로 체험

실제 엔진을 직접 만져보세요.

여기 있는 것들은 스킬에 실제로 탑재되는 프리미티브를 그대로 실행합니다 — 브라우저에서 실시간으로. 마음껏 눌러보세요.

CMD-ART
순수 프레임 프로듀서, 30fps — fx 엔진의 발상 그 자체.
DRIVE-TUI ↑↓ 이동 · Enter/→ 열기 · Esc/← 뒤로 · 1–9 점프
인식 → 강조된 행은 production
TUI-UI 슬라이더를 드래그하세요
progress62%
cpu
latency
1/8셀 정밀도 막대 & 브라유 문자 — 어긋남 없음.
증명 — 실제 TUI 조작

진짜로 lazygit을 조작합니다.

SmartCLI가 실제 lazygit TUI를 인식 → 조작 → 확인 루프로 직접 조작합니다 — 방향키로 패널을 이동하고, 커밋의 diff를 열고, 브랜치를 강조하는 것까지 모두 pyte 셀 그리드(어느 행이 선택됐는지, alt-screen 여부)를 읽어서 수행합니다. 실제 프로그램을 Linux 컨테이너에서 직접 조작해 캡처했고, 스크립트가 아닙니다. pexpect 같은 바이트 스트림 매처는 "어느 행이 강조됐는지"를 인식할 수 없지만, 화면 모델은 할 수 있습니다.

drive-tui가 Debian 13에서 실제 lazygit TUI를 조작 — 인식 → 조작 → 확인 (30fps)
dialog — 체크리스트 폼: 이동, Space로 행 토글, 제출
vim — 모달 편집: insert, 입력, Esc, :wq
htop — 트리 뷰, 정렬 메뉴 열기, 적용
ncdu — 가장 큰 디렉터리로 들어갔다가 되돌아 나오기

모든 클립은 SmartCLI가 실제 프로그램을 조작한 것입니다 — pyte 화면 그리드를 읽고 키를 누른 것이지, 스크립트로 만든 출력이 아닙니다. pexpect 같은 바이트 스트림 매처는 "어느 행이 강조됐는지"를 인식할 수 없지만, 화면 모델은 할 수 있습니다.

하나의 API · 세 가지 OS

같은 드라이버. Windows, macOS, Linux.

진짜로 어렵고, 방어 가능한 지점: 하나의 라이브러리가 세 플랫폼 모두에서 동일한 실제 lazygit을 동일한 인식 → 조작 → 확인 루프로 조작합니다 — Windows의 네이티브 ConPTY, macOS의 BSD pty, 그리고 Linux pty에서, 각각 적응형 DECCKM/SS3 방향키로. WSL도, Cygwin도 없습니다. 아래 각 클립은 해당 OS에서 실제로 조작한 것입니다.

Windows — ConPTY (pywinpty)
macOS — BSD pty (Apple Silicon)
Linux — pty.fork()

Windows는 ConPTY에서 lazygit 0.63을 조작했고, macOS는 Apple Silicon M 시리즈에서 BSD pty로 조작했으며(그곳의 DECCKM/SS3 방향키 경로는 실제 ncurses에 대해 검증했습니다), Linux는 표준 라이브러리 pty.fork()로 조작했습니다. 같은 scripts/tui.py, 같은 recipes, 세 가지 OS.

실제 캡처

실제로 돌아가는 fx 엔진.

아래의 모든 클립은 프로젝트 자체 파이프라인을 통해 프레임 단위로 렌더링한 진짜 이펙트입니다 — 화면 녹화가 아닙니다. 무엇이든 python -m fx play <name>로 재현할 수 있습니다.

solarsystem — 오러리: 맥동하는 태양 주위 케플러 타원 궤도를 도는 행성들
donut — 고전적인 ASCII 토러스
tunnel — 데모신 터널 비행 (이음매 없는 루프)
fire — 열 버퍼 기반 화염 필드
rain — 매트릭스 디지털 레인
모델 독립적

어떤 AI든, 어떤 에이전트 CLI에서든.

SmartCLI는 모델이 호출하는 도구입니다 — 어떤 모델이 조작하든, 어떤 에이전트 CLI에서 실행하든 동작합니다.

Claude Sonnet · Opus · Fable GPT-5.6 · 5.5 Grok 4.5
codexclaude-code grokkiro-cli gemini-cliaider
시작하기

압축을 풀고, 넣기만 하면, 동작합니다.

코어는 PyPI에서 설치하고, 스킬은 그 자리에서 실행됩니다. 넣어둔 drive-tui 폴더는 자체 코어까지 함께 담고 있습니다.

# 공유 코어, PyPI에서 pip install smartcli-toolkit # 그다음, Python에서 from smartcli_core import PtySession # 또는 넣어둔 스킬 폴더가 제대로 연결됐는지 확인 python skills/drive-tui/scripts/tui.py doctor