惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
宝玉的分享
宝玉的分享
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
博客园_首页
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
量子位
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
美团技术团队
小众软件
小众软件
Jina AI
Jina AI
S
SegmentFault 最新的问题
博客园 - Franky
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

Hacker News: Front Page

SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Introducing Claude Opus 4.7 Qwen Studio The Future of Everything is Lies, I Guess: Where Do We Go From Here? GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis Ancient DNA reveals pervasive directional selection across West Eurasia [pdf] AI cybersecurity is not proof of work Moving a large-scale metrics pipeline from StatsD to OpenTelemetry / Prometheus GitHub - Nightmare-Eclipse/RedSun: The Red Sun vulnerability repository GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. A Better Ludum Dare; Or, How to Ruin a Legacy GitHub - macOS26/Agent: Any AI, replaces Claude Code, Cursor, OpenClaw. Over 18 LLM providers (Claude, OpenAI, Gemini, Ollama, Zai, HF, Qwen) wired into a native Mac app that writes code, builds Xcode projects, bumps versions, manages git, automates Safari, use AppleScript, JS or Accessibility, extend Agent! w/ MCP Servers, run tasks from your iPhone via Messages. YouTube now lets you turn off Shorts I Made a Terminal Pager Burgers | マクドナルド公式 Commands — HackerNews CLI documentation ChatGPT for Excel PiCore - Raspberry Pi Port of Tiny Core Linux Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Founding Engineer at Adaptional | Y Combinator CRISPR takes important step toward silencing Down syndrome’s extra chromosome GitHub - saffron-health/libretto: The AI toolkit for building reliable browser automations US v. Heppner (S.D.N.Y. 2026) no attorney-client privilege for AI chats [pdf] Unexpected €54k billing spike in 13 hours: Firebase browser key without API restrictions used for Gemini requests Fragments: April 14 Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Laravel raised money and now injects ads directly into your agent Codex Hacked a Samsung TV
GitHub - kyle-ssg/kyde: A fast native commit and diff cod...
kyle-ssg · 2026-06-22 · via Hacker News: Front Page

Kyde

build cargo-deny License: Apache-2.0

I don't know Rust.

These days I barely open my full IDE — pre-AI I was doing thousands of commits a year, and now I mostly live in its commit and diff view, one of the few things heavy enough to make me wait for a JVM to start.

So Kyde is just that. A fast native commit and diff code editor — a Git client for macOS, Linux and Windows.

Commit view — side-by-side diff with word-level highlighting and a center gutter to stage/revert hunks

~120fps scrolling a 37k-line package-lock.json — viewport virtualization + off-thread highlighting.

Goals

  • Fast. Native GPU rendering, low latency. 120fps even on large files.
  • Familiar. A tuned dark theme so it feels at home to anyone who's lived in a modern IDE.
  • Side-by-side diff with word-level highlighting and a center gutter to stage/revert hunks — git add -p, made visual.
  • Open a folder and edit with tree-sitter highlighting.

Stack

  • gpui (Apache-2.0) — Zed's native, GPU-rendered GUI framework. No web, no Electron.
  • git, shelled out. No libgit2.
  • similar (Apache-2.0) — line and word diffing.

Built from scratch on gpui, borrowing patterns from existing editors but not their code.

Theme

A hand-tuned dark palette, configurable at runtime via ~/.config/kyde/theme.json.

Features

Projects

  • Landing view when no project is open: searchable recents with branch + path, persisted to ~/.config/kyde/projects.json.
  • Open / New Project via the native folder picker.

Code — browse & edit

  • Folder tree — expandable, resizable, file-type icons, git-status colors.
  • Text editor — selection, undo/redo, copy/cut/paste, Tab/Shift-Tab indent, ⌘-backspace, line numbers, current-line highlight, IME, auto-save.
  • Find & replace⌘F find (⌘G/⇧⌘G to cycle), ⌘R replace.
  • Editor tabs that scroll and follow the active file.
  • Image preview for PNG/JPG/GIF/WebP.
  • Syntax highlighting via tree-sitter, installed on demand from a built-in Language Plugins manager. Packs: TypeScript/TSX, JavaScript, Rust, JSON, Markdown, Shell, CSS, SCSS, YAML, TOML, Python, HTML, Go, R, LaTeX — plus always-on .env and .gitignore highlighters, and a Font preview plugin. Each pack is also a Cargo feature, so a build can ship only the grammars it wants (details).
  • Code folding for grammar-backed languages.
  • Markdown preview — a live rendered pane alongside the editor.

Language Plugins manager — a native window listing every language pack (CSS, Go, HTML, JavaScript, JSON, LaTeX, Markdown, Python, R, …) with per-pack Install / Uninstall

Browse view — folder tree, editor tabs, and an opt-in language-pack install banner

Markdown support — editing a Markdown file with a live rendered preview pane on the right

Git — commit, diff, branches

  • Commit view: changed-files list + an editable side-by-side diff — base on the left, live working copy on the right, both highlighted.
  • Stage / revert per hunk from the center gutter, or whole files; commit via the message box.
  • Rollback in a native window — checkbox tree, optional deletion of added files, right-click for diff.
  • Push when ahead of upstream (status-bar button + context menu).
  • Branch switcher — searchable tree, / as folders, Recent / Local roots.
  • File management from the tree — New File, Rename, Delete (with confirm).

Rollback in a native window — checkbox tree of changes over the diff

Search & navigation

  • Go to File (⌘⇧O / ⌘P) and Find Action (⌘⇧A) fuzzy finders.
  • Find in Files (⌘⇧F) — full-text content search across the repo (git grep), jump straight to a match.
  • Scratch files — throwaway buffers under a "Scratches" folder.
  • Breadcrumbs in the status bar.

Find in Files — full-text content search across the repo, results listed with file and line for the query “kyde”

Look & feel

  • Islands layout — rounded panels, draggable dividers, activity rail, native title bar (double-click to zoom), status bar.
  • Native menu bar — Settings, FPS monitor toggle, Quit.
  • App icon from the bundled logo.

Keymap & configuration

  • WebStorm / VSCode presets with per-action overrides in ~/.config/kyde/keymap.json.
  • Onboarding keymap picker on first launch, reopenable via Settings.
  • Install shell command — optionally symlinks ky into ~/.local/bin. No shell-rc editing, no sudo.

Install

Grab the latest build for your platform from the Releases page.

macOS — download kyde-macos.zip, unzip, and drag Kyde.app to /Applications. The app isn't code-signed yet, so the first launch is blocked by Gatekeeper — right-click it and choose Open (once), or clear the quarantine flag:

xattr -dr com.apple.quarantine /Applications/Kyde.app

Linux — download kyde-linux.AppImage, make it executable, and run it:

chmod +x kyde-linux.AppImage
./kyde-linux.AppImage

Windows — download kyde-windows.zip, unzip, and run kyde.exe.

Or build from source — see Build. On macOS, ./scripts/bundle-macos.sh produces dist/Kyde.app you can drag to /Applications.

Usage

Launch with no arguments for the Projects view, or point it at a repo:

cargo run -- /path/to/repo

First-run setup offers to install a ky shell command (a symlink into ~/.local/bin — no shell-rc editing, no sudo); leave it ticked and you can open Kyde from any terminal:

ky                 # Projects view
ky /path/to/repo   # open a repo directly

Default shortcuts (WebStorm → VSCode):

  • Go to File: ⌘⇧O⌘P
  • Find Action: ⌘⇧A
  • Find / Replace in file: ⌘F / ⌘R
  • Save: ⌘S
  • Commit: ⌘K⌘⏎
  • Commit view: ⌘9⌃⇧G
  • Browse view: ⌘1⌘⇧E
  • New Scratch: ⌘⇧N
  • Settings: ⌘,

Build

Needs Rust 1.96+ and (on macOS) Apple's Metal Toolchain, which gpui uses to compile its shaders — if a clean machine errors with "missing Metal Toolchain", run xcodebuild -downloadComponent MetalToolchain.

cargo build --release          # full — every language grammar baked in (default)
cargo test                     # logic, perf guards, and headless-gpui smoke tests

Each language pack is a Cargo feature, so unused grammars can be dropped from the binary entirely (smaller image + resident RAM):

cargo build --release --no-default-features --features rust,json,toml

Performance

Large files stay smooth via viewport virtualization (only on-screen rows are shaped each frame) and async highlighting (big files open instantly as plain text, then highlight off-thread). A 37k-line package-lock.json scrolls at ~120fps.

On-screen FPS monitor reading 127fps while scrolling a 37k-line package-lock.json

Guarded by perf_* time-budget tests, headless-gpui smoke tests (render every screen, fail on any panic), and a toggleable on-screen FPS monitor.

Known limitations / next

  • Prebuilt releases are macOS-only. I develop on macOS and wouldn't actively test Linux/Windows, so I only ship a signed + notarized macOS build rather than binaries I can't stand behind. The code itself is cross-platform — gpui runs on all three, and Linux/Windows packaging already exists in scripts/ (just unwired from the release). Re-enabling them is a good first issue for a contributor who runs those platforms. Until then, Linux/Windows users can cargo build --release.
  • No soft-wrap or caret-follow scrolling yet. The editor uses a flat String; a rope-based buffer comes later for very large edits.
  • File watching currently refreshes on focus only. Live updates will likely use notify.

Contributing

If you open a PR, please be kind — explain the idiomatic way, don't just dunk on my .clone()s. I'll read every comment and quietly Google what a lifetime is.

If the feature adds a lot of bloat, it should be a plugin.