Git 및 GitHub를 위한 반응형 터미널 UI: grut
요약
grut은 Git 및 GitHub 기능을 하나의 반응형 터미널 UI로 통합한 도구입니다. 파일 탐색기, 커밋 기록, 미리보기 등이 상호 연관되어 사용자의 선택에 따라 패널이 자동으로 업데이트됩니다. 이를 통해 브랜치 관리, PR 병합, CI/CD 워크플로우 등 복잡한 Git 작업을 터미널을 벗어나지 않고도 수행할 수 있습니다.
핵심 포인트
- 상황 인지(Context-Aware) UI로 모든 요소가 상호 연관됨.
- PR 트리플 동기화 기능으로 파일 트리, 커밋 기록, 미리보기가 동시에 업데이트됨.
- GitHub Copilot 기반의 AI 기능을 통해 코드 리뷰 및 PR 설명 작성이 가능함.
- 터미널 내에서 Merge, Rebase 등 완전한 Git 워크플로우가 지원됨.
모든 패널이 서로 소통하는 Git 및 GitHub용 반응형 터미널 UI입니다.
파일, Git, GitHub, 미리보기 기능이 모두 하나의 터미널에 통합되어 있으며, 모든 요소가 상호 연관성을 가집니다. 브랜치를 선택하면 파일 트리, 커밋 기록, 그리고 미리보기가 업데이트됩니다. 파일을 선택하면 해당 파일의 히스토리로 커밋 필터링이 적용됩니다. PR을 선택하면 세 개의 패널이 한 번에 재구성됩니다. 도구를 전환하거나 새로고침할 필요가 없습니다.
상황 인지(Context-Aware) — 사용자의 선택에 따라 패널들이 반응합니다. 브랜치, 파일, 워크트리, 리모트, 스태시 또는 PR을 선택하면 다른 모든 패널이 이에 맞춰 업데이트됩니다.커밋-파일 모드(Commit-Files Mode) — 커밋에서 Enter를 누르면 해당 커밋에서 변경된 파일만 트리에 표시됩니다. Escape 키를 누르면 원래 상태로 복원됩니다.PR 트리플 동기화(PR Triple-Sync) — PR을 선택하면 파일 트리, 커밋 기록, 미리보기가 동시에 업데이트됩니다.Git 필터 — g
세 가지 모드(모든 파일 → git 변경 사항 → 브랜치 차이)를 순환합니다. 미리보기는 자동으로 diff 모드로 전환됩니다.
파일 탐색기(File Explorer) — git 상태 마커와 Nerd Font 아이콘을 사용하여 프로젝트를 탐색하고, 파일을 생성/이름 변경/삭제할 수 있습니다.퍼지 파인더(Fuzzy Finder) — /
을 통해 즉각적인 파일 검색을 수행합니다.구문 강조(Syntax Highlighting) — Chroma를 통해 100개 이상의 언어를 지원합니다.미리보기(Preview) — 선택된 항목에 따라 파일 내용, 이슈/PR 본문, 워크플로우 세부 정보 또는 diff를 보여주도록 적응합니다. f 키를 눌러 로컬 디스크 기반 보기와 상황별 diff 보기 간을 전환할 수 있습니다. 텍스트를 클릭하고 드래그하여 선택하고, y를 눌러 복사할 수 있습니다.인라인 에디터(Inline Editor) — 미리보기 패널에서 e 키를 눌러 파일을 직접 편집할 수 있습니다. Ctrl+S로 저장하고, Escape로 폐기합니다.
상태 및 스테이징(Status & Staging) — 단일 키 입력을 사용하여 스테이징, 언스테이징, 폐기가 가능합니다. 개별 hunks와 라인에 대한 부분 스테이징도 지원합니다.브랜치, 워크트리, 스태시, 태그, 리모트, Reflog — 각각 전용 탭으로 제공되며 완전한 CRUD(생성, 읽기, 업데이트, 삭제) 작업을 수행할 수 있습니다.Diff — 인라인 및 나란히 보기 모드를 지원하며 hunks 탐색이 가능합니다.로그(Log) — ASCII 시각화가 포함된 커밋 그래프를 보여줍니다.병합(Merge), 리베이스(Rebase), 블레임(Blame), 비섹트(Bisect), 실행 취소/다시 실행(Undo/Redo) — 터미널을 벗어나지 않고도 완전한 git 워크플로우가 가능합니다.
이슈(Issues), 풀 리퀘스트(Pull Requests), 액션(Actions), 워크플로우(Workflows), 릴리스(Releases)— 각각 필터와 미리보기 통합 기능을 갖춘 탭으로 제공됩니다.PR 병합(Merge PRs)— 머지 커밋(merge commit), 스쿼시(squash), 또는 리베이스(rebase) 전략을 사용하여 풀 리퀘스트를 병합하고 선택적으로 브랜치 정리 기능을 수행합니다.워크플로우 디스패치(Workflow Dispatch)— TUI에서 파라미터를 이용해 CI/CD 워크플로우를 트리거합니다.
- GitHub Copilot 기반의 내장 채팅 기능— 파일 읽기/쓰기, git 명령어 실행, 코드 검색, 이슈 및 PR 상호작용이 가능합니다. - AI 기반 커밋 메시지 작성, 충돌 해결(conflict resolution), 코드 리뷰, 그리고 PR 설명 작성이 가능합니다.
- 접힘(Collapsed), 확장(expanded), 전체 화면 오버레이 모드를 지원합니다.
테마(Themes)— 기본(Default), Catppuccin, Tokyo Night, Gruvbox 외에 사용자 정의 TOML 테마도 지원합니다.세션 지속성(Session Persistence)— 재시작 시 레이아웃을 저장하고 복원합니다.셀프 업데이트(Self-Update)—grut update
으로 인플레이스(in-place) 업그레이드가 가능합니다.
다음 기능에 대한 로드맵은 [Roadmap]을 참고하세요.
macOS 지원: 사전 빌드된 바이너리는 macOS 13 (Ventura) 이상이 필요합니다.
curl -fsSL https://raw.githubusercontent.com/jongio/grut/main/install.sh | sh
특정 버전을 설치하려면:
curl -fsSL https://raw.githubusercontent.com/jongio/grut/main/install.sh | sh -s -- v0.8.0
irm https://raw.githubusercontent.com/jongio/grut/main/install.ps1 | iex
특정 버전을 설치하려면:
`$v=
| 명령어 (Command) | 설명 (Description) |
|---|---|
grut [경로(path)] | 현재 또는 지정된 디렉터리에서 TUI를 실행합니다. |
grut version | grut의 버전을 출력합니다. |
grut update | grut을 최신 버전으로 업데이트합니다. |
grut doctor | 환경 상태를 확인합니다 (--json은 보고서용, --check는 필수 항목 검사 실패 시 중단). |
grut status | 작업 트리의 상태 요약을 출력합니다. |
grut config | 설정을 검사합니다 (check, get <키>, defaults). |
grut theme | 테마를 검사합니다 (theme list). |
grut keys | 키 바인딩을 출력합니다 (--filter, --section, --sections, --json). |
grut clean | 임시 세션 및 진단 데이터를 제거합니다. |
grut completion | 셸 완성 스크립트를 생성합니다. |
grut run <바로가기(shortcut)> | AI 기반 git 워크플로우 바로가기를 실행합니다. |
grut ext | 확장 기능을 관리합니다 (install, remove, enable, disable, create, info). |
grut report | 충돌 보고서와 GitHub 이슈 파일을 확인합니다. |
grut mcp | grut을 MCP 서버로 실행합니다 (mcp tools는 노출된 도구를 나열합니다). |
| 플래그 (Flag) | 설명 (Description) |
|---|---|
--help, -h | 사용법 정보를 표시합니다. |
--version, -v | 버전을 출력하고 종료합니다. |
--demo | 데모 프로젝트와 함께 실행하여 grut을 탐색할 수 있습니다. |
--scenario NAME | 안내된 데모 시나리오를 실행합니다 (list, branch-review, conflict-resolution, extensions). |
--demo-keep | 종료 후 생성된 데모 리포지토리를 유지하고 그 경로를 출력합니다. |
--no-ai | 이 세션의 AI 기능을 비활성화합니다. |
--layout NAME | 이 실행을 위한 레이아웃으로 시작합니다 (explorer, git, review, agent, full). |
--cpu-profile FILE | CPU 프로파일을 FILE에 작성합니다 (개발/디버그). |
--mem-profile FILE | 메모리 프로파일을 FILE에 작성합니다 (개발/디버그). |
--pprof PORT | localhost:PORT에서 pprof 서버를 시작합니다 (개발/디버그). |
--reset-welcome | 첫 실행 상태를 초기화하여 다음 실행 시 환영 화면이 표시되도록 합니다. |
모든 실행 시 백그라운드 업데이트 확인을 수행하며, 새 버전이 사용 가능하면 알림을 보냅니다.
grut --demo --scenario list를 사용하세요.
grut --demo --scenario branch-review, conflict-resolution, 또는 extensions로 실행하여 가이드 시나리오를 출력할 수 있습니다. 각 시나리오는 시드된(seeded) 저장소를 열고, 특정 레이아웃/패널을 선택하며, TUI에서 워크스루 단계와 함께 .grut/demo-scenario.md 파일을 표시합니다. 로컬 버그 보고서나 재현 노트에 생성된 경로를 유지하려면 --demo-keep 옵션을 추가하세요.
grüt은 Nerd Font glyphs를 사용하여 파일 유형 아이콘을 표시합니다. 최상의 경험을 위해서는 Nerd Font(예: 0xProto, FiraCode, JetBrainsMono)를 설치하고 터미널 설정을 해당 폰트를 사용하도록 구성하는 것이 좋습니다.
icon_mode가 "auto" (기본값)로 설정된 경우, grüt은 알려진 nerd-font 지원 터미널(WezTerm, kitty, Alacritty, iTerm, Ghostty, Windows Terminal 등)을 감지하고 자동으로 아이콘을 활성화합니다. 수동으로 강제할 수도 있습니다:
# ~/.config/grut/config.toml
[file_tree]
icon_mode = "nerd" # 항상 nerd font 아이콘 사용
...
또는 환경 변수 GRUT_NERD_FONT=1을 설정하여 모든 터미널에서 nerd 아이콘을 활성화할 수 있습니다.
전체 참조 내용은 docs/keybindings.md를 참조하세요.
| 키 | 동작 |
|---|---|
j / k | 위/아래 이동 |
h / l | 접기/펼치기 |
Enter | 열기/선택 |
1 –5 | 패널 포커스 (파일 트리, Git 정보, GitHub, 커밋, 미리보기) |
/ | 퍼지 파인더(Fuzzy finder) |
? | 도움말 오버레이 |
R | 모든 데이터 + 미리보기 새로고침 |
F | 모든 원격 저장소 가져오기 (Fetch all remotes) |
P | 푸시 (Push) |
s | 파일 스테이징 (Stage file) |
x | 삭제/취소 |
g | 필터 순환: 전체 → git 변경 사항 → 브랜치 차이점 |
e | 인라인 파일 편집 (미리보기 패널에서) |
설정 파일: ~/.config/grut/config.toml
(Linux/macOS) 또는 %APPDATA%\grut\config.toml
(Windows)
모든 옵션은 docs/configuration.md를 참조하세요.
grut은 1.0 이전 버전이므로, 자동화에 의존하는 경우 버전을 고정(pin)하는 것이 좋습니다. 1.0에서 보장되는 내용과 아직 문서화되어야 하는 내용은 docs/stability.md를 참조하세요.
git clone https://github.com/jongio/grut.git
cd grut
go build -o grut .
...
또는 Mage를 사용하여:
mage build
grut은 개발 워크플로우에 Mage를 사용합니다:
mage install # 테스트 실행, bin/grut-dev 빌드, PATH에 추가 (기본 대상)
mage test # 모든 단위 테스트 실행
mage preflight # 프리 커밋 체크: fmt, tidy, vet, build, test, vulncheck
...
표준 Go 명령어도 직접 사용할 수 있습니다:
go build ./... # 모든 패키지 빌드
go test ./... # 모든 테스트 실행
go vet ./... # 모든 패키지 검증
Go 1.27.1+Bubble Tea v2(TUI) +Lipgloss v2(스타일링) +Bubbles v2(위젯)Chroma v2(구문 강조) +Glamour(마크다운 렌더링)fsnotify(파일 시스템 감시) +mimetype(파일 유형 감지)TOML구성 (go-toml/v2를 통한 설정)CobraCLI 프레임워크
MIT
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기