orin-ide
v1.0.6
Published
AI-powered browser-based coding environment with terminal, file system, multi-model AI chat, diff viewer, snippet palette, and project-wide find & replace.
Maintainers
Readme
Live Demo · npm Package · Report a Bug · Request a Feature
What is OrinIDE?
OrinIDE is a fully-featured, AI-augmented code editor that runs entirely in your browser — backed by a lightweight local Node.js server. There's no cloud account, no IDE subscription, and no upload of your code anywhere. Just run a single npx command, open localhost:3000, and you have a full coding environment with a real terminal, file system, multi-model AI chat, diff viewer, and much more.
Built by Nandan Das — runs on desktop, laptop, and even Android via Termux.
Preview
Quick Start
# Zero install — run instantly
npx orin-ide
# Or install globally
npm install -g orin-ide
orin-ideThen open http://127.0.0.1:3000 in your browser.
# Custom port
orin-ide --port 8080Android / Termux Setup
Run OrinIDE directly on your Android phone using Termux.
# 0. Enable storage access (IMPORTANT)
termux-setup-storage
# 1. Update packages + install Node.js
pkg update -y && pkg install nodejs-lts -y
# 2. Install OrinIDE
npm install -g orin-ide
# 3. (Optional) Install Python & C/C++ compiler support
bash $(npm root -g)/orin-ide/setup.sh
# 4. Start OrinIDE
orin-ideThen open http://127.0.0.1:3000 in your mobile browser.
Features
| Feature | Description |
|---|---|
| AI Chat | Multi-model AI assistant powered by OpenRouter — supports DeepSeek, Gemini, GPT, and more |
| Real Terminal | Fully interactive shell inside the browser — not a fake console |
| File System | Complete project file tree — create, rename, move, delete |
| Diff Viewer | Review AI whole-file edits line-by-line; accept or reject with one click |
| Snippet Palette | 20+ built-in snippets for JS, Python, HTML, CSS, and React |
| Find & Replace | Project-wide search and replace across all files |
| ZIP Export | Export any project as a .zip instantly |
| Media Upload | Drag-and-drop images, videos, and audio into your project |
| Code Stats | Live line / word / character count in the status bar |
| Command Palette | Keyboard-driven command search — like VS Code's Ctrl+P |
| Mobile Ready | Fully responsive — works on Android with Termux |
AI Models (via OpenRouter)
All models below are available on the OpenRouter free tier unless noted:
| Model | Notes |
|---|---|
| openrouter/auto | Auto-selects best free model (default) |
| Poolside Laguna xs.2 | Fast coding-focused model |
| GLM-4.5 Air | Z-AI free model |
| Tencent HY3 | Preview model |
| GPT-OSS 120B | OpenAI open-weights model |
| Nvidia Nemotron 120B | Powerful free model |
| Google Gemma 3 27B | Google's open model |
| DeepSeek V4 Pro | Paid — best overall for code |
You can also enter any custom OpenRouter model ID directly in the settings panel.
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| Ctrl + S | Save file |
| Ctrl + P | Command Palette |
| Ctrl + N | New file |
| Ctrl + B | Toggle sidebar |
| Ctrl + Shift + S | Snippet Palette |
| Ctrl + Shift + H | Find & Replace |
Project Structure
orin-ide/
├── backend/
│ ├── server.js # Express server + WebSocket
│ ├── routes/
│ │ ├── files.js # File system API
│ │ ├── terminal.js # PTY terminal over WebSocket
│ │ ├── export.js # ZIP export, Termux export
│ │ └── preview.js # Live preview route
│ └── services/
│ ├── terminalManager.js # PTY session management
│ └── watcherManager.js # File change watcher (chokidar)
├── frontend/
│ └── public/
│ ├── index.html # Main app shell
│ ├── css/ # Modular stylesheets
│ └── js/ # Feature modules (app, vibe, chat, snippets…)
├── bin/
│ ├── orin-ide.js # CLI entry point
│ └── postinstall.js # Post-install message
├── setup.sh # Termux dependency installer
└── package.jsonSecurity
Version 1.0.5 includes a full security hardening pass:
- Path traversal protection on all export routes via
safeProjectName()validation Content-Dispositionheader injection fixedtargetDirrestricted to an allowlist of safe roots on Termux exportlocalOnlymiddleware added to all routes- WebSocket connection limit (max 10 simultaneous clients)
- Broadened
rmban pattern to catch all dangerous variants multerupgraded to^2.0.0— resolves 7 high-severity CVEs from1.xarchiverupgraded to^7.0.1— removes deprecated transitive dependencies
Requirements
- Node.js
>= 18.0.0 - An OpenRouter API key (free tier available) for AI features
- Any modern browser (Chrome, Firefox, Edge, Brave)
Contributing
Contributions, issues, and feature requests are welcome.
- Fork the repo
- Create a feature branch —
git checkout -b feat/your-feature - Commit your changes —
git commit -m "feat: add your feature" - Push to the branch —
git push origin feat/your-feature - Open a Pull Request
Please check the issues page before opening a new one.
License
MIT © 2026 Nandan Das — [email protected]
See LICENSE for full terms.
Changelog
v1.0.6 — Security Hardening
Full security audit and hardening release. See the Security section for details.
Built with care by Nandan Das
