A hackable text editor for the 21st Century.
At GitHub, we’re building the text editor we’ve always wanted. A tool you can customize to do anything, but also use productively on the first day without ever touching a config file. Atom is modern, approachable, and hackable to the core. We can’t wait to see what you build with it. You can also try the latest beta for Atom here.
Taking the web native
Atom is a desktop application based on web technologies. Like other desktop apps, it has its own icon in the dock, native menus and dialogs, and full access to the file system.
Node.js support makes it trivial to access the file system, spawn subprocesses, and even start servers directly from within your editor. Need a library? Choose from over 50 thousand in Node’s package repository. Need to call into C or C++? That’s possible, too.
Atom is composed of over 50 open-source packages that integrate around a minimal core. Our goal is a deeply extensible system that blurs the distinction between “user” and “developer”.
Don’t like some part of Atom? Replace it with your own package, then upload it to the central repository on atom.io so everyone else can use it too.
Full-featured, right out of the box
No one wants to waste time configuring their editor before they can start using it. Atom comes loaded with the features you’ve come to expect from a modern text editor. Here are a few of them:
- File system browser
- Fuzzy finder for quickly opening files
- Fast project-wide search and replace
- Multiple cursors and selections
- Multiple panes
- Code folding
- A clean preferences UI
- Import TextMate grammars and themes
- When only a file is specified, don’t open and index the parent directory.
- Fixes for Windows and macOS auto-update behavior.
- “File -> Open” works when no windows are open on macOS. (@karevn)
- When using the default Jasmine test runner, a temporary directory is used for ATOM_HOME so that other packages can’t interfere with unrelated tests. Set APM_TEST_PACKAGES to explicitly depend on tests.
- bookmarks: Select to the only bookmark when using “select to next/previous bookmark” commands, even if it’s in the other direction. (@alefragnani)
- find-and-replace: TextEditors outside of the current project are not watched with Project Find which prevents them from “popping in” to the search results if you edit them to contain a match. (@anderoonies)
- find-and-replace: Pane items may implement getEmbeddedTextEditors() or observeEmbeddedTextEditorto allow find-and-replace to search within internal TextEditors.
- github: Pull request review comments are included in the “Files Changed” tab of a pull request detail item.
- github: git’s core.commentChar setting is respected during commit message preprocessing.
- github: Large diffs are collapsed by default, and any file patch within a commit preview or commit detail item can be collapsed and expanded.
- tabs: Tabs are removed correctly when they’ve been dropped on another window. (@50Wliu)
- wrap-guide: Multiple wrap guide lines are now supported. (@lexicalunit)
- language-coffee-script: Support JSX tags. (@cuberoot)
- language-html: Use the GraphQL grammar to highlight embedded GraphQL script. Note that users will need to install the community GraphQL language package for highlighting to work properly. (@Ingramz)
- language-ruby: Correct syntax highlighting issues for floats and some integer types.
To customize Atom you should check out the packages available here.
OSX 10.8 or later