A remote VPS IDE. Run on your server, access from any browser.
- React + Vite (frontend)
- Express + Socket.io (backend)
- Monaco Editor
- SSH via
node-ssh - Key pair auth system
npm install
npm run dev- Frontend:
http://localhost:5173 - Backend:
http://localhost:8787
# On your VPS
npm ci
npm run build
NODE_ENV=production PORT=8787 node server/index.jsThen point your domain (e.g. kodin.yourdomain.com) at port 8787 via Nginx:
server {
listen 80;
server_name kodin.yourdomain.com;
location / {
proxy_pass http://localhost:8787;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}- Open
kodin.yourdomain.com - In the Key Pair tab, enter a label and click Generate
- Copy the
kdn_...key immediately (shown once) - Share that key with users who should have access
- Users paste the key on the connect screen
Connect directly to any SSH server with password or private key.
Open a local folder on the machine running the server.
- Dark (default)
- Light
- Midnight Blue
- Carbon (VS Code Dark+)
- Amber
- Solarized Dark
- Rosé Pine
| Shortcut | Action |
|---|---|
| Ctrl+P | Command Palette |
| Ctrl+S | Save File |
| Ctrl+B | Toggle Sidebar |
| Ctrl+` | Toggle Terminal |
| Ctrl+Shift+F | Search in Files |
- Right-click any file or folder in the explorer for: New File, New Folder, Rename, Delete, Copy Path
- Click
+/⊕buttons in the sidebar header to create at workspace root - All operations call the backend API directly — no frontend-only mocks
- ✅ Monaco editor (syntax, autocomplete, bracket pairs)
- ✅ File create / rename / delete (working)
- ✅ Multi-tab editor with dirty indicator
- ✅ Auto-save with 500ms debounce
- ✅ Terminal (socket-based, command history, Ctrl+L to clear)
- ✅ Git: branch, staged/unstaged, diff viewer, commit
- ✅ Full-text workspace search
- ✅ Command palette
- ✅ 7 themes (proper light/dark/custom)
- ✅ Key pair auth + SSH auth
- ✅ Real-time collaboration events via Socket.io
- ✅ Active resource monitor