No description
  • Rust 99.3%
  • Nix 0.7%
Find a file
natsukium dacf035d44
feat: add popup-based image viewer for PR descriptions
Images in PR descriptions can now be viewed in a popup overlay:
- Press 'i' on PR list to open image popup
- Use left/right arrows or h/l to navigate between images
- Press Esc or q to close
- Images are loaded on demand with loading indicator

This approach avoids the scroll/layout issues that inline images had.
2025-12-07 01:00:30 +09:00
.claude/commands feat: add /fix command for test-driven bug fixing 2025-12-06 19:18:18 +09:00
docs docs: record inline image investigation and popup decision 2025-12-07 00:45:48 +09:00
src feat: add popup-based image viewer for PR descriptions 2025-12-07 01:00:30 +09:00
.gitignore feat: Initial project skeleton (Phase 1) 2025-11-28 01:07:15 +09:00
Cargo.lock feat: support HTML img tags in markdown parsing 2025-12-07 00:01:18 +09:00
Cargo.toml feat: support HTML img tags in markdown parsing 2025-12-07 00:01:18 +09:00
CLAUDE.md docs: add user requests log and documentation guidelines 2025-11-28 01:38:30 +09:00
flake.lock build: migrate to crane and flake-parts for Nix build 2025-11-28 19:19:49 +09:00
flake.nix build: migrate to crane and flake-parts for Nix build 2025-11-28 19:19:49 +09:00
README.md docs: update README with configuration and keybindings 2025-12-06 22:31:13 +09:00

🧵 tsumugi

A keyboard-driven TUI for reviewing GitHub pull requests.

Features

  • Browse and view pull requests with Vim-like keybindings
  • View diffs with syntax highlighting (via external tools like delta or difftastic)
  • Commit history with per-commit diffs
  • Markdown rendering for PR descriptions and comments
  • Multiple remotes support for repositories with forks
  • PR checkout with git worktree for local code review
  • Search PRs using GitHub search syntax

Installation

# Cargo
cargo install --git https://github.com/natsukium/tsumugi

# Nix Flakes
nix profile install github:natsukium/tsumugi

Usage

Run mugi inside a Git repository with a GitHub remote:

mugi

Press ? to see available key bindings.

Requirements

  • Git repository with a GitHub remote configured
  • GitHub authentication (via gh CLI or GITHUB_TOKEN environment variable)

Configuration

Configuration file is located at ~/.config/tsumugi/config.toml.

[github]
# Authentication method: "gh_cli" (default) or "pat"
# auth_method = "gh_cli"

[diff]
# External diff command for tools like difftastic that need file pairs
# Takes precedence over pager when set
# external_diff_command = "difft --color=always"

# Pager command for unified diff (used when external_diff_command is not set)
# pager = "delta --paging=never"

# Number of context lines (default: 3)
# context_lines = 3

[repositories]
# List of tracked repositories (owner/repo format)
# tracked = ["owner/repo1", "owner/repo2"]

# Per-repository settings
# [repositories."your-username/your-fork"]
# default_remote = "upstream"  # Use upstream remote by default for this repo

[worktree]
# Skip confirmation popup when checking out PRs (default: false)
# skip_checkout_confirmation = false

Keybindings

Global

Key Action
Tab / Shift+Tab Next / Previous panel
1 2 3 4 Jump to panel
/ Search PRs (GitHub search syntax)
Esc Clear search results
? Toggle help
H Toggle status bar
q Quit

PR List

Key Action
j / Move down
k / Move up
Enter / l Select & focus diff
d Show PR details
c Checkout PR to worktree
o Open PR in browser
r Refresh

Diff / Details View

Key Action
j / Scroll down
k / Scroll up
Ctrl+d Half page down
Ctrl+u Half page up
g Go to top
G Go to bottom

About the Name

"Tsumugi" (紡ぎ) is the noun form of the Japanese verb "tsumugu" (紡ぐ), meaning "to spin" or "to weave." It also refers to "tsumugi" (紬), a durable silk fabric woven from hand-spun threads — just like pull requests weave separate strands of code into a robust project.

🎹 The command name is mugi (pronounced: moo-gee).