Kyde: A High-Performance Rust-Based Git Commit and Diff Editor

Kyde: A High-Performance Rust-Based Git Commit and Diff Editor

Kyde is a fast, native commit and diff code editor designed to replace the heavy JVM-based IDEs for developers who primarily use their editor for reviewing changes and committing code. Built with Rust and the GPUI framework, Kyde focuses on low-latency performance and a streamlined Git workflow.

GPU-Accelerated Performance

Kyde achieves high-performance rendering by utilizing native GPU rendering via the GPUI framework (the same framework used by the Zed editor). This architecture allows for smooth scrolling and low latency, even when handling extremely large files.

  • Viewport Virtualization: Only the rows currently visible on screen are shaped each frame, preventing performance degradation on massive files.
  • Async Highlighting: Large files open instantly as plain text, with syntax highlighting applied off-thread to avoid blocking the UI.
  • Benchmark: The author reports scrolling a 37,000-line package-lock.json file at approximately 120fps.

Core Git Workflow Features

Kyde provides a visual interface for common Git operations, effectively making git add -p visual. It focuses on the essential tools needed for reviewing and committing changes.

Commit and Diff View

Kyde features a side-by-side diff view with word-level highlighting. A center gutter allows users to stage or revert specific hunks of code directly from the UI, providing granular control over what is committed.

Branch and File Management

  • Branch Switcher: A searchable tree that organizes branches into folders and tracks recent local roots.
  • Rollback: A native window with a checkbox tree of changes, allowing users to selectively rollback changes with optional deletion of added files.
  • Pushing: Integrated status-bar buttons and context menus for pushing changes when the app is ahead of the upstream branch.

Search and Navigation

Kyde implements several IDE-like navigation tools to maintain efficiency:

  • Fuzzy Finders: ⌘⇧O / ⌘P for "Go to File" and ⌘⇧A for "Find Action".
  • Global Search: ⌘⇧F (utilizing git grep) for full-text content search across the entire repository.
  • Scratch Files: Dedicated throwaway buffers for temporary notes or notes.

Technical Stack and Architecture

Kyde is built from scratch using a specific set of high-performance libraries:

  • GPUI: A GPU-rendered GUI framework (Apache-2.0).
  • Git: The application shells out to the system git rather than using libgit2.
  • Similar: Used for line and word diffing (Apache-2.0).
  • Tree-sitter: Provides syntax highlighting via on-demand language packs (including TypeScript, Rust, JSON, Python, and Go).

Installation and Configuration

Kyde is primarily distributed as a macOS application. While the code is cross-platform and GPUI runs on Windows and Linux, the author currently only provides prebuilt releases for macOS.

  • Installation: Users can download the kyde-macos.zip from the GitHub releases page.
  • Installation Note: As the app is not yet code-signed, macOS Gatekeeper may block the first launch; users must right-click and choose "Open" or clear the quarantine flag via xattr.
  • Shell Integration: Kyde offers an optional ky shell command symlink in ~/.local/bin for opening repositories directly from the terminal.
  • Keymaps: The editor provides presets for WebStorm and VSCode to reduce the onboarding friction.

Community Feedback and Discussion

Community reactions to the project have been mixed, focusing on both the technical implementation and the project's origin.

"I like how it looks. But the terminal already has excellent diff and commit tools."

Some users expressed a desire for more accessibility features, such as a light theme for users with astigmatism, and support for Git submodules. Others questioned the value of a native app over a custom Neovim setup or agentic AI coding tools.

There was also significant discussion regarding the "vibe-coding" aspect of the project, as the author admitted to not knowing Rust. The project was built using AI assistance, which sparked a debate among developers about whether generating code via AI constitutes programming.

Known Limitations

  • Releases: Prebuilt binaries are only available for macOS.
  • Editor Features: Soft-wrap and caret-follow scrolling are currently missing.
  • Buffer Management: The editor currently uses a flat String for buffers; a rope-based buffer is planned for future updates to handle very large edits more efficiently.

Sources