An AI-powered desktop operating system built with Electron, React & TypeScript
NeuroOS is a fully-featured desktop environment that runs inside Electron, designed to feel like a real operating system while being powered by AI at its core. It features a windowed application system, user authentication, an AI chat assistant, a file explorer with workspace management, and much more.
- Window Management β Drag, resize, minimize, maximize, and close application windows
- Taskbar β Quick-launch apps and view running applications
- Start Menu β Browse and launch all installed apps
- Custom Wallpapers β Set your own desktop background
- Right-Click Context Menus β Native-style context menus everywhere (Desktop, Windows, Files, Chat)
- Boot Animation β Sleek startup sequence with fade transition
- Multi-Provider Support β Connect to Ollama, OpenAI, Gemini, or any OpenAI-compatible API
- Streaming Responses β Real-time token-by-token AI responses
- Tool Integration β AI can:
- π Open apps on your desktop
- π List running apps
- πΎ Generate & save files directly to your workspace
- π Browse your workspace contents
- Stop Generation β Halt AI responses mid-stream
- Markdown Rendering β Rich formatting with syntax-highlighted code blocks
- Workspace Setup Wizard β Select a folder on your machine as your workspace
- Full File Management β Create, rename, delete, upload files and folders
- Breadcrumb Navigation β Click-through path navigation
- File Type Icons β Color-coded icons for 20+ file extensions
- Inline Search β Filter files instantly
- Persistent Workspace β Remembers your workspace across restarts
- Right-Click Actions β Rename, Copy Path, Delete from context menu
- AI Provider Configuration β Add/remove LLM providers with custom endpoints
- Model Selection β Choose models per provider
- Wallpaper Settings β Customize your desktop background
- User Management β Multi-user support with PIN authentication
- Lock Screen β PIN-based user authentication
- Onboarding Flow β First-run setup wizard for new users
- Multi-User Support β Switch between user profiles
- Hydration Guard β Prevents UI flash during auth state loading
- Terminal β Built-in terminal emulator
- Agent Studio β AI agent management interface
- LLM Manager β Configure and manage language models
- MCP Connectors β Model Context Protocol integration
- Automation Engine β Workflow automation tools
| Layer | Technology |
|---|---|
| Framework | Electron 30 |
| Frontend | React 19 + TypeScript 5.8 |
| Build Tool | Vite 6.2 |
| Styling | Tailwind CSS 4 |
| Animations | Framer Motion (motion) |
| State | Zustand (with persistence) |
| Icons | Lucide React |
| Markdown | react-markdown |
| Database | better-sqlite3 |
- Node.js 18+
- npm 9+
# Clone the repository
git clone https://github.com/your-username/NeuroOS.git
cd NeuroOS
# Install dependencies
npm install
# Create environment file
cp .env.example .envEdit your .env file:
GEMINI_API_KEY="your-gemini-api-key"Or configure providers directly in the Settings app after launching.
# Start in development mode (Vite + Electron)
npm run electron:devThis will:
- Start the Vite dev server on
http://localhost:5173 - Compile the Electron main process
- Launch the Electron window
# Build for production
npm run electron:buildNeuroOS/
βββ native-shell/ # Electron main process
β βββ main.ts # Main process entry (IPC handlers, window)
β βββ preload.ts # Context bridge (secure API exposure)
β βββ tsconfig.json # TypeScript config for Electron
βββ src/
β βββ apps/ # Application components
β β βββ Chat.tsx # AI Chat with streaming & tools
β β βββ FileExplorer/ # File manager with workspace support
β β βββ Settings.tsx # System settings & AI config
β β βββ Terminal.tsx # Terminal emulator
β β βββ AgentStudio.tsx # AI agent management
β β βββ LLMManager.tsx # Language model management
β β βββ MCPConnectors.tsx # MCP integration
β β βββ AutomationEngine.tsx
β βββ components/ # Shared UI components
β β βββ OSWindow.tsx # Draggable window container
β β βββ Taskbar.tsx # Bottom taskbar
β β βββ Desktop.tsx # Desktop background & icons
β β βββ StartMenu.tsx # Application launcher
β β βββ ContextMenu.tsx # Right-click context menu system
β β βββ LockScreen.tsx # PIN authentication screen
β β βββ OnboardingFlow.tsx # First-run setup
β β βββ WindowManager.tsx # Window orchestration
β βββ hooks/ # Custom React hooks
β β βββ useOS.ts # OS state management
β β βββ useFileSystem.ts # File system operations bridge
β βββ stores/ # Zustand state stores
β β βββ authStore.ts # Authentication state
β β βββ settingsStore.ts # App settings & AI config
β β βββ workspaceStore.ts # Workspace path persistence
β βββ lib/ # Utilities & services
β β βββ apps.ts # App registry & config
β β βββ llm/ # LLM provider implementations
β β βββ utils.ts # Shared utilities
β βββ types/ # TypeScript declarations
β β βββ electron.d.ts # Window.electron type definitions
β βββ App.tsx # Root application component
β βββ main.tsx # React entry point
βββ public/ # Static assets
βββ .env.example # Environment variables template
βββ package.json
βββ vite.config.ts
βββ tsconfig.json
| Script | Description |
|---|---|
npm run dev |
Start Vite dev server only (web mode) |
npm run electron:dev |
Start full Electron + Vite dev environment |
npm run electron:build |
Build production Electron app |
npm run build |
Build everything (TypeScript + Vite + Electron) |
npm run clean |
Remove build artifacts |
npm run lint |
TypeScript type checking |
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is proprietary software. All rights reserved.
Built with β€οΈ by the NeuroOS team
