# gitwink [English](README.md) · **한국어** · [日本語](README.ja.md) [![Release](https://img.shields.io/github/v/release/var-gg/gitwink)](https://github.com/var-gg/gitwink/releases/latest) [![Microsoft Store](https://img.shields.io/badge/Microsoft%20Store-Available-0078D4?logo=microsoftstore&logoColor=white)](https://apps.microsoft.com/detail/9P0S21GJD53F) > AI 에이전트 시대를 위한 트레이 상주 · 읽기 전용 git glance. **상태:** v0.4 — 쓸 만함. cold-start 친화적인 트레이 앱. ![gitwink](docs/images/hero.gif) gitwink는 시스템 트레이에 산다. 클릭하면 **모든** 로컬 repo의 최근 커밋 활동을 한눈에 본다. git **클라이언트가 아니다** — commit, push, merge, 수정 어느 것도 못 한다. 설계상 읽기 전용. ## 다운로드 **Windows — [Microsoft Store](https://apps.microsoft.com/detail/9P0S21GJD53F):** [**Microsoft Store에서 gitwink 받기 →**](https://apps.microsoft.com/detail/9P0S21GJD53F) 또는 [WinGet](https://github.com/microsoft/winget-cli)으로: ```sh winget install gitwink ``` Store 빌드는 인증 단계에서 Microsoft가 자동 서명하므로 SmartScreen 경고가 뜨지 않는다. 업데이트도 Store가 관리한다 — 이 채널에서는 gitwink 인앱 업데이터가 비활성화된다. **Windows — [Scoop](https://scoop.sh):** ```sh scoop bucket add var-gg https://github.com/var-gg/scoop-bucket scoop install gitwink ``` 이후 업데이트는 `scoop update gitwink`. Scoop은 빌드를 추출해 설치하므로 SmartScreen 경고가 아예 뜨지 않는다. **또는 직접 다운로드:** [**최신 릴리즈 다운로드 →**](https://github.com/var-gg/gitwink/releases/latest) - **Windows** — `.exe` (NSIS 인스톨러) 또는 `.msi` - **macOS** — `.dmg` (universal) 직접 다운로드 빌드는 현재 서명되지 않아, 첫 실행 시 Windows SmartScreen / macOS Gatekeeper가 경고를 띄운다 — 우회 방법은 릴리즈 노트에 있다. 직접 빌드하려면 [개발](#개발) 참고. ## 코드 서명 설치 채널마다 신뢰 경로가 다르다: - **Microsoft Store** — 인증 단계에서 Microsoft가 자동 재서명. SmartScreen 안 뜬다. - **Scoop** — 추출 방식 설치라 SmartScreen 안 뜬다. - **직접 다운로드** (`.exe` / `.msi`) — 현재 서명되지 않은 상태. gitwink는 오픈소스를 위한 [SignPath Foundation](https://signpath.org/) 무상 코드 서명 프로그램에 참여하고 있다 ([코드 서명 정책](CODE_SIGNING_POLICY.md) 참고); 승인되면 SignPath 인증서가 이 빌드들을 서명하게 된다. ## 만든 이유 원래 VS Code에 GitLens 박아두고 살았다. 브랜치 그래프, 히트맵 blame, lens 주석 — 그게 *내* git 워크플로우였다. 그러다 2025년이 됐다. Cursor, Claude Code, Codex가 실제 코딩을 다 해주니까 에디터 자체가 선택사항이 됐다. 그래도 나를 VS Code로 끌고 가는 단 하나의 이유가 GitLens였다. 낭비 같았다 — 커밋 리스트 한 번 보려고 IDE를 통째로 켜는 게. 이제 git 커맨드는 에이전트가 친다; 나는 가끔, 뭔가 미심쩍을 때만, 결과를 한 번 확인하고 싶을 뿐이다. gitwink는 *그* 루프에 맞춘 가능한 가장 작은 도구다 — 트레이 아이콘이 펼쳐져 한눈에 보여주고, 커밋을 AI 컨텍스트로 넘겨주고, 비킨다. commit 없음. push 없음. merge 없음. git 수술이 필요하면 에이전트한테 시킨다. ## 루프 0.5초 확인 루프: ``` 에이전트 커밋 → 트레이 클릭 → 인라인 펼침 → "Copy as AI context" → Claude/Codex에 붙여넣기 → "에이전트가 제대로 했나?" ``` ## 기능 - 시스템 트레이 아이콘 (Windows 트레이 / macOS 메뉴바). 클릭으로 토글, 우클릭으로 위치 리셋 / 설정 파일 열기 / 종료. - 전역 단축키 `Ctrl+Shift+G` (Windows) / `Cmd+Shift+G` (macOS)로 어디서든 패널 호출/해제. `settings.json`의 `panel_hotkey`를 편집하면 변경 가능 (트레이 우클릭 → "Open settings file…") — Tauri 단축키 스펙이면 뭐든 가능, 예: `"Alt+Space"`, `"Ctrl+Alt+Backquote"`. 적용은 재시작. - 첫 실행 시 기본 유저 디렉터리 탐색 (`source`, `Documents`, `Projects`, `Code`, `Dev`, `repos`, `Desktop`, Windows에선 모든 비시스템 드라이브 / macOS에선 `~/Projects`, `~/Code`, `~/Documents`, `~/Developer`). 결과는 `%APPDATA%\gg.var.gitwink\cache.db`의 SQLite에 캐시. - 모든 repo를 가로지르는 통합 커밋 타임라인. 위쪽 칩으로 필터링: Repo (검색 + 핀), 기간 (24h / 3d / 7d / 30d / All), 작성자 (다중 선택 + 카운트). - 행별 마커 — `●` 커밋 · `◆` 머지 · `★` 태그. 현재 체크아웃된 브랜치에 없는 커밋에는 브랜치 라벨 배지. - 단일 repo 모드: repo 하나 고르면 패널이 브랜치별 뷰로 전환. 커스텀 SVG DAG 차선 드로어 (8색 팔레트, 브랜치명 해시 기반; main / master / develop는 중립색). - 클릭 시 인라인 펼침: 커밋 메시지 본문 + 변경 파일 리스트 (NEW/MOD/REN/DEL 배지, `+/−` 라인 카운트, 바이너리는 `bin` + 크기, GitLens 스타일 파일명 강조). - 별도 diff 윈도우 (싱글톤, 재사용, 위치/크기 + 최대화 상태 영속)에서 전체 읽기: 파일 사이드바 + 가로 스크롤 동기화된 side-by-side diff. PNG / JPG / GIF / WebP / SVG 이미지 프리뷰 내장 (체커 배경, before/after). 로컬 Git LFS 객체 자동 조회; 없으면 인라인으로 설명. - Copy as AI context — `c` 키 또는 버튼 — 커밋, 파일 리스트, (충분히 작으면) 전체 diff를 마크다운 블록으로 출력. Claude / Codex / Cursor에 바로 붙여넣기. ## Diff 윈도우 *"잠깐, 에이전트가 그거 진짜 했나?"* 싶을 때. 아무 커밋이나 클릭하면 별도 윈도우가 열린다 — 파일 사이드바, 가로 스크롤 동기화 side-by-side diff, 바이너리 자산의 인라인 이미지 프리뷰, 위치/크기/ 최대화 상태를 기억하는 싱글톤 인스턴스. ![diff window](docs/images/diff.gif) ## 기술 스택 Tauri 2 · Rust · React + TypeScript · `git2` · SQLite · 커스텀 SVG DAG 드로어 · 텔레메트리 없음, 폰홈 없음 — 네트워크 사용은 끌 수 있는 업데이트 확인뿐. ## 개발 ```bash pnpm install pnpm tauri dev ``` 필요: Node 20+, Rust stable (Windows에선 msvc 툴체인), Visual C++ Build Tools (Windows) 또는 Xcode CLT (macOS). ## 플랫폼 - Windows 10/11 — 주요 타깃, 개발 하드웨어에서 검증 - macOS 13+ — 동작해야 함, 덜 검증됨 - Linux — 나중에 ## 라이선스 [MIT](LICENSE)