Skip to main content
GitHub Desktop supports launching your favorite external editor to work with repository files. Editors can be launched from the top-level Repository menu or by right-clicking a repository in the sidebar.

Requirements

For an editor to be supported by GitHub Desktop, it must satisfy these requirements:
1

Directory support

The editor must support opening a directory, not just individual files.
2

Discoverable installation

The editor must be installed in a reliable, discoverable location on the user’s machine.
3

Command-line interface

The editor must provide a command-line interface that GitHub Desktop can launch.

Supported Editors

Windows

GitHub Desktop supports these editors on Windows:
  • Atom (Stable, Beta, and Nightly)
  • Visual Studio Code (Stable and Insiders)
  • VSCodium
  • Sublime Text
  • Notepad++
  • Typora
  • SlickEdit
  • Brackets
  • JetBrains IDEs:
    • IntelliJ IDEA
    • WebStorm
    • PhpStorm
    • PyCharm
    • RubyMine
    • CLion
    • GoLand
    • RustRover
    • Fleet
    • DataSpell
  • Android Studio
  • RStudio
  • Aptana Studio
  • ColdFusion Builder
  • Zed (Stable and Preview)
  • Pulsar
  • Cursor
  • Windsurf

macOS

Supported editors on macOS include:
  • Atom
  • Visual Studio Code (Stable and Insiders)
  • VSCodium
  • Sublime Text
  • BBEdit
  • TextMate
  • Brackets
  • MacVim
  • Neovide
  • VimR
  • Typora
  • CodeRunner
  • SlickEdit
  • Xcode
  • Emacs
  • Nova
  • Lite XL
  • JetBrains IDEs (All major IDEs)
  • Android Studio
  • RStudio
  • Aptana Studio
  • Eclipse (All IDE variants)
  • Pulsar
  • Cursor
  • Zed

Linux

Linux users can use these editors:
  • Atom
  • Visual Studio Code (Stable and Insiders)
  • VSCodium
  • Sublime Text
  • Typora
  • SlickEdit
  • Neovim
  • Neovide
  • Notepadqq
  • Mousepad
  • GNOME Builder
  • Code (elementary OS)
  • Lite XL
  • Kate
  • Emacs
  • Pluma
  • JetBrains IDEs (All major IDEs)
  • Android Studio
  • Pulsar
  • Zed

How Editor Detection Works

Windows Registry Lookup

On Windows, GitHub Desktop finds editors using registry keys:
app/src/lib/editors/win32.ts
Registry keys are checked in multiple locations:
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
  • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall

macOS Bundle Identifiers

On macOS, editors are located using their bundle identifiers:
app/src/lib/editors/darwin.ts
To find an editor’s bundle identifier, run:

Linux Executable Paths

On Linux, GitHub Desktop searches for executables in common installation paths:
app/src/lib/editors/linux.ts

Launching Editors

The launchExternalEditor function handles launching editors across all platforms:
app/src/lib/editors/launch.ts

Launch Process

1

Verify editor exists

2

Spawn editor process

3

Handle errors

Editors are spawned as detached processes so they continue running even if GitHub Desktop is closed.

JetBrains Toolbox Support

GitHub Desktop supports editors installed through JetBrains Toolbox:
The integration checks for scripts in the default JetBrains Toolbox scripts directory.
Only add jetBrainsToolboxScriptName to the main edition of a product. JetBrains Toolbox generates scripts with the same name for different editions (Community vs Professional), so only one can be detected reliably.

Custom Editor Integration

You can configure custom editors that aren’t in the default list:
app/src/lib/editors/launch.ts

Custom Integration Interface

Error Handling

Editor integration includes comprehensive error handling:
The openPreferences flag prompts users to check their editor settings when an error occurs.

Adding a New Editor

To add support for a new editor, follow these steps:
1

Add editor definition

Add an entry to the appropriate platform-specific file:
  • Windows: app/src/lib/editors/win32.ts
  • macOS: app/src/lib/editors/darwin.ts
  • Linux: app/src/lib/editors/linux.ts
2

Provide discovery information

Windows: Registry keys and validation:
macOS: Bundle identifier:
Linux: Executable paths:
3

Test the integration

  1. Install the editor
  2. Build GitHub Desktop
  3. Check that the editor appears in Settings
  4. Test launching the editor with a repository

Contributing

Want to add support for your favorite editor? Contributions are welcome! See the editor integration technical docs for detailed instructions.