atom

:atom: The hackable text editor

Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star half bd79095782ee4930099175e5ce7f4c89fa3ddabcd56fffcc7c74f6f2a2d46b27 (2 ratings)
Rated 4.75 out of 5
Subscribe to updates I use atom


Statistics on atom

Number of watchers on Github 43886
Number of open issues 901
Average time to close an issue about 12 hours
Main language CoffeeScript
Average time to merge a PR 1 day
Open pull requests 280+
Closed pull requests 143+
Last commit 8 months ago
Repo Created almost 7 years ago
Repo Last Updated 8 months ago
Size 291 MB
Homepage https://atom.io
Organization / Authoratom
Latest Releasev1.24.1
Contributors260
Page Updated
Do you use atom? Leave a review!
View open issues (901)
View atom activity
View on github
Latest Open Source Launches
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating atom for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)
What people are saying about atom Leave a review
Cross-platform, Auto-completion, Code-highlighting, & Multiple-panes and so much more!

Atom

macOS Build Status Linux Build Status Windows Build Status Dependency Status Join the Atom Community on Slack

Atom is a hackable text editor for the 21st century, built on Electron, and based on everything we love about our favorite editors. We designed it to be deeply customizable, but still approachable using the default configuration.

Visit atom.io to learn more or visit the Atom forum.

Follow @AtomEditor on Twitter for important announcements.

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to atom@github.com.

Documentation

If you want to read about using Atom or developing packages in Atom, the Atom Flight Manual is free and available online. You can find the source to the manual in atom/flight-manual.atom.io.

The API reference for developing packages is also documented on Atom.io.

Installing

Prerequisites

macOS

Download the latest Atom release.

Atom will automatically update when a new release is available.

Windows

Download the latest Atom installer. AtomSetup.exe is 32-bit. For 64-bit systems, download AtomSetup-x64.exe.

Atom will automatically update when a new release is available.

You can also download atom-windows.zip (32-bit) or atom-x64-windows.zip (64-bit) from the releases page. The .zip version will not automatically update.

Using Chocolatey? Run cinst Atom to install the latest version of Atom.

Linux

Atom is only available for 64-bit Linux systems.

Configure your distribution's package manager to install and update Atom by following the Linux installation instructions in the Flight Manual. You will also find instructions on how to install Atom's official Linux packages without using a package repository, though you will not get automatic updates after installing Atom this way.

Archive extraction

An archive is available for people who don't want to install atom as root.

This version enables you to install multiple Atom versions in parallel. It has been built on Ubuntu 64-bit, but should be compatible with other Linux distributions.

  1. Install dependencies (on Ubuntu): sudo apt install git gconf2 gconf-service libgtk2.0-0 libudev1 libgcrypt20 libnotify4 libxtst6 libnss3 python gvfs-bin xdg-utils libcap2
  2. Download atom-amd64.tar.gz from the Atom releases page.
  3. Run tar xf atom-amd64.tar.gz in the directory where you want to extract the Atom folder.
  4. Launch Atom using the installed atom command from the newly extracted directory.

The Linux version does not currently automatically update so you will need to repeat these steps to upgrade to future releases.

Building

Discussion

License

MIT

When using the Atom or other GitHub logos, be sure to follow the GitHub logo guidelines.

atom open issues Ask a question     (View All Issues)
  • about 2 years After updating to 1.12.1 the command line binaries were no longer present.
  • about 2 years Soft tabs on a line after hard tabs advance to wrong position
  • about 2 years Reported potential regressions in v1.13-beta
  • about 2 years Reported potential regressions in v1.12 release
  • about 2 years Feature request: return promise when dispatching commands
  • about 2 years /usr/bin/atom: line 111: 13463 Segmentation fault
  • about 2 years Mac OS X: Restart and Install Update fails 1.11.2 -> 1.12.1
  • about 2 years Improper/slow rendering of Atom components w/ Compton display compositor
  • about 2 years Viewing "Install / Atom Chrome" causes editor to crash
  • about 2 years Uncaught Range Error: Maximum call stack size exceeded
  • about 2 years Cant install packages because of Windows username
  • about 2 years RPM Install: error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory
  • about 2 years MAC: atom --profile-startup doesn't work on 1.12.0
  • about 2 years When using the Colemak layout on Linux, keystrokes involving ctrl resolve with QWERTY characters
  • about 2 years New project opens as a new tab instead of a new window
  • about 2 years Portable version for macOS
  • about 2 years Type conflict warning building Atom -- Linux a/o 8c91e03
  • about 2 years Uncaught Error: Unknown system error -10006: Unknown system error -10006, close
  • about 2 years Frame drops and sluggishness with gSync
  • about 2 years I can't reinstall Atom anymore
  • about 2 years Failed to remove '/usr/local/bin/atom'
  • about 2 years Atom Crashes when saving c++ files
  • about 2 years Feature Request: Drag and drop files from the tree view into browser to open in browser (similar to how the open file tabs can be dragged in)
  • about 2 years Can't open notepad++ ansi encoded files properly with atom
  • about 2 years Keybindings with [ or ] do not work as expected on azerty layout
  • about 2 years Application Freeze When Searching CSV File with Regex
  • about 2 years Feature request: Provide an AppImage for Atom Stable and Atom Beta releases
  • about 2 years White text on white background in menus in Windows high-contrast mode
  • about 2 years Can't tell if a marker has been decorated synchronously
  • about 2 years Atom is having problem recognizing the doc folder for master branch/docs folder source for Github Pages
atom open pull requests (View All Pulls)
  • Add support for keybindings with keyup keystrokes
  • [WIP] Defer package activation
  • Prevent lines longer than 8000 chars being tokenized
  • Fix for Default Directory Provider incorrectly identifying file paths as URLs on Windows
  • [WIP] change semantic of project.resolvePath to return non-realpath
  • Observe all active TextEditors, not only PaneItems
  • Add the -a, --add CLI option
  • Shrink modals when window gets narrow
  • Add link to article on glob patterns
  • Add MRU tab switching functionality
  • Automatically resize command-palette for small screens
  • :arrow_up:spell-check@0.66.0
  • Expose application updater lifecycle events to packages
  • Add Workspace.setActivePaneItem API
  • (WIP) Improve buffer management
  • Properly restore initialPaths so project paths are not loaded as files
  • Improve working with folds
  • Fix auto-indent issue in text editor #10407
  • Fix open dialog default behavior on Linux
  • Use ELECTRON_RUN_AS_NODE Variable Key
  • add TextEditor::onDidPasteText
  • Change default path when opening files
  • Add non breaking space in Show Invisible (with tokenizer)
  • Fixed the indentation logic (updated)
  • Fix Windows installer path update woes
  • :penguin: introduced grunt-task that creates an archlinux package
  • Hide title bar on OS X
  • Update language-git@0.11.1
  • Add Atom to Open With context menu list in Windows Explorer
  • Copy empty .lproj dirs to fix `navigator.language` on OS X
  • Match GitRepository's behavior in edge cases
  • :bug: Make "Open Empty Editor on Start" config effective
  • Add Selection.onDidChangeRange event object to emitter
  • Compute a state key even if there are no project folders
  • Modify selection to stop highlight at new-line (instead of continuing to end-of-screen)
  • store disabled packages in deterministic order
  • :shirt: Remove linter warnings in menus cson
  • Add checkbox styling
  • Upgrade language-javascript to 0.111.0
  • :arrow_up: electron
  • Extend editor:transpose to transpose whole selections with multiple cursors
  • ? Improve perf for clicking below buffer of long line to seek cursor
  • Add Project::createFile and ::createDirectory
  • Allow listeners to specify their calling order
  • Prompt user to save as if save fails
  • Update Electron to 0.37.6
  • Use display layers facility of text-buffer; delete all the code they replace
  • Added .apm to .gitignore
  • MessageRegistry - mapping atom:// URIs to functions
  • :bug: Fix window size is not updated on resize
  • Tokenize visible buffer chunk immediately
  • Learn configuration of FS paths for which to skip VCS integration.
  • Allow a paragraph to start with a line of whitespace
  • Show Cursor When Selecting - Add setting to show cursor when selecting
  • Update Electron to 0.36.12
  • Save and restore the environment for windows
  • Update Grammar In Spec Files
  • Experiment on AppVeyor
  • Use %F instead of %U for file variable in desktop file
  • Relative position atom-workspace-axis
  • fixed issue relating to metadata when copying
  • workaround: do not paste if stopped dragging
  • :racehorse: wrap loop of config.setDefaults() in transact()
  • cli: Open stdin as a file when present
  • Changed shift-delete to 'editor:delete-line'
  • Fixed open empty editor on start bug (issue #10623)
  • Fix Double Indent for line continuation #11659
  • Indent Works Properly When AutoIndent Is Unchecked
  • Add setting to disable vcs integration
  • Use an async dialog box
  • Content Security Policy fixes
  • build: [ci skip] add lint npm script
  • :memo: [ci skip] add notes on 'apm' path in Windows
  • Add short text overview for untitled file
  • Remove workaround for old Windows bug
  • Calmer Spec Suite
  • Complete documentation for Notification creation
  • Allow different versions of Atom to run simultaneously on Win32
  • Use apm@1.11.0 with Node v4 and apm v3 \o/
  • Merge Bootstrap + Core styles
  • Fix overlay scrolling
  • Move Bootstrap to a separate package
  • Option for avoiding overlay movements
  • Move Bootstrap into Core
  • Following replaceSelectedText(), update the selected text range accordingly.
  • Add note about Xcode on El Captain
  • replace OSX window title bar with custom title-bar
  • add includeMarkerText param to highlight decorations
  • fix spec toShow()
  • Fixed calling lineTextForBufferRow with unindented lines.
  • Adding install instructions for binary packages
  • Renaming Linux sections; adding SUSE section
  • Use in-path 7z on AppVeyor, tidy-up publish
  • Stop running crash reporter on UI thread on Windows/Linux
  • :memo: Mention how models must implement getTitle() [ci skip]
  • Don't erase NODE_ENV from environment.
  • ? Fix $NODE_PATH being unset when using -a to add project
  • :memo: Add label property info on enum settings
  • Introduce @use-custom-controls variable
  • Update package names
  • Add auto detect encoding option to config.
  • Remove the TextEditor class's Atom-specific dependencies
  • Windows shell integration system settings
  • 'Adding Feature' emoji
  • Change select-to-end-of-line to work like move-to-end-of-line
  • Improve incompatible native module error message
  • Introduce TextEditor.prototype.update
  • Add telemetry consent setting
  • Allow JavaScript classes to be included in API documentation
  • Add ability to see passed specs via tooltips
  • Cleanup activationHookSubscriptions when deactivating package
  • πŸ› fix #12187
  • Create separate "syntax stylesheet" scoped to atom-text-editor
  • Fixed undefined ATOM_HOME
  • Remove unused variables
  • Update select-to-end-of-line behavior
  • Upgrade packages that use old versions of graceful-fs
  • Serialize active pane item using index instead of URI
  • Adds configuration option for large file warning threshold.
  • Pass the menu item when executing menu command
  • Delegate TextEditor.getMarkerCount to default marker layer.
  • Replace Grunt-based build system with simple scripts
  • Add ::scan tests to ignore files when a directory filter is given
  • Update Windows build instructions to refer to Command Prompt more
  • WIP: Upgrade Electron
  • Tildify path in title bar
  • Update create-debian-package.js
  • Simplify Environment Patching
  • send event to save state after 'Add Project Folder' or 'Remove Projec…
  • Add support to the xonsh shell
  • Reset the package's local storage setting if loading cannot be deferred
  • Update languages
  • Add atom.project.observeBuffers
  • Upgrade coffeescript
  • Optimize menu sorting
  • Don't construct placeholder tokenized lines
  • Redirect apm scripts to use the actual apm ones
  • 6075 focus tab on save prompt
  • Fix for #10474
  • Add ability to use custom elements inside tooltips
  • Remove shadow DOM from `atom-text-editor`
  • Avoid forcing computation of all screen lines when opening a file
  • Fixed broken links to the atom repo
  • Fix: Scroll line vertically to the center if opened with initialRow
  • Fixes search links for GitHub Issues and Pull Requests
  • Add textEditors.getActiveTextEditor() method
  • Fix multiple indentation on paste
  • Add Feature: Preserve line position after editor:delete-line
  • Adds feature: Restore column position after editor:delete-line
  • Increase padding for the custom title-bar
  • Improve β€œEditor is not responding” dialogue
  • Fix indentation for lines where scope changes
  • Upgrade Electron to v1.4.1
  • Convert BufferedProcess and BufferedNodeProcess to JS
  • Issue 12927 - editor:duplicate-lines should only duplicate once per l…
  • Project history api, reopen project menu and command
  • macOS: Let atom.sh find itself when run from an .app
  • Added `scrollBounce` to `webPreferences`
  • Add language-nlf
  • add new pane switch events for MRU UI
  • Update keybinding
  • Build appropriate 32/64-bit version on Linux
  • Add commands for non DNS (rhel/CentOS) hosts
  • README.md Tranlation to Simplified Chinese
  • Update atom.desktop.in
  • Fixes #11848 Moving line up without line ending
  • Exclude beginner issues from help wanted issues
  • Add and improve core.*OnStart setting descriptions
  • Windows 64-bit version
  • Consolidate log files
  • Raising exceptions in test mode (Issue: #10079)
  • Convert a bunch of small files to JS
  • Add initialize() hook to packages
  • Upgrade to Electron 1.3.12
  • Make core and render tests pass on Windows
  • Add Flatpak support
  • Fix prepending multiple gutters at once
  • Flush DOM before displaying context menu
  • fix text selection and cursor position in lines with rtl text
  • More title-bar options (macOS)
  • Normalize disk drive letter in path on Windows
  • Re-throw package activation exceptions in test mode
  • Setting for settings-view to apply Chromium proxies to apm via env vars
  • Prioritize first line matches over bundled/non bundled cirteria in grammar scoring
  • Install only the 64 bit version of libXss.so.1
  • Updated documentation about keys outside config schema
  • Changed "git-core" package to "git-all" to support "git submodule" co…
  • Add dalek package to let people know when they have built-in packages installed in ~/.atom/packages
  • "open with" fix for context menu
  • Allow build script to specify install prefix.
  • Added context menu for cinnamon desktop enviroment (Linux)
  • Flush DOM before displaying context menu [2]
  • Modified keymap 'ctrl-q' to save files before quiting
  • Minor changes to compile-cache.js for atom-in-orbit.
  • Ensure binary compatibility checks with/without the module cache are consistent
  • Don't change focus when hiding an unfocused dock
  • Add app name to the Quit menu on macOS
  • Adding an event for Code-Folding to TextEditor class
  • Re-prioritize @windowForPaths and currentWindow
  • Fix folding key bindings
  • Show correct beta commands in installer dialog
  • Allows atom to open local files by URL scheme
  • Add `rpm --rebuilddb` to prevent 'Rpmdb checksum' error
  • penguin: Respect DISPLAY env variable in Unix like environments
  • quickly hide title-bar by config
  • src/config.coffee should use _.deepClone from underscore-plus
  • Enhancement: More detailed snippets file
  • Make an option to always restore the last session
  • Add encoding auto-detection logic
  • fix logLongestSuites
  • add support for jasmine.any
  • Generate AppImage
  • Rewrite editor rendering layout to use new browser features and virtual DOM
  • Replace language-python with MagicPython
  • :memo: Clarify that stack only has an effect if detail is present as well
  • Fix Arch Linux package names
  • Added prevent option to ::onWillDestroyPaneItem()
  • Open empty editor as a pending pane item
  • Allow custom directory search providers to also override replace
  • :arrow_up: coffee-script
  • Lint JavaScript specs
  • Allow building on Node 7+
  • [WIP] Atomicons
  • Improve confirm documentation
  • Fix observeTextEditor methods in Dock and WorkspaceCenter
  • Teach directional pane navigation commands to support docks
  • Enable MAX_SCREEN_LINE_LENGTH to now be set via a config option
  • Implement Paste without formatting/indentation
  • Move git refresh status task to long running task (Bug #9544)
  • Update docker image and add docs
  • Use new native text-buffer implementation
  • Don't open dev tools on uncaught errors in headless tests
  • Migrate squirrel-update to JS
  • Fix `PaneContainer::onDidStopChangingActivePaneItem()`
  • Perform all config file IO in the main process
  • Revert change to move mouse cursor on right-click
  • Restore selectionsMarkerLayer of different editor
  • Add async implementation of GitRepositoryProvider.repositoryForDirectory
  • Fix includeNonWordCharacters regression in Cursor
  • Elevate installation step for Linux during 'script/build --install'
  • Directly require clipboard from Electron
  • Change SubWord selection to avoid selecting both sides of a dot "."
  • Resize pane
  • Resolve Uncaught TypeError
  • 'cmd--': As default for 'window:decrease-font-size' on MacOs
  • Select current paragraph
  • Scrollbar correct pos after splitting
  • Change keybind for Fold-All, fix problem of incompatibility with US keyboard
  • Implemented smooth scrolling for mouse in editor.
  • Empty editor scrollup after splitting
  • Fix #16218
  • Modernize built-in TypeScript transpiler to support JSX (React) files.
  • Ensure style updates take effect after the editor is re-attached
  • Enable default editor keymaps for editors located outside atom-workspace
  • Correct grammatical error
  • Back filesystem watchers with @atom/watcher
  • Activate package when deserializing
  • Fix window state not saving on close
  • Add custom start tiles
  • Improve grammar scoring
  • Only use decreaseIndentRegex when decreaseNextIndentRegex did not fire
  • rpm: Use /usr/bin/atom with desktop file
  • forceHideTitleBar
  • Handle edits that scroll up due to hiding the horizontal scrollbar
  • RFC-001: Project-Specific Configuration
  • Document TextEditor::bufferRangeForScopeAtBufferPosition
  • Optimize process kill by pid
  • Enable packages to control order of context menu items
  • WIP: Add support for project and path specific configs.
  • Add additional dependencies for linux
  • Add `StartupWMClass` to .desktop for easier window-app association
  • Upgrade electron to 1.8.2
  • Correct Interactions with Scrollbars and Cursors when switching between split panes
  • Remove extra hyphen in option description
  • Weekly Focus: 2018-03-12
  • Publish Teletype plans
  • [wip] Improve ability to detect Python 2 during build
  • Optimize get decorations
  • Convert Dock class to Etch
  • Add a new keybinding for window:reload Fixes #1794
atom questions on Stackoverflow (View All Questions)
  • Is there Atom support (or extension) for dependency display in Gradle?
  • PHP hyperclick package for atom text editor
  • How to remove the space from the comments in Atom Editor
  • How do I set default syntax highlighting in Atom for Twig files?
  • how do i integrate ATOM payment gateway in my android app
  • Atom: Image not loading: Error Failed to load resource: the server responded with a status of 403 (Forbidden)
  • converting atom to uppercase (or lowercase) [SICStus]
  • How to set query timeout using Atom Editor & Data-Atom?
  • How Atom Editor Browser run ES6 Jasmine Tests
  • run python from atom
  • Is there a shortcut for selecting word under cursor in Sublime Text, Atom
  • Atom for angularJs2 beta + spring boot
  • Auto indent code in Atom editor
  • Open Atom editor from command line
  • How To Set Atom-Beautify Wrap HTML Attribute
  • How to set jshint/jsxhint "esnext" option in Atom
  • Github atom editor shows line deleted and added back
  • Python bracket alignment in Atom
  • How to get the properties of the `move` event from an atom electron's BrowserWindow?
  • How to copy or select content between brackets or opening to closing html with Atom (Including the tags themselves)?
  • Atom payment gateway not redirect bank website page
  • Creating atom plugin, importing from github
  • How to make atom detect .jade correctly?
  • Atom creates file "Icon?" when a new folder is created
  • Is there any multiline commenting support for C/C++ languages in Atom Editor?
  • atom text editor key bindings do not respect the custom cson configuration file
  • How can I run Android emulator for Intel x86 Atom without hardware acceleration on Windows 8 for API 21 and 19?
  • tsconfig - How to set correct compiler output location for multiple directories (Atom)
  • Do Atom have an option to display where the element started?
  • Atom editor opens to empty window and dev tools
atom list of languages used
atom latest release notes
v1.24.1 1.24.1

Notable changes

  • Fixed a bug where atom.showSaveDialogSync() would not return a file path (#16802)
v1.25.0-beta3 1.25.0-beta3

Notable changes

  • Fixed a bug that prevents dragging a pane to a closed dock (#16863)
  • Fixed a bug where Atom incorrectly required the USERNAME environment variable to be set (#16823)
  • Fixed performance and rendering issues in the command palette (atom/command-palette#109, atom/atom-select-list#25)
v1.25.0-beta2 1.25.0-beta2

Notable changes

  • Fixed a bug that prevented snippets from working when using the Tree-sitter parsing system (#16621)
  • Fixed a bug that prevented color settings from being saved (#16789)
  • Fixed a bug that allowed the config file to get corrupted when quitting Atom
  • Fixed a bug that broke some key bindings on Windows (atom/atom-keymap#232)
Other projects in CoffeeScript