orin-ide
v1.0.9
Published
AI-powered browser-based coding environment with terminal, file system, multi-model AI chat, diff viewer, HTML preview, free image API, snippet palette, and project-wide find & replace.
Maintainers
Readme
A full AI-augmented code editor that runs in your browser — terminal, file system, and multi-model AI, all local.
Docs · npm Package · Report a Bug · Request a Feature
Table of Contents
- What is OrinIDE?
- Preview
- Quick Start
- Android / Termux Setup
- Features
- Keyboard Shortcuts
- AI Models
- Project Structure
- Security
- Requirements
- Contributing
- License
- Changelog
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.
Run one command:
npx orin-ideOpen localhost:3000, and you have a complete coding environment — real terminal, full file system, multi-model AI chat, multi-agent AI collaboration, a diff viewer, and a lot 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-ide
# Custom port
orin-ide --port 8080Then open http://127.0.0.1:3000 in your browser.
Android / 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
| | |
|---|---|
| Multi-Model AI Chat | Chat with AI models via OpenRouter — DeepSeek, Gemini, GPT, Claude, Gemma, and more. |
| Streaming Responses | Real-time token-by-token streaming with auto-scroll and scroll-lock detection. |
| Chat Modes | Chat, Generate, Edit, Patch, and Explain — each mode tailors the AI's output format. |
| Patch Mode | AI outputs surgical @@patch diffs instead of full file rewrites. |
| AI Continuation | Auto-resumes from exactly where it left off if a response gets cut off — verified against the model's actual finish signal, not a guess, so it never silently hands you half a file. |
| Project-Wide Context | AI reads every file in your project before each message. |
| System Prompt Engineering | Format rules placed first for free-model compliance. |
| Model Picker | Switch models from the top bar. Shows token usage, context limits, and model health. |
| Chat Sessions | Multi-session system with tags, pin/unpin, rename, export/import, stats, and search. |
| @Skill Mention | Type @ in chat for an autocomplete dropdown of all skills. |
A team of four specialized AI agents work your request end-to-end, in sequence, each building on the last:
Architect → Coder → Reviewer → Integrator
(plans) (builds) (audits) (ships)| | |
|---|---|
| Autonomous Task Execution | Hands a full multi-step build to the agent team — planning through implementation — with no micromanagement. |
| Per-Agent Model Selection | Assign a different model to each of the 4 roles from the config panel. |
| Multi-Model Collaboration | Each agent sees the previous agents' full output as context, budgeted to fit the model's window. |
| Self-Healing Generation | If any agent's step is cut off mid-file, it auto-continues from exactly where it stopped before handing off — so a truncated response never gets silently passed down the pipeline or applied to your project. |
| Terminal-Aware | Agents can emit @@cmd: shell commands (npm install, git init, etc.) — run individually or all at once, streamed live from a real shell. |
| Session Memory | Every collaboration is auto-saved as a session — rename, switch, or delete from the sessions panel. |
| | | |---|---| | Multi-Provider Support | OpenRouter, Anthropic, OpenAI, Groq, Together AI, Ollama (local), DeepSeek — all configurable. | | Bring Your Own Provider (BYOP) | Add any OpenAI-compatible API endpoint. | | Local Model Support | Run models locally via Ollama — TinyLlama, Mini models, and other lightweight LLMs. | | Seamless Model Switching | Switch between local and cloud models on the fly. | | Custom API Endpoints | Point to any OpenAI-compatible server — local or remote. | | Provider Health | Monitor provider status and model availability from the settings panel. |
| | | |---|---| | Auto-Detect Errors | AI-powered bug detection scans your code for issues. | | Explain Issues | Plain-language explanations of what went wrong and why. | | Suggest Fixes | Generates corrected code with explanations for each fix. | | Generate Corrected Code | Produces ready-to-apply corrected code with full context. |
| | | |---|---| | AI Explain on Hover | Ctrl+Hover any word for a rich formatted tooltip with explanation. | | Lightbulb Actions | AI-powered code actions in the editor gutter — Fix, Explain, Refactor, Optimize. | | AI Code Review | Full-file review with inline severity-tagged comments. | | AI Refactor | Select code, describe the change, get a diff-previewed refactor. | | Ghost Text Completions | Inline AI completions as you type, Tab to accept. | | AI Commit Messages | Generates a conventional commit message from your staged diff. | | Natural Language Terminal | Describe what you want in plain English, get the shell command. |
| | |
|---|---|
| File Explorer | Complete project file tree — create, rename, move, delete files and folders. |
| File Favorites | Pin/unpin files to a Favorites section at the top of the file tree. |
| Global Search | Project-wide keyword search with case-sensitive, whole-word, and regex options. |
| Find & Replace | Cross-file find and replace with highlighted matches. |
| ZIP Export / Import | Export any project as a .zip, or import one instantly. |
| Media Upload | Drag-and-drop images, videos, and audio into your project. |
| Quick Open | Ctrl+P opens a fuzzy file search modal. |
| | | |---|---| | Real Terminal | Fully interactive xterm.js shell — not a fake console. | | Multiple Sessions | Persistent terminal sessions that survive page refresh. | | Session Bar | Switch between terminal sessions with a session bar. | | Terminal Themes | Terminal colors sync to match the editor theme. |
| | |
|---|---|
| Source Control Panel | Shows branch name, staged/unstaged/untracked files. |
| Stage / Unstage | Stage or unstage individual files or all at once. |
| Commit | Commit with message (Ctrl+Enter). |
| Push / Pull | Push and pull with status feedback. |
| Git Init | Initialize a new repository. |
| Auto-Refresh | Git sidebar auto-refreshes when it becomes visible. |
| | |
|---|---|
| Dark Purple Theme | Deep-purple, cyberpunk-inspired UI. |
| Drag-to-Resize Panels | Resize sidebar, chat panel, agents panel, and terminal by dragging. |
| Sidebar Positioning | Dock the Explorer and AI Chat to the left or right independently. |
| Command Palette | Ctrl+Shift+P opens a searchable command palette. |
| Voice Commands | Web Speech API for voice-driven IDE actions. |
| Live Preview | Opens an iframe-based live preview of the project's index.html. |
| Diff Viewer | Review AI edits line-by-line in split or unified view. |
| Responsive Layout | Fully responsive — works on desktop, tablet, and mobile. |
| Mobile Navigation | Tab bar, FAB menu, and touch-optimized controls for Android. |
Keyboard Shortcuts
| General | Editor | AI Features | Navigation | Terminal |
|---|---|---|---|---|
| Ctrl+P Quick Open | Ctrl+D Select next occurrence | Ctrl+Shift+I Toggle AI completions | Ctrl+Shift+F Search sidebar | Ctrl+` Toggle terminal |
| Ctrl+Shift+P Command Palette | Ctrl+/ Toggle comment | Ctrl+Shift+R Toggle AI code review | Ctrl+Shift+G Git sidebar | Ctrl+Shift+C Copy selection |
| Ctrl+S Save file | Shift+Alt+F Format document | Ctrl+Shift+E AI refactor selection | Ctrl+Shift+S Snippet Palette | Ctrl+Shift+V Paste |
| Ctrl+W Close tab | Ctrl+\ Split editor | Ctrl+Hover AI explain on hover | Ctrl+Shift+H Find & Replace | |
| Ctrl+N New file | Ctrl+G Go to line | Ctrl+L Toggle AI Chat panel | | |
| Ctrl+B Toggle sidebar | F12 Go to definition | Ctrl+Shift+A Toggle AI Agents panel | | |
| Ctrl+, Open Settings | | | | |
| Ctrl+K Shortcuts Panel | | | | |
AI Models
All models below are available on the OpenRouter free tier unless noted:
| Model | Type | Notes |
|---|---|---|
| openrouter/auto | Auto | Auto-selects best free model (default) |
| Poolside Laguna xs.2 | Free | Fast coding-focused model |
| GLM-4.5 Air | Free | Z-AI free model |
| Tencent HY3 | Free | Preview model |
| GPT-OSS 120B | Free | OpenAI open-weights model |
| Nvidia Nemotron 120B | Free | Powerful free model |
| Google Gemma 3 27B | Free | Google's open model |
| Cohere North Mini Code | Free | Free coding model |
| DeepSeek V4 Pro | Paid | Best overall for code |
| GPT-5.5 | Paid | OpenAI flagship |
| Claude Opus 4.6 | Paid | Anthropic flagship |
You can also enter any custom OpenRouter model ID directly in the settings panel.
Project Structure
orin-ide/
├── backend/
│ ├── server.js # Express server + WebSocket + AI proxy
│ ├── routes/
│ │ ├── files.js # File system API + surgical patch endpoint
│ │ ├── 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 + splash screen
│ ├── assets/
│ │ ├── logo-mark.svg # Full OrinIDE logo
│ │ ├── logo-icon.svg # 24px compact logo
│ │ └── favicon.svg # Browser favicon
│ ├── css/ # 9 modular stylesheets
│ │ ├── main.css # Core layout, variables, splash
│ │ ├── sidebar.css # Explorer, file tree, git panel
│ │ ├── editor.css # Editor, tabs, diff viewer
│ │ ├── terminal.css # Terminal panel
│ │ ├── chat.css # AI chat panel
│ │ ├── modals.css # All modal dialogs
│ │ ├── mobile.css # Mobile responsive
│ │ ├── agents.css # AI Agents panel
│ │ └── overrides.css # Fine-tuning overrides
│ └── js/ # 44 feature modules
│ ├── app.js # Main bootstrap + boot sequence
│ ├── api.js # API client + AI proxy
│ ├── editor.js # Monaco Editor manager
│ ├── chat.js # AI Chat with streaming
│ ├── utils.js # Utilities, parseFiles, parsePatches, renderMD
│ ├── theme.js # 4 editor themes with token rules
│ ├── aiexplain.js # AI explain on hover
│ ├── ainline.js # Lightbulb, long-press, context menu
│ ├── aireview.js # AI code review
│ ├── airefactor.js # AI refactor inline
│ ├── aicodeactions.js # AI code actions provider
│ ├── agents.js # Multi-agent collaboration
│ ├── aiterminal.js # Natural language to shell
│ ├── aicommit.js # AI commit messages
│ ├── aicompletions.js # Ghost text completions
│ ├── filetree.js # File explorer
│ ├── fileicons.js # 40+ file type icons
│ ├── terminal.js # xterm.js terminal
│ ├── termthemes.js # Terminal color themes
│ ├── voicecommands.js # Voice commands
│ ├── voice.js # Voice input for chat
│ ├── skills.js # Skills system
│ ├── features.js # Chat sessions manager
│ ├── snippet*.js # Snippet engine + palette
│ ├── shortcuts.js # Shortcuts panel
│ ├── favorites.js # File favorites
│ ├── breadcrumb.js # Breadcrumb navigation
│ ├── spliteditor.js # Split editor
│ ├── gitdiff.js # Git diff decorations
│ ├── git-mgr.js # Git source control panel
│ ├── cmdpalette.js # Command palette
│ ├── quickopen.js # Quick open file search
│ ├── providers.js # AI provider configs
│ ├── preview.js # Live preview
│ ├── media.js # Asset upload
│ ├── imageapi.js # Free image API
│ ├── resizer.js # Panel drag-to-resize
│ ├── global-search.js # Global search
│ ├── sidebar-position.js # Sidebar docking
│ ├── autosave-indicator.js # Dirty state indicator
│ ├── vibe.js # Diff viewer, code snapshots, startup
│ └── orin_patches.js # Final patches + provider setup
├── bin/
│ ├── orin-ide.js # CLI entry point
│ └── postinstall.js # Post-install message
├── assets/
│ ├── logo-mark.svg # Full logo (root copy)
│ ├── preview.png # Project preview screenshot
│ └── preview.mp4 # Demo video (add your own)
├── 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 |
| API Key | OpenRouter (free tier available) for AI features |
| Browser | 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
Agentic Mode
- Fixed a bug where every agent turn threw
ReferenceError: systemContent is not defined, which made Agentic Mode fail immediately on every send (the multi-agent pipeline never actually produced output) - The agent's system prompt is now correctly preserved when the conversation is trimmed to fit the model's context budget, instead of being rebuilt from a variable that didn't exist in that scope
- Agentic Mode (Architect → Coder → Reviewer → Integrator) is now fully functional end-to-end, including auto-continue on cut-off responses and running
@@cmdshell commands from the results
Local AI Model Support
- Integrated local model execution directly inside Orin IDE via Ollama
- Support for running Ollama models, TinyLlama, Mini models, and other lightweight local LLMs
- Install, manage, and run local models directly from the IDE without leaving the workspace
Agentic Mode
- New Agentic Mode for autonomous and multi-step task execution
- Multiple mini AI models work together for improved reasoning and task completion
- Intelligent orchestration between models for coding, debugging, and assistance
- Phase-based workflow: Thinking → Planning → Coding → Integrating → Done
- Fixed a crash that could stop the agent pipeline after the first step
- Agents now auto-recover from a cut-off response before handing off to the next agent
AI Bug Fixer
- AI-powered bug detection that scans code for issues
- Suggests fixes with explanations for each detected problem
- Generates corrected code ready to apply
Extensible AI Ecosystem
- Bring-your-own-provider (BYOP) support — use any OpenAI-compatible API
- Custom API endpoints and self-hosted AI services fully supported
- Flexible configuration system for developers and power users
- Seamless switching between local and remote models
UI & UX Enhancements
- Complete UI redesign and visual improvements
- Enhanced animations, layouts, and micro-interactions
- Improved accessibility across the entire IDE
- Better responsiveness and overall user experience
Accessibility & Integration
- Unified AI experience across editor, terminal, and assistant panels
- AI features accessible throughout the IDE
- Keyboard-first design — every feature accessible via shortcuts
Patch Mode
- Patch button in top bar and extras popup — forces AI to output only
@@patchdiffs - Dedicated patch-only system prompt with zero file creation instructions
- Full file content sent in user message for maximum AI context
- 4-strategy auto-converter catches AI output in any format
- LCS-based diff engine finds ALL changed regions
- Backend fuzzy matching for resilient patch application
AI Continuation System
- Auto-chains when generation is incomplete, verified against the model's real finish reason
- Up to 10 continuations with minimal, bounded context per continue
- Stop button kills the continuation loop
- Fallback "Save to Project" panel when continuation fails
System Prompt Improvements
- Format rules placed first for free model compliance
- Shorter, more direct prompts
- Free model context limits corrected to 16384 tokens
Bug Fixes
DiffViewer.captureOrig()crash fixed- False-positive Continue button eliminated
- Patch apply backend now handles CRLF, tabs, trailing whitespace via fuzzy matching
- Removed a duplicate continuation handler that ignored the continue limit and could exhaust the model's context window on long sessions
New Features
- Project-Wide AI Context — AI reads every file in your project before each message
- Surgical AI Edits —
@@patch:format for targeted changes without full rewrites - Skills System — Expert AI behavior presets with @mention autocomplete
- HTML Preview in Chat — Live preview button on every HTML code block
- Free Image API — 20+ categories from Picsum Photos and LoremFlickr
- Image Picker — Visual grid browser for stock images
- Smart Portfolio Generation — Real image URLs injected into AI prompts
Bug Fixes
- Diff viewer blank screen fixed
- Code block header layout fixed
- Streaming render fix with requestAnimationFrame batching
- Auto-scroll pause on manual scroll during streaming
Full security audit and hardening release. See the Security section for details.
Built with care by Nandan Das
