bit useless but its an overview for projects
  • Python 97.1%
  • Lua 2.9%
Find a file
2026-06-06 23:58:22 +02:00
plugins initial: birth of Kamiview 2026-06-06 23:02:35 +02:00
src feat: redesign tabs - Files shows project structure, Commits shows info and graph log 2026-06-06 23:49:46 +02:00
tests test: add unit tests for logic and UI smoke tests 2026-06-06 23:08:12 +02:00
.gitignore chore: ignore GEMINI.md and python artifacts 2026-06-06 23:55:47 +02:00
kamiview initial: birth of Kamiview 2026-06-06 23:02:35 +02:00
prior-gemini-chat.txt initial: birth of Kamiview 2026-06-06 23:02:35 +02:00
README.md docs: fix broken icons in README and update keybindings 2026-06-06 23:58:22 +02:00

👁️ Kamiview

A modular TUI (Terminal User Interface) for managing multiple Git projects with ease.

Features

  • Sidebar Navigation: Switch between projects instantly.
  • Git State Overview: See modified/untracked files and project structure.
  • Tabbed Interface: Toggle between Files and Commits views.
  • Live Previews: Scrollable file diffs and content previews.
  • Modular Plugin System: Add new projects by dropping a Lua file in plugins/.
  • Integrated Sync: Run pre-sync scripts in a real-time popup window.
  • One-Key Operations: Space to stage, c to commit, p to push, s to sync.
  • Mouse Support: Click to select projects/files and use the scroll wheel for previews.

Installation

  1. Ensure python3 and lua are installed on your system.
  2. Run the main script: python src/kamiview.py.

Keybindings

  • Tab: Switch focus between Sidebar (Projects) and Main Area.
  • [ / ]: Switch between Files and Commits tabs.
  • Up/Down or k/j: Navigate the focused list.
  • Mouse Wheel: Scroll through file previews or commit history.
  • Space: Stage/Unstage selected file (in Files tab).
  • s: Run pre-sync script (if defined in project Lua).
  • a: Git Add all.
  • c: Git Commit (prompts for message).
  • p: Git Push.
  • q: Quit.

Adding Projects

Create a .lua file in ~/Projects/Kamiview/plugins/:

return {
    name = "My Project",
    path = os.getenv("HOME") .. "/path/to/repo",
    pre_sync = "./my-sync-script.sh", -- Optional
    icon = "󰚝", -- Optional Nerd Font icon (for TUI use)
    description = "Optional description"
}