hivevm/ocelli
View and edit Git repositories. A Git client that draws history as a lane graph, as desktop app (Tauri), terminal app or read-only remote server.
- Rust
- Tauri
- Git
- Web UI
- Language
- Rust · TypeScript
- License
- MIT
- Commits
- 52 commits
- Last update
- Oct 2026
01 / Overview
Ocelli draws a Git repository’s commit history as a graph, with each branch in its own lane and merges drawn as orthogonal edges, and lets you edit the repository from that view. It runs as a desktop app, a terminal app, or a remote server that serves the same interface to a browser.
Features include commit detail with SHA, message, author, parents, children and changed files; search over message, author, SHA and refs; lineage highlighting for a selected commit; keyboard navigation; dark and light themes; and background loading of history with virtual rendering for large repositories.
The project is driven by a written specification and Architecture Decision Records in docs/.
02 / Architecture
How it fits together
INPUT
Git repository
History, branches, tags
CORE
Ocelli
Lane graph · edit from the view
OUTPUT
Three run modes
Desktop · terminal · server
Desktop
Tauri app. Run it with bun run tauri dev, or build installers with bun run tauri build.
Terminal
ocelli-cli opens the repository at a path, defaulting to the current directory. An ASCII flag is available for terminals without box-drawing characters.
Server
ocelli-server serves the same interface to a browser. It only reads unless started with the allow-writes flag.
Lane graph
Each branch in its own lane, merges as orthogonal edges, with chips for branches, remotes and tags, plus stash and uncommitted-change rows.
03 / Decisions
Specifications and decisions
Written specifications and architecture decision records live next to the code, so the reasoning behind the design stays reviewable.
- docs/Specification and Architecture Decision Records
04 / Getting started
Try it
Prerequisites and exact server options are in the README.
$ git clone https://github.com/hivevm/ocelli
$ cd ocelli
$ bun install --frozen-lockfile
$ bun run tauri dev
$ cargo run -p ocelli-cli -- .