Oni: Modern Modal Editing - powered by Neovim
Switch branches/tags
Clone or download
Failed to load latest commit information.
.github Add Trevor as a backer - thank you! :) Sep 11, 2018
.oni Use snippet variable in template (#1729) Mar 7, 2018
.vscode Run prettier over markdown / json files (#1395) Jan 30, 2018
assets Fix #4 - Add in new application icons (#587) Aug 9, 2017
browser Feature/add bookmarks menu (#2554) Sep 10, 2018
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/add bookmarks menu (#2554) Sep 10, 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 Fix for #2414 - truncated copy/paste (#2515) Aug 27, 2018
scripts Fix #1345 - Improve developer experience when starting from webpack (#… Feb 28, 2018
test Merge pull request #2561 from Akin909/bugfix/fix-hero-screenshot-test Sep 10, 2018
ui-tests Feature/fix remaining welcome commands (#2533) Sep 10, 2018
vim Feature/oni sessions (#2479) Aug 22, 2018
webview_preload Browser: Fix scroll key binding conflict (#2239) Jun 19, 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 CI Server Updates (#2346) Jul 5, 2018
ACCOUNTING.md Run prettier over markdown / json files (#1395) Jan 30, 2018
BACKERS.md Add Tercio de Melo as a backer - thank you! :) Sep 11, 2018
CODE_OF_CONDUCT.md Update e-mail address in code of conduct. Dec 12, 2017
CONTRIBUTING.md Allow Sidebar to be Disabled (#2343) Jun 23, 2018
LICENSE Initial commit Nov 16, 2016
README.md Fix badges. (#2402) Jul 5, 2018
appveyor.yml Automation: Install tests (companion to #2372) (#2378) Jul 10, 2018
codecov.yml Code coverage: Switch from coveralls to codecov (#1533) Feb 12, 2018
index.dev.html 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 Feature/add bookmarks menu (#2554) Sep 10, 2018
preload.js Security - Add Content Security Policy (#2288) Jun 23, 2018
tslint.json Upgrade tslint to 5.9.1 (#1384) Jan 28, 2018
yarn.lock Feature/change token format (#1705) Sep 9, 2018


alt text

Modern Modal Editing

Build Status Build status codecov

Join the chat on discord! Backers on Open Collective BountySource Active Bounties Total Downloads

Supporting Oni

Oni is an independent, MIT-licensed open source project. Please consider supporting Oni by:

Sponsors via OpenCollective

Gold sponsors

Silver sponsors


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


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: