GitHub · lolz@nihmadev.fun · Russian Version
Openvibe is an open-source agentic coding environment built for local execution, high responsiveness, and complete code control. Powered by a modular Rust workspace (11 specialized crates) and a lightweight Tauri 2 with React 18 frontend, Openvibe provides deep codebase understanding, subagent task execution, and seamless Model Context Protocol (MCP) integration without the heavy footprint of standard Electron applications.
The core functionality of Openvibe is divided into 11 specialized Rust crates inside crates/:
crates/scg2: Smart Context Generation 2 (SCG2) engine. Performs background AST symbol parsing via Tree-Sitter (TypeScript, JavaScript, Rust, Python), builds graph dependency maps (petgraph), tracks recency decay metrics, boosts symbol relevance on editor hover/cursor telemetry, synchronizes compiler diagnostic errors/warnings, and formats context snippets for LLM prompts.crates/agent: Async LLM streaming engine (reqwest+tokio). Handles Server-Sent Events (SSE) parsing, prompt assembly, token history truncation, thinking/reasoning stream extraction, request cancellation, and multi-turn execution loops.crates/agent-tool: System tool executor (read_file,write_file,edit_file,list_dir,bash,search_codebase,agentsubagent) and dynamic bridge for Model Context Protocol tools (mcp__<server>__<tool>). Enforces explicit confirmation prompts for shell execution.crates/mcp: Stdio transport MCP client (JSON-RPC 2.0). Controls MCP server process lifecycles, configuration parsing (openvibe.toml), tool discovery (tools/list), execution dispatch (tools/call), connection health tracking, and process recovery.crates/search: Multithreaded codebase search with.gitignoreparsing, regex and exact matching, line tokenization, syntax highlighting, and local code vector embeddings viafastembed.crates/git: Native Git integration powered bygit2(libgit2 Rust bindings). Manages workspace repository status, diff generation, staging index mutations, commit execution, and branch inspection.crates/db: SQLite storage layer (rusqlitebundled in WAL mode). Manages workspace configurations, provider profiles, model settings, global application state, and per-project isolated conversation databases (chats.db).crates/chats: Chat session management, message history persistence, context branching, message content editing, and SQLite serialization.crates/terminal: Native terminal process runner (std::process::Commandstreaming stdio over Tauri IPC events directly to xterm.js).crates/editor: Workspace document state, tab management, and active file editor synchronization.crates/config: Configuration file serialization, default options, and runtime settings store.
api/: Go proxy server (main.go,proxy.go,updater.go) handling API request forwarding, provider connection warmup, timeout management, health endpoints, and auto-update verification.
Smart Context Generation 2 runs an asynchronous background worker that aggregates editor telemetry batches using a 500ms debouncing window. It extracts syntax trees, resolves module import paths into dependency graphs, boosts relevance ranks for active cursor symbols, tracks diagnostic warnings from compiler output, and dynamically compiles structured markdown context blocks for LLM system prompts.
- Execution Engine: Supports single and multi-step agent execution cycles.
- Built-in Tools:
read_file,write_file,edit_file,list_dir,bash,search_codebase, andagent(subagent for multi-step codebase research). - Command Security: Destructive actions and terminal operations require explicit user approval.
- Context Boundaries: Automatic sliding window token truncation to stay within model limits, combined with
@file references and image attachment support for vision models.
- Stdio Transport: Full support for local MCP servers communicating over stdin/stdout via JSON-RPC 2.0.
- Automatic Registration: Tools provided by running MCP servers are registered dynamically as
mcp__<server>__<tool>. - Status Monitoring: Titlebar indicator reflecting real-time MCP server state (Green: All Running, Yellow: Partial, Red: Error/Stopped, Gray: Unconfigured) with popover management controls.
- Configuration File: Configured through the UI settings or declared directly in
openvibe.tomlinside the workspace root.
- Monaco Editor: Multi-tab code view, syntax highlighting, line numbers, unsaved file diff indicators, customizable fonts/sizes, and split-pane layout side-by-side with chat.
- xterm.js Terminal: Tabbed PTY sessions, automatic resizing via fit addon, shell detection (
bash,zsh,pwsh,cmd), and real-time streaming over Rust process handles.
- 33 Provider Presets: Anthropic, OpenAI, Google Gemini, DeepSeek, Groq, OpenRouter, Ollama, Cerebras, Moonshot, Z.ai, Opencode Zen, GitHub Models, Together AI, Fireworks AI, Mistral AI, xAI (Grok), Cohere, Alibaba (Qwen), Azure OpenAI, AWS Bedrock, Hugging Face, Replicate, DeepInfra, Perplexity AI, Anyscale, Vercel AI Gateway, FalAI, Baseten, Hyperbolic, MiniMax, NVIDIA, SambaNova, SiliconCloud.
- OpenAI-Compatible Custom Endpoints: Connect custom provider base URLs, custom headers, and API keys.
- Offline / Local Execution: Native compatibility with local servers including Ollama, LM Studio, and vLLM.
- 38 UI Languages: English, Russian, German, French, Spanish, Chinese (Simplified/Traditional), Japanese, Korean, Italian, Portuguese, Arabic, Hindi, Turkish, Vietnamese, Polish, Ukrainian, and others.
- 18 Themes: Ayu, Carbonfox, Cursor, Dark, Default, Everforest, Flexoki, GitHub, Gruvbox (Standard, Medium, Soft), Kanagawa, Monokai, Nord, One Dark, Vercel, Vesper, Zenburn.
- Typography & Icons: Integrated Google Fonts and extensive file/folder icon packs.
- Node.js:
>= 18 - Rust: Stable toolchain (
cargo,rustc) - Operating System: Linux, macOS, or Windows
git clone https://github.com/nihmadev/OpenVibe.git
cd OpenVibe
npm installnpm run devLaunches the Vite frontend dev server and runs the desktop app via tauri dev.
npm run buildCompiles the web frontend (npm run build:src) and generates the standalone native binary via Tauri (npm run build:tauri).
npm run check # Run TypeScript, ESLint, and Prettier verifications
npm test # Run unit and integration tests via VitestDistributed under the MIT License. See LICENSE for details.