A modern, high-performance IDE built with C++ and React/TypeScript, featuring Chromium Embedded Framework (CEF) for seamless web-native integration. The project includes multiple executables: the main Hyperion IDE, terminal utilities (mikoterminal, termibench), and web helper components (mikowebhelper).
- π Native Performance: C++ backend with CEF-powered React frontend for optimal speed
- π¨ Modern UI: Clean, responsive interface built with React, Redux Toolkit, and Tailwind CSS
- π₯οΈ Custom Window Management: Borderless window with custom title bar and drag regions
- π¦ Binary Resource Embedding: Web assets compiled directly into the executable via miko:// protocol
- π Monaco Editor: Advanced code editing with syntax highlighting and IntelliSense
- π― Multi-Target Building: Automated build system for main app and utility tools
- πΌοΈ Off-Screen Rendering: CEF OSR for seamless integration with native window management
- π§ Terminal Integration: Built-in terminal utilities (mikoterminal, termibench)
- π Web Helper Components: Dedicated web helper processes for enhanced functionality
Hyperion/
βββ app/ # C++ Native Application
β βββ main.cpp # Application entry point with CEF initialization
β βββ client/ # CEF browser client implementation
β β βββ platform/ # Platform-specific code
β β β βββ windows/ # Windows-specific code
β β β β βββ windowsplatform.cpp # Windows platform-specific code
β β β βββ linux/ # Linux-specific code
β β β β βββ linuxplatform.cpp # Linux platform-specific code
β β β βββ sysplatform.cpp # System platform-specific code
β β βββ client.cpp # Main client
β β βββ offscreenrender.cpp # CEF Offscreen Rendering
β β βββ renderermethod.cpp # Renderer methods
β β βββ windowed.cpp # SDL Window Management
β β βββ mikoclient.cpp # CEF Client (HyperionClient class)
β β βββ app.cpp # CEF application class
β βββ resources/ # Binary resource management
β β βββ resources.cpp # Resource provider for miko:// protocol
β β βββ webapp.cpp # Embedded web application resources
β β βββ editor.cpp # Embedded editor resources
β β βββ menuoverlay.cpp # Embedded menu overlay resources
β βββ renderer/ # Graphics rendering
β β βββ linux/ # Linux-specific renderer
β β β βββ vulkan_renderer.cpp # Vulkan renderer for Linux
β β βββ windows/ # Windows-specific renderer
β β β βββ dx11_renderer.cpp # DirectX 11 renderer for CEF integration
β β βββ renderer_factory.cpp # Renderer factory for platform selection
β β βββ renderer_interface.cpp # Renderer interface for platform-specific implementations
β βββ utils/ # Utilities and configuration
β β βββ logger.cpp # Logging system
β β βββ config.hpp # Application configuration
β βββ internal/ # Internal communication
β β βββ simpleipc.cpp # Inter-process communication
β βββ bootstrap/ # Application bootstrap
β β βββ platform/ # Platform-specific code
β β β βββ windows/ # Windows-specific code
β β β β βββ windows_dialog.cpp # Windows dialog implementation
β β β β βββ windows_splash.cpp # Windows splash screen implementation
β β β βββ linux/ # Linux-specific code
β β β β βββ linux_dialog.cpp # Linux dialog implementation
β β β β βββ linux_splash.cpp # Linux splash screen implementation
β β βββ ui_factory.cpp # UI factory for platform selection
β β βββ ui_interface.cpp # UI interface for platform-specific implementations
β β βββ bootstrap.cpp # Initialization and setup
β βββ cli/ # Command-line utilities
β β βββ core/ # Core utilities and configuration
β β βββ main.c # Command-line entry point
β βββ terminal/ # Terminal UI
β β βββ processmanager.cpp # Process management for terminal utilities
β β βββ renderer.cpp # Terminal renderer
β β βββ terminalbuffer.cpp # Terminal buffer management
βββ mikobench/ # React/TypeScript Frontend
β βββ src/ # WEBUI Source code directory
β β βββ rootui/ # Main application UI
β β β βββ App.tsx # Root application component
β β β βββ components/ # UI components (TitleBar, Navbar, Statusbar)
β β β βββ contexts/ # React contexts (WorkbenchContext)
β β β βββ mikoide/ # Core IDE components (Workbench, TabBar)
β β βββ editor/ # Code editor implementation
β β β βββ MonacoEditor.tsx # Monaco editor integration
β β β βββ core/ # Editor core functionality
β β β βββ tabbar/ # Editor tab management
β β βββ components/ # Reusable UI components
β β β βββ DOMEditor.tsx # DOM-based editor
β β β βββ DOMTabBar.tsx # Tab bar component
β β β βββ LanguageSwitcher.tsx # Language selection
β β βββ overlays/ # UI overlays
β β β βββ command/ # Command palette
β β β βββ menu/ # Context menus
β β βββ store/ # State management
β β β βββ index.ts # Redux store configuration
β β β βββ editorSlice.ts # Editor state slice
β β βββ providers/ # React providers
β β β βββ QueryProvider.tsx # Query provider for data fetching
β β βββ shared/ # Shared utilities
β β βββ context.ts # Shared context definitions
β β βββ menu.ts # Menu utilities
β βββ buildweb.ts # Custom build script for web assets
βββ tools/ # Build and Development Tools
βββ build.ts # Multi-project CMake build automation
βββ clean.ts # Project cleanup utility
βββ cpplint.ts # C++ Linting Utility
βββ prod.ts # Production build and packaging
βββ utils/ # Build utilities
βββ buildtobin.ts # HTML to C++ binary converter
βββ iconconvert.ts # Icon format converter
-
Windows 10/11 with MSVC (Visual Studio 2019 or later)
(MSVC Build Tools are sufficient, full Visual Studio not strictly required) -
Linux with GCC/Clang
(all required dev packages such asbuild-essential,cmake,gtk3-dev,vulkan-sdk,libx11-devwill be auto-installed bybuild.ts) -
CMake 3.19+
(tested up to 3.30 β required for FetchContent and modern CMake features) -
Bun.js (latest)
(used for build tooling, TypeScript transpile, and resource bundling) -
Git with submodule support
(clone with--recurse-submodulesto avoid missing dependencies)
git clone --recursive https://github.com/mikofure/hyperion.git
cd mikoidebun install# Complete build process for application (auto platform detected)
bun run build:app# 1. Build React frontend
bun run build
# 2. Convert web assets to C++ binary resources
bun run buildtobin
# 3. Build main application (if linux is pre-install dependencies)
bun run build:cmake# Windows
.\build\Release\Hyperion.exe
# Linux
./build/Release/Hyperionbun run dev- Start development server for React frontendbun run build- Build production React frontendbun run preview- Preview built frontend
bun run build:cmake- Build specific CMake project (main, mikoterminal, termibench, mikowebhelper, hyprn)bun run clean:cmake- Clean specific CMake project
bun run buildtobin- Convert HTML/CSS/JS to C++ binary resourcesbun run iconconvert- Convert PNG icons to ICO format
bun run build:app- Complete development buildbun run tools/prod.ts --portable- Build portable executablemakensis shared\windows\installer.nsi- Build with installer for Windows
Built with modern React ecosystem:
- React 18.3 with TypeScript for component architecture
- Redux Toolkit for state management
- Tailwind CSS 4.1 for styling
- Monaco Editor for advanced code editing
- Vite 7.1 for fast development and building
- Custom build pipeline that generates single-file HTML for embedding
Native C++ application featuring:
- Chromium Embedded Framework (CEF) for rendering React frontend
- SDL3 for cross-platform window management and input handling
- DirectX 11 renderer for optimal graphics performance
- Vulkan renderer for cross-platform graphics support
- OpenGL renderer for fallback support
- Direct2D Native UI renderer for Windows
- GTK3/Cairo renderer for Linux
- Off-Screen Rendering (OSR) for seamless CEF integration
- Binary Resource Provider for embedded web assets via
miko://protocol - Custom window management with borderless design and drag regions
- Inter-process communication for component integration
- Terminal utilities including mikoterminal and termibench
- Web helper processes for enhanced functionality
Command-line utilities providing:
- mikoterminal - Terminal application with advanced features
- termibench - Terminal benchmarking and performance testing
- mikowebhelper - Web helper process for browser integration
- hyprn - CLI tool for system operations and utilities
The project uses a sophisticated build system:
- FetchContent for automatic dependency management
- Multi-platform support (Windows focus, Linux/macOS compatible)
- Automatic CEF download and extraction
- SDL3 integration with proper configuration
- Resource embedding system for web assets
Custom build automation providing:
- Multi-project builds with dependency management
- Parallel compilation for faster builds
- Verbose logging for debugging build issues
- Cross-platform compatibility checks
- Resource conversion pipeline
- Fork the repository
- Create a 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
- Use Bun.js for all JavaScript/TypeScript operations
- Use CMake for all C++ builds (MSVC on Windows and GCC/Clang on Linux)
- Follow existing code style and conventions
- Add tests for new features
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with modern C++ and TypeScript
- Powered by CMake and Bun.js
- LSP integration for enhanced development experience
- Chromium Embedded Framework for seamless web-native integration
see in credit.md
MikoIDE - Modern IDE for Modern Development π
