VSCode's workbench, without Electron.
Why · What's Working · Getting Started · How It's Built · Contributing · Discord
SideX 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.
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.
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.
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)
git clone https://github.com/Sidenai/sidex.git
cd sidex
npm install
npm run tauri devnpm 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 buildFirst build takes 5–10 minutes (Rust compile time). Pre-built binaries are not distributed yet.
SideX maps VSCode's Electron architecture onto Tauri layer by layer:
| VSCode (Electron) | SideX (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.
sidex/
├── 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
| 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
This was released early to get outside contributors involved.
- Fork the repo and create a branch
- Pick something — check Issues or grab something from the Known Gaps list above
- Submit a PR — contributors get credited
- Follows VSCode's patterns — familiar if you've read the VSCode source
- TypeScript imports use
.jsextensions (ES module convention) - Services use VSCode's
@injectdependency injection decorators - New Rust commands go in
src-tauri/src/commands/and register inlib.rs
- Discord: Join the SideX server
- X / Twitter: @ImRazshy
- Email: kendall@siden.ai
MIT — SideX is a port of Visual Studio Code (Code - OSS), which is also MIT licensed. See LICENSE for details.

