Welcome back. Today we’re talking about Github Atom, and how you can install packages on it in 2023 and beyond. If you’re the kind of person who likes listening along, here’s the video for you to watch instead.
Atom is a code editor created by Github in 2011. It was one of the most popular code editors besides VS Code, which is developed by Microsoft. This is actually very relevant, because Microsoft has owned the Github company since 2018.
Github Atom: once a code editor darling
So why did we say it “was” a popular editor? Because on June 2022, Github announced that they would shut down the project in 6 months. They cited declining community engagement as the reason behind the sunsetting, and suggested to users that they should use VS Code and Github Codespaces as alternatives. Soon however, there would turn out to be more nefarious forces at play.
On December 6, 2022, almost six months after the announcement on the Github blog, a hacker stole two code-signing certificates from Github’s servers, that were used to sign binary releases of Github Desktop, and Atom. They became aware of this attack the next day, but it would be two weeks before they started a formal investigation. They would eventually report that they found: no risk to Github services. The certificates have since been revoked.
The Atom repository was archived on December 15, 2022, and one of the immediate consequences was that the package manager stopped working. Atom uses a package manager called apm to allow users to install plugins. These plugins are usually open-source and hosted in various Github repositories. Without the package manager, it would be impossible for the average user to install packages. Additionally, Atom’s package manager, APM, no longer works properly as well. So what to do?
How to install Github Atom packages after 2023
In this article, we will show you a workaround that we found would allow us to install any Atom package into your Atom editor. It works because Atom and the plugins are both written in Node.JS, so we can just use NPM to install the plugins. So using this trick, you can continue to use Atom long after it stops being maintained. This will also work for installing themes as well.
Just make sure you are not using versions 1.63.0 or 1.63.1, because these versions were signed with the stolen certificate, and Github has disabled those versions, preventing them from working.
Install the dependencies
First, you need to have Atom, git, and Node.JS installed, because we are going to be installing the packages manually. If you don’t have them already, please install them now.
Please note that when you install Node.JS, I recommend you enable the setting “install native packages” to avoid any problems when installing Atom packages written using low-level languages such as C++.
Then, go to https://github.com/topics/atom, and in the search box, type any package you want to find. For example: markdown. It will show you a bunch of plugins related to the term: markdown.
Open the Github Atom data folder
Next we have to open a terminal and go into the data folder of Atom. In the case of Windows, you can use Git for Windows or the command prompt. You can find Atom’s data folder in the following locations:
On Windows and Linux, go to your home folder and locate the folder called
.atom. On MacOS, go to your home folder, and then enter the path:
Library/Application Support/Atom. Inside your terminal, type
cd, followed by the path to the Atom data folder. On Windows particularly, it should work on all kinds of terminals.
Now that we are inside the Atom data folder, we need to enter the packages subfolder. This is where all of the installed packages are located. So type:
Download and install the Github Atom package
Next, you need to go back to your browser and clone the plugin’s repository on your computer using git. Now this one says “downloads no longer available”, but you do not have to worry about that, since the source code is still here.
If you did not install Git, you can download a ZIP file of the repository from Github, and then extract it to the packages subfolder. Just make sure that the cloned repository is inside a folder with the plugin’s name on it.
Now you need to enter the directory of the plugin you just downloaded, so in your terminal, type: cd, followed by the package name. In this case: markdown-preview-enhanced.
The last step is to install the package using NPM, Node.JS’s package manager. Type: npm install inside the terminal.
Github Atom versus other code editors
A lot of people are ditching the Atom editor in favor of other text editors. But in my opinion, I do not believe that people should be forced to change their setup, especially if it works fine for them. For example, there are a lot of people who use Vim as their text editor, and they have no complaints. The certificate theft was bad, but it did not introduce malicious code into Atom’s codebase. So is it really necessary to switch your editor, just because it is no longer developed?
There is one other editor that you should take notice of. It’s called Pulsar, and it looks exactly like Atom. That’s because it was forked from Atom after it was discontinued. However, Pulsar only runs on relatively newer operating systems, so if you’re on an old computer, you should stick with Atom.
For most programmers, editors are the most important parts of the computer to be familiar with, in order to write code quickly. So it is not something you want to mess with all the time.
Once the installation has completed, check inside Atom to see if it has installed. By the way, if you install packages like this, then you should restart Atom to see the changes taking effect. So after it launches, you should be able to see the package listed under “Installed Packages”. If all the instructions were followed correctly, you should see it as installed.
If we go to Atom’s settings to the Packages area to verify that the package has been installed, we can see that it is listed under “Installed Packages” as it should be.
Congratulations! You have successfully installed an Atom package without using the package manager.