VS Code rebuilt on Tauri. Same architecture, 96% smaller. Early release.
Find a file
Kendall Booker 58ebd039ec
Some checks failed
Formatting / Prettier (push) Has been cancelled
Formatting / rustfmt (push) Has been cancelled
Formatting / taplo (push) Has been cancelled
Lint JS/TS / TypeScript (push) Has been cancelled
Lint JS/TS / ESLint (push) Has been cancelled
Merge pull request #51 from DevYatsu/maximize-on-dblclick
Window Maximize on TitleBar DoubleClick
2026-05-13 00:02:37 +00:00
.devcontainer devcontainer 2026-05-12 00:13:22 -04:00
.github/workflows fix: tauri windows root 2026-04-24 08:46:26 +00:00
crates feat(extensions): strict UTF-8 manifest decoding with BOM stripping 2026-04-25 06:49:42 +01:00
docs/assets remove aws bs 2026-04-12 18:40:16 -05:00
examples/hello-extension Fromating 2026-04-15 21:57:17 -05:00
extensions-rust fix ext, and remote and themes 2026-04-21 03:27:02 -05:00
infrastructure/marketplace-proxy feat: backend connected and proxy marketplace 2026-04-20 18:54:03 -05:00
public Fix: Publish Build 2026-04-16 09:40:47 +00:00
scripts feat: implement part NLS language switching across all platforms 2026-04-22 17:26:24 -05:00
sidex-extension-sdk feat: VS Code parity extension host 2026-04-14 03:08:12 -05:00
src fix: Titlebar dblclick maximize to mimic VSCode (nice) behavior 2026-04-30 22:03:33 +02:00
src-tauri feat(extensions): strict UTF-8 manifest decoding with BOM stripping 2026-04-25 06:49:42 +01:00
src-wasm refactor: streamline extension metadata and improve performance 2026-04-15 03:40:40 +03:00
.editorconfig Fromating 2026-04-15 21:57:17 -05:00
.gitignore chore(gitignore): ignore local .cargo/ and .claude/ state dirs 2026-04-25 06:49:58 +01:00
.prettierignore Fromating 2026-04-15 21:57:17 -05:00
.prettierrc Fromating 2026-04-15 21:57:17 -05:00
ARCHITECTURE.md feat: backend connected and proxy marketplace 2026-04-20 18:54:03 -05:00
Cargo.lock fix: update vulnerable deps and fix cargo audit 2026-04-22 15:13:03 -05:00
Cargo.toml fix: clean up all formatting and clippy lint violations 2026-04-22 03:32:10 -05:00
CONTRIBUTING.md ignore: Revamped info 2026-04-06 05:34:38 -05:00
eslint.config.js chore: fix all lint, type, and formatting errors across repo 2026-04-22 14:58:31 -05:00
index.html feat: implement part NLS language switching across all platforms 2026-04-22 17:26:24 -05:00
LICENSE ignore: Revamped info 2026-04-06 05:34:38 -05:00
package-lock.json chore: fix all lint, type, and formatting errors across repo 2026-04-22 14:58:31 -05:00
package.json chore: fix all lint, type, and formatting errors across repo 2026-04-22 14:58:31 -05:00
README.md ignore: Revamped info 2026-04-06 05:34:38 -05:00
rustfmt.toml Very buggy but early feat: Rust-first extension platform with WASM runtime and LSP integration 2026-04-09 02:52:47 -05:00
tsconfig.json chore: fix all lint, type, and formatting errors across repo 2026-04-22 14:58:31 -05:00
tsconfig.node.json Initial commit: SideX — clean-room Tauri port of VSCode 2026-03-31 17:08:09 -05:00
vite.config.ts fix circular chunk 2026-04-22 14:59:15 +02:00

SideX

VSCode's workbench, without Electron.

Discord Contributing MIT License Built with Tauri


SideX — VSCode workbench running on Tauri


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.


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.

SideX 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/Sidenai/sidex.git
cd sidex
npm install
npm run tauri dev

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 510 minutes (Rust compile time). Pre-built binaries are not distributed yet.


How It's Built

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.

Project Layout

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

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

Community


License

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