Omni Code is a powerful AI coding assistant that combines a multi-LLM agent system with a modern desktop interface. It supports both terminal-based and Electron desktop modes, offering flexible workflows for code generation, editing, debugging, and project management.
Connect to your preferred AI models from multiple providers:
- Anthropic - Claude Opus 4.6, Sonnet 4.5, Haiku 3.5
- OpenAI - GPT-5.4 series, GPT-5 series, GPT-5.1/5.2, GPT-4.1 series, GPT-4o, o1/o3 reasoning models
- Google - Gemini 2.0 Pro, 2.0 Flash
- xAI - Grok 4.x series, Grok 3.x series, Grok 2.x series
- Mistral - Large, Codestral
- Groq - Llama 3.3 70B, Mixtral 8x7B
- Moonshot - Kimi K2.5, K1.6, K1.6 Long Context
- AWS Bedrock - Claude, Llama, Mistral models
- Custom/OpenAI-compatible - Ollama, LM Studio, vLLM, and more
- Electron-based UI with React renderer
- Multi-conversation tabs for parallel work streams
- File explorer with real-time file watching
- Code editor with Monaco editor integration
- Chat panel with streaming responses and tool visualization
- File change review - accept or reject individual changes before they're applied
Switch between specialized agent modes for different tasks:
- Code Mode - Default coding mode with full tool access
- Architect Mode - Analyze and plan without writing code
- Review Mode - Code review and analysis without modifications
- Security Mode - Security-focused vulnerability detection
- Debug Mode - Systematic debugging and diagnostics
Generate and execute structured execution plans:
- Create detailed plans with file-by-file breakdowns
- Interactive plan review with inline plan cards
- Step-by-step execution tracking
- Automatic progress updates as steps complete
- Pause, resume, or abort plan execution
- Semantic search - Find code by meaning, not just text
- Codebase indexing - Vector-based code understanding
- Project context - Automatic project structure analysis
- Multi-file awareness - Cross-file dependencies and relationships
- Skills - Reusable agent capabilities for common tasks
- Rules - Persistent coding guidelines and conventions
- Addons - Extend functionality with installable add-ons
- MCP Support - Model Context Protocol for external tool integration
- Built-in Git panel with status visualization
- Stage, unstage, commit, and push operations
- Branch management and switching
- Diff viewing for staged and unstaged changes
- File history and blame tracking
- Built-in terminal - Full terminal access within the app
- Browser automation - AI-controlled browser for testing and verification
- Remote access - Pair with mobile devices via QR code
- Usage tracking - Cost monitoring and token usage analytics
- Node.js 20+
- npm or yarn
- macOS, Linux, or Windows with Electron support
- API keys for desired LLM providers
npm installOmni Code uses a settings system for configuration:
- API Keys - Set provider API keys in Settings (
Cmd/Ctrl + ,) - Permission Modes - Choose between
always-ask,ask-on-write,ask-on-shell, orauto-approve - Custom Endpoints - Configure Ollama, LM Studio, or other OpenAI-compatible endpoints
- Models - Select default models per provider and conversation
Configuration is stored in the app data directory and can be overridden via environment variables:
ANTHROPIC_API_KEY=your_key
OPENAI_API_KEY=your_key
GOOGLE_API_KEY=your_key
# etc.For local development with hot reload:
npm run electron:devThis starts both the Vite renderer dev server and the Electron main process.
Build the core package:
npm run buildBuild the desktop app bundle:
npm run electron:buildCreate an unpacked Electron bundle:
npm run electron:packCreate a release build with auto-update support:
npm run electron:releasenpm run test # Run tests
npm run lint # Run ESLint
npm run typecheck # Run TypeScript checksStart the desktop app:
npm run electron:devOn first launch, the app initializes settings and prompts for API keys if not configured.
Open a project folder using:
Open Folderbutton on the welcome screenCmd/Ctrl + Okeyboard shortcut- Select from recent workspaces on the welcome screen
The app automatically indexes the codebase for semantic search and loads the file explorer.
Click the + button in the chat panel to create a new conversation tab. Each conversation:
- Has its own message history
- Can use different models
- Can have different modes enabled
- Persists across app restarts (per workspace)
Type requests in the chat box. The agent can:
- Read and analyze files
- Search the codebase (text and semantic)
- Write and edit code
- Run terminal commands
- Use Git operations
- Browse the web
- Generate and execute plans
Typical prompts:
Explain this codebase structureRefactor the auth module to use JWTFind and fix the bug in the user serviceCreate a plan for adding payment integration
When the agent proposes changes:
- Changes appear inline in the chat
- Review diff showing before/after
- Accept or reject individual changes
- Accept all changes at once
- Restore from backup if needed
Enable auto-approval in Settings to skip manual review.
- Browse files in the sidebar
- Click files to open in the editor
- Multiple files open as tabs
- File changes are watched and updated in real-time
Open the Git panel to:
- See repository status (staged, modified, untracked)
- Stage and unstage files
- View diffs
- Commit changes
- Push and pull
- Switch branches
Open the Terminal panel for:
- Running npm/yarn commands
- Starting dev servers
- Running tests
- Any shell operations
The agent can control a browser for:
- Testing web applications
- Verifying UI changes
- Taking screenshots
- Web scraping (when needed)
From Settings, enable remote access to:
- Generate a QR code
- Pair with mobile devices
- Access conversations from tablets/phones
- Share workspaces securely
Open the Usage Dashboard to monitor:
- Token consumption per model
- Cost breakdown by provider
- Monthly usage trends
- Set spending limits
Use the Mode Selector to switch between:
- Code - Standard coding with all tools
- Architect - Plan and analyze without writing code
- Review - Analyze code for issues
- Security - Focus on vulnerabilities
- Debug - Systematic problem solving
In Architect mode, ask the agent to create plans for complex tasks:
- Request a plan:
Create a plan for adding user authentication - Review the structured plan output
- Approve, modify, or reject the plan
- Switch to Code mode to execute
- Track progress as steps complete
main/ # Electron main-process code (IPC handlers, window management)
renderer/ # React-based desktop UI components
src/ # Core agent logic, providers, tools
├── core/ # Agent implementation, orchestration, cost tracking
├── providers/ # LLM provider integrations (Anthropic, OpenAI, etc.)
├── tools/ # Built-in tools (file operations, search, Git, etc.)
├── config/ # Configuration management, modes
├── memory/ # Session storage, project context, indexing
└── mcp/ # Model Context Protocol support
dist-electron/ # Built Electron output (generated)
release/ # Packaged desktop builds (generated)
| Shortcut | Action |
|---|---|
Cmd/Ctrl + O |
Open folder |
Cmd/Ctrl + , |
Open settings |
Cmd/Ctrl + B |
Toggle sidebar |
Cmd/Ctrl + Shift + P |
Toggle plan panel |
Cmd/Ctrl + Enter |
Send message (in chat) |
Escape |
Abort active agent run |
Cmd/Ctrl + N |
New conversation |
Cmd/Ctrl + W |
Close conversation |
Cmd/Ctrl + 1-9 |
Switch to conversation tab |
- Ensure port 5173 is available for the Vite dev server
- Check Electron terminal output for errors
- Delete
node_modulesand reinstall:rm -rf node_modules package-lock.json npm install
- Verify API keys are correctly set in Settings
- Check your internet connection
- Try switching to a different model
- Check the Usage Dashboard for rate limit issues
- Ensure the workspace is properly loaded
- Check file watching permissions
- Try re-indexing the codebase from Settings
- Wait for initial indexing to complete (shown in status bar)
- Re-index from Settings if needed
- Check that the project has readable code files
- On macOS, grant necessary permissions in System Preferences
- Check that
node-ptydependencies are installed - Restart the app after granting permissions
- Ensure you're in a Git repository
- Check Git configuration (name/email set)
- Verify write permissions to the repository
- Recent workspaces are stored with
electron-store - Conversations are persisted per workspace in
.omnicode/chat/directories - File change backups are stored temporarily for review/restore
- Indexing data is stored in workspace-local SQLite databases
- MCP servers can be configured for external tool integration
This repo represents the omni-code-v2 edition, evolving independently from the original Omni Code branch. It focuses on desktop-first experience with advanced features like multi-agent orchestration, plan mode execution, and comprehensive provider support.
MIT