- Category
- Developer Tools
- Rank
- No. 1704Tools index
Previous survey · No. 1711 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- block
- GitHub
- 5 stars
- Date
About
Git tree visualizer. Renders repository history and branch topology so you can see how commits, branches, and merges relate at a glance.
What it does
Canopy is a desktop workspace for inspecting a local Git repository alongside GitHub pull requests. It groups branch activity by time, status, or author, flags stale and conflict-risk branches, opens branch-level commit and file changes, generates AI diff summaries, and can launch branches locally for screenshot previews.
Why it's ranked here
Its value comes from joining repository state, pull request context, risk signals, diffs, and visual previews in one desktop interface. That scope makes it useful beyond simple history browsing. The cost is substantial setup, broad GitHub credentials, and a preview system tailored to JavaScript applications.
What's good
Local repository data loads before optional GitHub data, so remote failures do not block the core view. Branches expose ahead and behind counts, author details, freshness, and possible conflicts. Pull requests connect back to branch activity. Background preview generation can reduce waiting when opening comparisons.
Tradeoffs
Installation requires Node.js, pnpm, Rust, platform-specific Tauri prerequisites, and a GitHub token with repository scope. Production use starts from a source build rather than a documented packaged download. Screenshot previews install dependencies and run project scripts locally, while the supplied builder only accepts projects with a JavaScript package manifest.
How to use it well
Use it when several active branches make repository health and review context hard to track. It fits a developer workstation beside GitHub and command-line Git, especially before reviews or merges. It does not replace Git operations, pull request management, or general visual testing across non-JavaScript projects.
Technical notes+
package.json defines a private ESM package built with React 19, TypeScript, Vite 6, Tailwind CSS 4, and Tauri 2. src/App.tsx loads local Git metadata first, heavier history second, and optional GitHub data afterward through Tauri invocations; it also prewarms branch screenshots on dedicated ports. lib/github.ts talks directly to GitHub’s REST API, compares branches with the default branch, and marks branches stale after 14 days or conflict-risk when comparison reports them unmergeable. lib/builder.ts shallow-clones a branch, caps clone size at 500 MB, requires package.json, installs dependencies, builds or starts the project, and enforces 90-second build and server waits. lib/screenshotter.ts uses Puppeteer, PNG parsing, and pixelmatch for image capture and comparison. README.md documents source setup but its clone URL names a different repository location than the supplied Canopy URL.
Observed
- Interface
- Tauri 2 desktop application with a React user interface and Rust backend.
- Application stack
- TypeScript, React 19, Vite 6, Tailwind CSS 4, and Tauri 2.
- Install surface
- Source installation uses pnpm; development and production builds run through the Tauri CLI.
- Prerequisites
- Node.js 18 or newer, pnpm, stable Rust, and platform-specific Tauri prerequisites.
- GitHub access
- GitHub integration requires a personal access token with repository scope.
- Package status
- The JavaScript package is marked private and uses ECMAScript modules.
- Preview mechanism
- Branch previews run projects locally and capture pages with headless Chrome through Puppeteer.
Read from README.md, package.json, src/App.tsx, src/main.tsx, lib/git.ts, lib/github.ts, lib/builder.ts, lib/screenshotter.ts, src/FolderPickerModal.tsx, vite.config.ts, postcss.config.js, types/index.ts, src-tauri/build.rs, components/BranchMap.tsx, components/BranchCard.tsx.
What it can do
Visualize Git repository history
Git repository → Visual tree representation of commit history
Display branch topology
Git repository with multiple branches → Visual diagram showing branch relationships
Show commit relationships
Git repository commits → Visual connections between related commits
Render merge connections
Git repository with merge commits → Visual representation of merge points and paths
Map branch divergence points
Git repository with branching history → Visual indicators of where branches split from main line
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
