Skip to content
Oni: Modern Modal Editing - powered by Neovim
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update config.yml with new insiders Mar 13, 2019
.oni Use snippet variable in template (#1729) Mar 7, 2018
.vscode Run prettier over markdown / json files (#1395) Jan 30, 2018
@types WebGL Renderer Ligatures (#2560) Sep 24, 2018
assets Fix #4 - Add in new application icons (#587) Aug 9, 2017
browser Fix typo in plugin name targets.vim (#2705) Jan 4, 2019
build Feature/initial Git VCS provider (#1310) Jul 18, 2018
cli Fix for #2251 Oni does not correctly locate executables (#2440) Jul 21, 2018
configuration Add an example of binding a shortcut to an internal command (#1933) Apr 5, 2018
extensions Feature/fix buffer opening closing (#2644) Nov 2, 2018
font-awesome Initial commit - port of local workspace Nov 16, 2016
images Add missing image for achievements (#1817) Mar 16, 2018
lib/yarn #186 - Part 1 - Initial plugin installer implementation (#1883) Mar 22, 2018
main Use `.some` to short circuit & native `.includes` (#2697) Jan 3, 2019
scripts Fix #1345 - Improve developer experience when starting from webpack (#… Feb 28, 2018
test Remove bs-platform dependency (#2735) Mar 15, 2019
ui-tests Feature/fix remaining welcome commands (#2533) Sep 10, 2018
vim Feature/oni sessions (#2479) Aug 22, 2018
webview_preload Feature/upgrade typescript (#2618) Oct 8, 2018
.editorconfig Add editorconfig Dec 4, 2016
.gitattributes Ignore Yarn from Linguist. (#2462) Jul 26, 2018
.gitignore added .notes folder to the .gitignore (#2018) Apr 2, 2018
.gitmodules added vim-surround as a default plugin (#2003) Apr 2, 2018
.npmignore Add '.npmignore' file Dec 10, 2016
.nvmrc Added .nvmrc with node@9 (#1510) Feb 11, 2018
.prettierignore #186 - Part 1 - Initial plugin installer implementation (#1883) Mar 22, 2018
.prettierrc Feature/prepush hook v2 (#1361) Jan 25, 2018
.travis.yml Update travis API key (#2595) Sep 29, 2018
.yarnrc Temporary fix for yarn complaining about upath (#2679) Dec 14, 2018 Run prettier over markdown / json files (#1395) Jan 30, 2018 Update - thank you! May 6, 2019 Update e-mail address in code of conduct. Dec 12, 2017 Allow Sidebar to be Disabled (#2343) Jun 23, 2018
LICENSE Initial commit Nov 16, 2016 README: Clean up old links May 6, 2019
appveyor.yml Appveyor: remove artifact publish on master (#2603) Oct 2, 2018
codecov.yml Code coverage: Switch from coveralls to codecov (#1533) Feb 12, 2018 Security - Add Content Security Policy (#2288) Jun 23, 2018
index.html Security - Add Content Security Policy (#2288) Jun 23, 2018
jest.config.js Feature/vcs manager styling improvements (#2536) Sep 2, 2018
package.json Remove bs-platform dependency (#2735) Mar 15, 2019
preload.js Security - Add Content Security Policy (#2288) Jun 23, 2018
tslint.json Feature/reapply syntax highlighting onColorscheme autocmd (#2565) Oct 19, 2018
yarn.lock Remove bs-platform dependency (#2735) Mar 15, 2019


Modern Modal Editing

🚧 NOTE: We're now shifting our focus to building Oni 2 👷 👷‍♀

Build Status Build Status codecov

Join the chat on discord! Total Downloads


Oni is a new kind of editor, focused on maximizing productivity - combining modal editing with features you expect in modern editors. Oni is built with neovim, and inspired by VSCode, Atom, LightTable, and Emacs

The vision of Oni is to build an editor that allows you to go from thought to code as easily as possible - bringing together the raw editing power of Vim, the feature capabilities of Atom/VSCode, and a powerful and intuitive extensibility model - wrapped up in a beautiful package.

This repository is under active development, and until 1.0 please consider everything unstable.

Check out Releases for the latest binaries, or Build Oni from source. Consider making a donation via OpenCollective BountySource if you find this project useful!


Oni brings several IDE-like integrations to neovim:

And more coming - check out our Roadmap

Oni is cross-platform and supports Windows, Mac, and Linux.

If you're a Vim power user, and don't need all these features, check out our minimal configuration.


We have installation guides for each platform:

The latest binaries are available on our Releases page, and if you'd prefer to build from source, check out our Development guide.


The goal of this project is to provide both the full-fledged Vim experience, with no compromises, while pushing forward to enable new productivity scenarios.

  • Modern UX - The Vim experience should not be compromised by terminal limitations.
  • Rich plugin development - using JavaScript, instead of VimL.
  • Cross-platform support - across Windows, OS X, and Linux.
  • Batteries included - rich features are available out of the box - minimal setup needed to be productive.
  • Performance - no compromises, Vim is fast, and Oni should be fast too.
  • Ease Learning Curve - without sacrificing the Vim experience.

Vim is an incredible tool for manipulating text at the speed of thought. With a composable, modal command language, it is no wonder that Vim usage is still prevalent today.

However, going from thought to code has some different challenges than going from thought to text. Code editors today provide several benefits that help to reduce cognitive load when writing code, and that benefit is tremendously important - not only in terms of pure coding efficiency and productivity, but also in making the process of writing code enjoyable and fun.

The goal of this project is to give an editor that gives the best of both worlds - the power, speed, and flexibility of using Vim for manipulating text, as well as the rich tooling that comes with an IDE. We want to make coding as efficient, fast, and fun as we can!


  • Check out the Wiki for documentation on how to use and modify Oni.
  • FAQ
  • Roadmap

Available Plugins

Some available plugins created by Oni users are listed below (if you'd like to add your plugin to this list please create a PR updating this README with the details).


There many ways to get involved & contribute to Oni:


Oni is an independent project and is made possible by the support of some exceptional people. Big thanks to the following people for helping to realize this project:

  • the neovim team, especially justinmk and tarruda - Oni would not be possible without their vision
  • jordwalke for his generous support, inspiration, and ideas. And React ;)
  • keforbes for helping to get this project off the ground
  • Akin909 for his extensive contributions
  • CrossR for polishing features and configurations
  • Cryza for the webgl renderer
  • tillarnold for giving us the oni npm package name
  • mhartington for his generous support
  • badosu for his support, contributions, and managing the AUR releases
  • All our current monthly sponsors and backers
  • All of our contributors - thanks for helping to improve this project!

Several other great neovim front-end UIs here served as a reference, especially NyaoVim and VimR. I encourage you to check those out!

Thank you!


This project exists thanks to all the people who have contributed:


MIT License. Copyright (c) Bryan Phelps

Windows and OSX have a bundled version of Neovim, which is covered under Neovim's license

Bundled Plugins

Bundled plugins have their own license terms. These include:

You can’t perform that action at this time.