Kyde: A Fast Native Git Commit and Diff Editor

Kyde is a native macOS Git client designed to replace heavy IDEs for the specific task of reviewing diffs and managing commits. Built using Rust and the GPUI framework, it focuses on extreme performance and low latency, providing a lightweight alternative for developers who spend more of their time in commit views than in full-scale editor environments.

High-Performance Rendering and UI

Kyde achieves high-performance scrolling and responsiveness through native GPU rendering and viewport virtualization. By only shaping the rows currently visible on screen, the editor can maintain approximately 120fps even when scrolling through massive files, such as a 37k-line package-lock.json.

Key architectural choices for performance include:

  • GPUI Framework: Utilizes Zed's native, GPU-rendered GUI framework to avoid the overhead of web technologies or Electron.
  • Async Highlighting: Large files open instantly as plain text, with syntax highlighting performed off-thread to prevent UI blocking.
  • ** uma-budget tests**: Performance is guarded by perf_* time-budget tests and headless-gpui smoke tests to ensure stability and speed.

Core Git and Editing Features

Kyde provides a focused set of tools for Git management and code browsing, prioritizing a visual approach to staging and committing.

Commit and Diff Workflow

  • Side-by-Side Diff: Features word-level highlighting with a center gutter that allows users to stage or revert individual hunks, effectively providing a visual interface for git add -p.
  • Rollback Interface: A native window with a checkbox tree allows for the selective rollback of changes.
  • Branch Management: Includes a searchable branch switcher with support for folder-based organization.
  • Push Integration: Direct push capabilities via the status bar and context menus when the local branch is ahead of upstream.

Code Browsing and Editing

  • Tree-Sitter Integration: Syntax highlighting is handled via tree-sitter, with language packs (including Rust, TypeScript, Python, and Go) installed on demand through a built-in manager.
  • Embedded Terminal: A multi-tab, PTY-backed shell using Alacritty's VTE engine is docked at the bottom of the interface.
  • Navigation: Includes fuzzy finders for "Go to File" and "Find Action," as well as a git grep powered "Find in Files" feature.
  • Markdown Support: Provides a live rendered preview pane alongside the Markdown editor.

Technical Stack and Configuration

Kyde is built with a minimal set of dependencies to maintain speed and binary size:

  • Language: Rust (requires version 1.96+).
  • Diffing Engine: The similar crate for line and word diffing.
  • Git Integration: Kyde shells out to the system git rather than using libgit2.
  • Customization: The dark theme is configurable via ~/.config/kyde/theme.json, and keymaps can be toggled between WebStorm and VSCode presets via ~/.config/kyde/keymap.json.

Current Limitations and Roadmap

While the codebase is cross-platform, prebuilt releases are currently limited to macOS. Linux and Windows support exists in the code and packaging scripts, but the author does not actively QA these distributions.

Other known limitations include:

  • Buffer Management: The editor currently uses a flat String for buffers; a rope-based buffer is planned for better handling of very large edits.
  • File Watching: Updates currently refresh on focus rather than providing live updates, with a planned move to the notify crate.
  • Text Handling: Soft-wrap and caret-follow scrolling are not yet implemented.

Community Discussion and Perspectives

The project has sparked a debate regarding "vibe-coding" and the use of AI in software development, as the author noted they do not know Rust and relied on AI to build the tool.

Some users praised the utility of the tool, noting that commit and diff views are often the only reason they open heavy IDEs. However, critics raised concerns about the quality of the code, with one user stating:

The code is...quite bad... It seems the AI coding is just the software version of Temu. Lots of cheap stuff but none of it is very good and it breaks pretty easily when you try to do anything outside of a very very small list of uses.

Other feedback focused on accessibility, specifically the request for a light theme to support users with astigmatism, and suggestions to integrate AI agents directly into the editor tabs rather than the terminal.

Sources