Introduction
Neovide is a standalone GUI frontend for Neovim built with Rust and Skia. It connects to Neovim via the msgpack RPC protocol and renders the editor with GPU acceleration, adding smooth scrolling, animated cursor transitions, and font ligature support on top of your existing terminal-based configuration.
What Neovide Does
- Renders Neovim in a native window with GPU-accelerated graphics via Skia
- Adds smooth cursor movement animations and particle effects
- Supports font ligatures and emoji rendering that terminals often lack
- Communicates with Neovim over the built-in RPC interface transparently
- Runs your existing init.lua or init.vim configuration without changes
Architecture Overview
Neovide embeds a Neovim process and communicates via the msgpack-rpc UI protocol. Neovim sends screen updates as grid events, and Neovide renders them using Skia, a 2D graphics library backed by OpenGL, Vulkan, or Metal depending on the platform. The cursor, scroll, and window animations are interpolated client-side between Neovim's discrete screen updates, giving a fluid feel without modifying Neovim itself.
Self-Hosting & Configuration
- Install via Homebrew, Cargo, or platform-specific packages
- Launch with neovide to start Neovim inside the GUI
- Configure Neovide-specific options via g:neovide_* variables in your Neovim config
- Set g:neovide_cursor_vfx_mode to choose cursor particle effects
- Adjust g:neovide_transparency for window opacity on supported platforms
Key Features
- Skia-based GPU rendering for consistent cross-platform graphics
- Animated cursor with multiple visual effect modes (railgun, torpedo, pixiedust)
- Full font ligature and fallback font chain support
- Smooth scrolling interpolated between Neovim screen updates
- IME support for CJK and other complex input methods
Comparison with Similar Tools
- Terminal Neovim — no GUI overhead; Neovide adds animations and ligatures unavailable in terminals
- Neovim-Qt — Qt-based GUI; Neovide uses Skia for smoother rendering and richer effects
- VimR — macOS-only GUI for Neovim; Neovide is cross-platform (Windows, macOS, Linux)
- goneovim — Go-based Neovim GUI; Neovide leverages Rust and Skia for performance
- FVim — .NET-based GUI; Neovide is lighter with fewer runtime dependencies
FAQ
Q: Does Neovide modify my Neovim config? A: No. Neovide connects to Neovim over RPC and renders the output. Your config runs exactly as in a terminal.
Q: Can I disable cursor animations? A: Yes. Set g:neovide_cursor_animation_length to 0 in your Neovim config.
Q: Does Neovide support multiple windows? A: Neovide runs one Neovim instance per window. Use Neovim splits and tabs inside that window.
Q: What GPU backends are supported? A: Neovide uses Skia which supports OpenGL, Vulkan, Metal, and Direct3D depending on the platform.