Skip to content


Repository files navigation

VS Code Org Mode

Version Installs Ratings Travis codecov License

⚠️ The publisher name was changed, tootone/org-mode has become vscode-org-mode/org-mode ⚠️

VS Code Org Mode is an extension for Visual Studio Code inspired by the venerable Org mode for Emacs. Org lets you keep notes, maintain TODO lists, and author documents, all in plain text.

We welcome issues, feature requests, and contributions to the repo.


Keep Notes

Create outlines:


Promote and demote items:


Maintain TODO Lists

Create TODOs:

create todos

Change TODO status:

cycle todo status

Customize your TODO Keywords:

custom todos

Insert timestamps:


Modify dates:

modify dates

Author Documents

Style your text:

style text

Add metadata with a snippet:

add metadata

Add links with a snippet:

add links

Add comments:

add comments



All actions in VS Code Org mode come packaged with default keybindings. These can be modified in your keybindings.json file.

Custom TODO Keywords

TODO keywords can be customized in settings.json. For example:

"org.todoKeywords": [


Org Mode can be installed in a number of ways:

  • Launch VS Code Quick Open (Linux / Windows: ctrl+P; Mac: cmd+P) and type ext install org-mode.
  • Search for org mode in the Extensions view in VS Code.



The extension can be activated in two ways:

  1. Save a file with the extension .org.
  2. Change the language mode to Org by either
    • Clicking in the lower right corner to the left of the smiley face
    • Typing change language mode into the command palette
    • Using the default shortcut
      • Linux / Windows: ctrl+k m
      • Mac: cmd+k m


Detailed documentation is kept in the GitHub Wiki.


We welcome contributions to the GitHub repo. Here are basic guidelines for conventions.

Join the community here.


The full name of this project is VS Code Org Mode. It is abbreviated vscode-org-mode. In the VS Code Marketplace, it is listed as Org Mode.

Commands are prefixed with org. and followed by camel case, eg org.insertHeadingRespectContent. Command titles are prefixed with Org: and followed by capitalized words separated by spaces, eg Org: Insert Heading Respect Content.

Filenames use kebab case, eg header-functions.ts.

When referring to the original Org mode, we capitalize the "O" and leave the "m" lower case. This is in keeping with the original team's usage on


Use TSLint with default settings.


  • master is used for production deploys.
  • develop is the main branch into which new features are merged. It is protected from direct pushes, so all changes come from pull requests.
  • Features: For all new additions, create a new feature branch. When complete, create a pull request into develop for that branch. Optionally, prefix feature branch names with feature/.


The original Org mode was written for Emacs by Carsten Dominik, with the help and support of an impressive list of geniuses. Our work is inspired by though not associated with their original masterpiece. In addition, many aspects of the extension were inspired by the Spacemacs Org layer.

Our unicorn icon is based on an image by M. Turan Ercan for the Noun Project. We're grateful to them for making the image available under the Creative Commons license.


This work is available under the GNU General Public License v3.


Install the extension. The rest will be taken care of.

Known Issues


Colorization, bolding, italicization, and other modes of highlighting are handled differently by different themes. We have prioritized supporting the default VS Code themes (Dark+ and Light+). This prioritization means that some colors may not appear as expected in other themes, or that opportunities for more variance have been missed.


See GitHub Issues.

Release Notes