Skip to content

crow-cli/crow-ade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crow

VSCode's workbench, without Electron.

Contributing MIT License Built with Tauri


Crow — VSCode workbench running on Tauri


Why · What's Working · Getting Started · How It's Built · Contributing


Crow is a port of Visual Studio Code that replaces Electron with Tauri — a Rust backend and OS's native webview. The same TypeScript workbench, the same editor, terminal, and Git integration, running without a bundled browser.

Early release. Core editing and the terminal are solid. The extension host and debugger are still in progress. See What's Working for the full picture.


Why

VSCode's memory useage is almost entirely from its bundled Chromium, not the editor itself. Tauri replaces that with the webview already on your system — WKWebView on macOS, WebView2 on Windows — shared across apps and costing almost nothing extra.

Crow 16.4 MB vs Visual Studio Code 797.8 MB

RAM savings are most tested on macOS, WKWebView is shared with Safari. On Windows the picture is more nuanced — WebView2 memory can look higher depending on how it's measured, and it's an active area in the Tauri ecosystem. The target is under 200 MB at idle on macOS. We'll publish real benchmarks once the app is stable enough for them to be meaningful.


What's Working

Solid:

  • Monaco editor with syntax highlighting and basic IntelliSense
  • File explorer — open folders, create, rename, delete
  • Integrated terminal — full PTY via Rust, shell detection, resize, signals
  • Git — status, diff, log, stage, commit, branch, push/pull/fetch, stash, reset
  • Themes — multiple built-in themes from the VSCode catalogue
  • Native OS menus (macOS, Windows, Linux)
  • Extension installation from Open VSX
  • File watching, file search, full-text search, Rust-backed search index
  • SQLite storage, document management (autosave, undo/redo, encoding)

Getting Started

Run in Development

git clone https://github.com/crow-cli/crow-ade.git
cd crow-ade
npm install --legacy-peer-deps
npm run setup:full
npm run tauri dev

What setup:full does:

The Rust backend requires VSCode's built-in extensions (syntax highlighting, themes, language support) to be present in the extensions/ directory. npm run setup:full either:

  • Copies extensions from a local VSCode installation (fast), or
  • Downloads them from the VSCode GitHub repo (slower, ~100MB)

This only needs to run once. Subsequent npm run tauri dev calls will skip the download.

Build from Source

npm install

# macOS / Linux
NODE_OPTIONS="--max-old-space-size=12288" npm run build

# Windows (PowerShell)
$env:NODE_OPTIONS="--max-old-space-size=12288"
npm run build

npx tauri build

First build takes 5–10 minutes (Rust compile time). Pre-built binaries are not distributed yet.


How It's Built

Crow maps VSCode's Electron architecture onto Tauri layer by layer:

VSCode (Electron) Crow (Tauri)
Electron main process Tauri Rust backend
BrowserWindow WebviewWindow
ipcMain / ipcRenderer invoke() + Tauri events
Node.js fs, pty, etc. Rust commands (std::fs, portable-pty)
Menu / Dialog / Clipboard Tauri plugins
Renderer (DOM + TypeScript) Same — runs in native webview
Extension host Sidecar process (in progress)

The TypeScript frontend is a direct port of VSCode's workbench. The Rust backend is in src-tauri/src/commands/ and handles everything that would have been a Node.js native module: file I/O, terminal PTY, Git, file watching, search indexing, SQLite, and process management.

Project Layout

crow/
├── src/                    # TypeScript workbench (ported from VSCode)
│   └── vs/
│       ├── base/           # Core utilities
│       ├── platform/       # Platform services and dependency injection
│       ├── editor/         # Monaco editor
│       └── workbench/      # IDE shell, panels, features, contributions
├── src-tauri/              # Rust backend
│   └── src/
│       ├── commands/       # fs, terminal, git, search, debug, etc.
│       ├── lib.rs          # App setup and command registration
│       └── main.rs         # Entry point
├── index.html
├── vite.config.ts
└── package.json

Tech Stack

Layer Technology
Frontend TypeScript, Vite 6, Monaco Editor
Terminal UI xterm.js + WebGL renderer
Syntax / Themes vscode-textmate, vscode-oniguruma (WASM)
Backend Rust, Tauri 2
Terminal portable-pty (Rust)
File watching notify crate (FSEvents on macOS)
Search dashmap + rayon + regex (parallel, Rust)
Storage SQLite via rusqlite
Extensions Open VSX registry

For a deeper dive, see ARCHITECTURE.md


Contributing

This was released early to get outside contributors involved.

How to Contribute

  1. Fork the repo and create a branch
  2. Pick something — check Issues or grab something from the Known Gaps list above
  3. Submit a PR — contributors get credited

Dev Notes

  • Follows VSCode's patterns — familiar if you've read the VSCode source
  • TypeScript imports use .js extensions (ES module convention)
  • Services use VSCode's @inject dependency injection decorators
  • New Rust commands go in src-tauri/src/commands/ and register in lib.rs

License

MIT — Crow is a port of Visual Studio Code (Code - OSS), which is also MIT licensed. See LICENSE for details.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors