How rubyazz/akatsuki-git works
Akatsuki Git is a VS Code extension backed by a Rust sidecar. Its main workflow detects repository changes, analyzes commit history, derives a shinobi rank, and presents themed progress in the extension. Onboarding stores a character path and profile; event messages and dashboard/status-bar views add separate user-facing features. The excerpts establish the RPC dispatch, repository analysis, and persistence paths; some feature wiring is documented by the README but its implementation was not sampled, so those links are limited.
Main entry points: extension.ts Extension lifecycle · backendClient.ts Backend client · handlers.rs RPC handlers · main.rs Backend runtime
Components 16
VS Code experience
- Extension lifecycle
extension/src/extension.ts - Change detection
extension/src/gitWatcher.ts - Profile onboarding
extension/src/onboarding.ts - Rank status
extension/src/statusBar.ts - Progress dashboard
extension/src/dashboard.ts - Themed messages
extension/src/messages.ts
RPC boundary
- Backend client
extension/src/backendClient.ts - RPC protocol
shared/ts/protocol.ts
Progress backend
- Backend runtime
backend/src/main.rs - RPC handlers
backend/src/handlers.rs - Git analysis
backend/src/git_analyzer.rs - Rank calculation
backend/src/ranks.rs - Character templates
backend/src/paths.rs
Progress state
- Profile and stats
backend/src/storage.rs
Other components
- Developer
- Git repository
Connections 19
- Developer → Extension lifecycle: uses
- Git repository → Change detection: signals changes
- Change detection → Extension lifecycle: triggers refresh
- Extension lifecycle → Backend client: sends requests
- Profile onboarding → Backend client: manages profile
- Themed messages → Backend client: requests templates
- Backend client → Backend runtime: JSON-RPC over stdio
- Backend runtime → Backend client: returns responses
- Backend runtime → RPC protocol: follows contract
- Backend client → RPC protocol: uses types
- Backend runtime → RPC handlers: dispatches requests
- RPC handlers → Git analysis: analyzes repository
- RPC handlers → Rank calculation: calculates rank
- RPC handlers → Character templates: gets messages
- RPC handlers → Profile and stats: reads and writes
- Git analysis → Git repository: reads history
- Extension lifecycle → Rank status: updates display
- Extension lifecycle → Progress dashboard: provides stats and rank
- Extension lifecycle → Themed messages: uses notifications