A lightweight, configurable terminal-based text editor built from scratch with a plugin system and Lua configuration.
Ox is a terminal-based text editor built from scratch in Rust, offering a simple yet flexible editing experience. It runs as a text-user-interface (TUI) and supports extensive customization through Lua configuration and a plugin system. It is designed for writing everything from plain text to code, with features like syntax highlighting, multiple cursors, and a built-in file tree.
Developers and power users who prefer terminal-based editors and want a lightweight, configurable tool for editing code and text across Linux, macOS, and Windows.
Ox stands out for its strong configurability via Lua, a non-modal editing approach, and a plugin ecosystem, all while being built from the ground up for performance and flexibility without relying on existing editor codebases.
The simple but flexible text editor
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Configuration is handled entirely through Lua scripts, allowing deep personalization of colors, key bindings, and behaviors, as emphasized by the setup wizard and detailed wiki.
A community-driven plugin ecosystem adds features like Discord RPC, Git integration, and AI assistance, enabling functionality beyond the core editor.
Out-of-the-box tools include syntax highlighting, multiple cursors, macros, file tree, splits, and built-in terminal, reducing initial setup time for common tasks.
Precompiled binaries and package manager support for Linux, macOS, and Windows make it widely accessible, though the README notes it 'works best on linux'.
As a newer project, the plugin library is limited and less stable compared to established editors like Vim or VS Code, which may lack specialized integrations.
The README admits it 'works best on linux,' indicating potential bugs or incomplete feature parity on macOS and Windows, as seen in the installation notes.
Customization requires learning Lua, which may deter users familiar with simpler config formats like JSON or YAML, adding a learning curve despite the wizard.