Novi is a simple development environment that follows the terminal — name means little Nova. Built for terminal-centric users who want something more expressive than a text editor, without the weight of a full IDE. It is envisioned as a home for Claude Code with optional support for Codex.
Novi is designed around four guiding principles:
set vimode on/off — toggle vim mode liveset singlefiletree on/off — switch tree layoutset compat on/off — compatibility modeNovi is built on Electron, giving it a native desktop presence across Windows, Linux, and macOS from a single TypeScript codebase. The Electron main process manages the application lifecycle, native menus, window management, and spawns PTY instances via node-pty for the integrated terminal. Each terminal session runs in its own PTY, with shell output streamed to the renderer over IPC.
Monaco Editor — the same engine that powers VS Code — handles all editing. TextMate grammar files are loaded through monaco-textmate and vscode-oniguruma, giving Novi language-aware syntax highlighting without bundling the IDE. Vim bindings are layered on top via Monaco Vim, preserving Monaco's full feature set while adding modal editing.
The build pipeline uses esbuild for the renderer — fast, ES module-aware bundling — and tsc for the main and preload processes. chokidar handles file system watching for the live file tree.
Stack: Electron · React 18 · TypeScript · Monaco Editor · Monaco Vim · xterm.js · node-pty · esbuild · chokidar
Novi is still under heavy development and evolving rapidly — features, behaviour, and design are subject to change as the project matures. We appreciate your patience as we build it out.
Novi paired with Claude Code has replaced Cursor as our default development environment at MiraNova Studios. It's a combination we're genuinely proud of — a purpose-built environment and a world-class AI, working together exactly the way we want them to.