Yakari – CLI 도구를 위한 인터랙티브 TUI
요약
Yakari는 복잡한 CLI 도구를 사용자가 단계별로 상호작용하며 사용할 수 있도록 돕는 TUI(Text User Interface) 도구입니다. 이 도구는 명령어와 인자를 단축키 기반의 인터랙티브 메뉴 시스템으로 변환하여, 사용자가 전체 명령어를 외우지 않고도 쉽게 복잡한 작업을 수행할 수 있게 합니다.
핵심 포인트
- 복잡한 CLI를 단계별 TUI 경험으로 전환합니다.
- 단순히 명령을 나열하는 것이 아닌, 상호작용적 메뉴 시스템입니다.
- 명령어와 인자를 단축키 기반의 인터랙티브 방식으로 처리합니다.
- TOML 설정 파일을 통해 명령어 메뉴를 정의할 수 있습니다.
Yakari
복잡한 커맨드라인 인터페이스(CLI)를 안내가 포함된 인터랙티브 경험으로 변환합니다.
Yakari는 사용자가 명령을 단계별로 구축할 수 있도록 도와 CLI 도구를 더욱 접근하기 쉽고 사용자 친화적으로 만듭니다.
시작하기
사용법
<img src="./static/yakari.png" width="220" align="right" />usage: ykr [-h] [-d] [-n] command_name
positional arguments:
...
사용해 보기!
uv와 함께:
uvx --from yakari ykr demo
이 명령어는 Yakari가 지원하는 다양한 유형의 인자(arguments) 및 명령을 보여주는 데모를 시작합니다. 이 데모는 echo 명령어만 실행하므로 어디서든 안전하게 사용할 수 있습니다.
uvx --from yakari ykr git
은 기본적인 git 기능을 갖춘 터미널 사용자 인터페이스(TUI)를 시작합니다. 아래 비디오는 이 TUI를 사용하여 다음 작업을 수행하는 방법을 보여줍니다:
- 브랜치 목록 보기
- 새
demo브랜치를 생성하고 체크아웃하기 - 파일 추가 및 커밋 생성하기
- 커밋이 성공적으로 생성되었는지 확인하기 위해 git log 확인하기
demo브랜치 삭제하기
깃(git) 저장소에서 직접 사용해 보세요!
기본 탐색
Yakari는 복잡한 명령을 실행하기 쉽게 만들어주는 인터랙티브 커맨드 메뉴입니다. 전체 명령어를 기억하는 대신 단축키를 입력하는 명령어 런처처럼 생각할 수 있습니다.
타이핑 시작하기
Yakari를 실행하면 사용 가능한 옵션 메뉴가 나타납니다. 모든 메뉴 항목에는 단축키(왼쪽에 표시됨)가 있습니다. 이 단축키를 입력하여 선택합니다:
- 명령어 (실행할 수 있는 것)
- 인자 (설정할 수 있는 옵션)
- 하위 메뉴 (내부의 더 많은 옵션)
다른 중요한 키보드 단축키는 TUI와 상호 작용할 수 있게 해줍니다:
| 키 | 동작 |
|---|---|
| ctrl+q | 취소/종료 |
| ... |
screenshot illustrating how yakari highlights compatible commands based on user's input
예시: git 브랜치 메뉴에서-를 입력하면-f와-t인자가 강조 표시되고 다른 항목은 흐릿하게 처리됩니다.
인자(Arguments) 작업하기
인자는 설정할 수 있는 옵션입니다. 이를 처리하는 두 가지 모드가 있습니다:
일반 모드 (Normal Mode, 기본값):
- 인수를 선택하면 켜기/끄기가 전환됩니다.
--verbose와 같은 빠른 스위치에 유용합니다.
편집 모드 (Edit Mode) (전환하려면 ctrl+e를 누르세요):
- 인수를 선택하면 해당 값을 편집할 수 있습니다.
- 기존 값이 있는 이름 지정 인수(named argument)를 편집하는 데 완벽합니다.
(선택 사항) 설치
Yakari는 PyPI에 게시되어 있습니다:
# pip 사용
pip install yakari
...
메뉴 (Menus)
명령어 메뉴(command menu)는 명령을 실행하기 위한 계층적 인터페이스를 정의하는 TOML 설정 파일입니다. 이를 통해 다음 작업을 수행할 수 있습니다:
- 관련 명령어들을 메뉴로 구성합니다.
- 재사용 가능한 인수를 정의합니다.
- 명령어 값에 대한 대화형 프롬프트를 생성합니다.
해당 TOML 파일을 $HOME/.config/yakari/menus로 복사하여 새 메뉴를 설치할 수 있습니다. 직접 메뉴를 만들고 싶다면, 전용 readme from yakari-menus를 확인해 보세요.
[!TIP]
Yakari에는ykr <명령어 이름>을 통해 직접 사용할 수 있는 몇 가지 사전 정의된 메뉴(pre-defined menus)가 포함되어 있습니다 (예:ykr git).
기능 (Features)
- 대화형 명령어 빌드
- 상황별 도움말 및 설명
- 기존 CLI 도구와 함께 작동합니다
- 실행 간의 명령어 기록(Command history)
- 정적 및 동적 제안
- 스트리밍 출력과 대화형 명령 지원을 통한 인플레이스(in-place) 명령어 실행
- 지원되는 인수 유형:
- 플래그 인수 (Flag argument)
- 단일 값 인수 (Single-value argument)
- 다중 선택 인수 (Multi-choice argument)
- 비밀번호 인수 (Password argument)
- 다중 값 인수 (Multi-value argument)
로드맵 (Roadmap)
- 인수 유형 추가:
- 파일 인수 (File argument)
- 환경 변수 지원
참고 자료 (References)
왜 Yakari인가?
이 이름은 동물과 대화할 수 있는 스위스 만화 캐릭터에서 유래했습니다. 이와 유사하게, 이 도구는 위협적으로 느껴지는 명령어 구조를 안내된 메뉴로 변환하여 사용자가 명령줄 프로그램과 더 자연스럽게 소통하도록 돕습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Claude Code Search의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기