A lightweight, open-source, self-hosted web IDE.
Code editor, terminal, git, and file explorer — all in your browser.
Vulos — rooted in vula, the Zulu and Xhosa word for open.
Part of the Vulos OS suite ![]()
wede is a single ~10 MB Go binary that serves a full web IDE straight from your machine. No cloud dependency, no Docker, no subscriptions, no database. Deploy it on a server, a NAS, a Raspberry Pi, or just run it locally — then code from any device through your browser.
It runs standalone or embedded as a first-class app in the Vulos OS shell via frame_ancestors iframe integration.
Website · Quick start · Docs · Changelog · Roadmap
See docs/SCREENSHOTS.md for the full gallery and how to regenerate.
| Feature | Description |
|---|---|
| File Explorer | VS Code-style project tree with git status colours. Context menu: copy, paste (recursive), rename, delete with confirmation. File-watching via SSE auto-refreshes on disk changes. |
| Code Editor | CodeMirror 6 with syntax highlighting for JavaScript, TypeScript, Go, Python, Rust, and 10+ languages. Multi-cursor (Alt+Click), column select (Alt+Drag), bracket matching, code folding. |
| Auto-save | 1.5 s debounced save after each edit. Status indicator in the top bar. Toggle per-session in Settings. Manual Ctrl/Cmd+S always works. |
| Project Search | Ctrl/Cmd+Shift+F — workspace-wide search with ripgrep (Go walker fallback). Case and regex toggles. Replace across files. Results grouped by file; click to jump to exact line. |
| Command Palette | Ctrl/Cmd+Shift+P — fuzzy-search over all IDE commands: save, new file/folder, toggle terminal, git ops, theme switch, logout, and more. |
| Web Terminal | Full PTY terminal emulator via xterm.js and WebSocket. Multiple tabs. Run shell commands, SSH, Docker — anything. |
| Git Client | Visual commit graph (SVG DAG), staging area, per-hunk staging, branch management, git push/pull/fetch, create branch, stash, merge-conflict resolution. |
| Built-in Browser | Preview your running web app in an embedded browser tab without leaving the IDE. |
| LSP | Language Server Protocol proxy for diagnostics, hover, completion, and go-to-definition. Supports gopls, typescript-language-server, pylsp, rust-analyzer. |
| Format on Save | Auto-formats on Ctrl/Cmd+S: gofmt for Go, prettier for JS/TS/CSS/JSON/HTML/Markdown, black for Python. |
| Image & Binary Preview | Images render inline with a checkerboard background; other binary files show a size notice instead of garbled editor content. |
| Editor Settings | Font size, tab width, word wrap, minimap, auto-save — all live-applied without reopening files, persisted to localStorage. |
| Dark & Light Themes | Midnight (dark) and Daylight (light) colour schemes with Space Grotesk / Inter / JetBrains Mono font stack. |
| Mobile Friendly | Fully responsive UI for tablets and phones. |
| Secure Access | Password authentication with 3-attempt lockout (persisted across restarts). Session TTL, server-side logout, WS token in subprotocol (not URL). |
| Single binary | Go embeds the entire frontend — one ~10 MB file to deploy anywhere. |
curl -fsSL https://raw.githubusercontent.com/vul-os/wede/main/install.sh | bashThe installer downloads the binary, generates a random password, and prints it. Then:
wede /path/to/your/projectOpen http://localhost:9090 and log in.
Or download a binary directly from GitHub Releases.
Manual config — save as wede.config.json in your project root (gitignored by default):
{
"password": "your-strong-password-here",
"port": "9090"
}| Document | Description |
|---|---|
| docs/GETTING-STARTED.md | Installation, first steps, network exposure |
| docs/ARCHITECTURE.md | Internal structure, API surface, security model |
| docs/CONFIGURATION.md | All config keys, iframe embedding, CLI flags |
| docs/SCREENSHOTS.md | Screenshot gallery + how to regenerate |
| ROADMAP.md | Planned features by milestone |
| CHANGELOG.md | Full version history |
Prerequisites: Go 1.25+, Node.js 18+
Frontend (React + Vite, hot reload):
npm install
npm run devBackend (Go):
cd backend
go run ./cmd/wede .The Vite dev server proxies /api and WebSocket requests to the Go backend at port 9090.
Production build (single binary with embedded frontend):
npm run build:all
# outputs ./wedeTests and lint:
cd backend && go test ./...
npm run lintRegenerate screenshots:
npm install # installs playwright devDep
npx playwright install chromium # one-time chromium download
npm run screenshots # auto-starts wede on scripts/demo-workspace/The screenshotter starts the ./wede binary pointed at scripts/demo-workspace/ automatically. See docs/SCREENSHOTS.md for environment variables and route details.
Security reminder: Always set a strong, unique password in
wede.config.jsonbefore exposing wede over a network. The example config uses a placeholder — change it before use. Theinstall.shinstaller auto-generates a random password; if you configured manually, updatewede.config.jsonnow.
Contributions are welcome!
- Fork the repository
- Create a feature branch:
git checkout -b feat/my-feature - Commit your changes:
git commit -m 'feat: add my feature' - Push to the branch:
git push origin feat/my-feature - Open a pull request
Please keep the Go tests and lint clean (go test ./... + npm run lint) before submitting.
MIT — free to use, modify, and distribute.
wede is a free, open-source, self-hosted web IDE and remote development environment.
Built as an alternative to code-server, VS Code Server, Gitpod, and GitHub Codespaces.
Keywords: web IDE, self-hosted IDE, browser code editor, remote development, online terminal,
git client, open source IDE, developer tools, Go web server, single binary IDE.







