434

I have the Atom editor and was wondering how you can open a file or folder from the terminal in Atom. I am using a Mac. I am looking for a way to do this:

atom . (opens folder)

atom file.js (opens file)

atom (opens editor)

Is this possible and how do I set it up?

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Anders
  • 9,988
  • 7
  • 30
  • 36

20 Answers20

758

With the Atom editor open, in the menu bar:

Click AtomInstall Shell Commands

atom-add-shell-commands

You should expect to see:

atom-commands-installed

Potentially restart your terminal (I did it just out of habit and am not sure if you need to).

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
shaheenery
  • 8,457
  • 2
  • 17
  • 14
  • 21
    What happened to me was that `atom` and `apm` symlinks were pointing to the Downloads folder from where I ran Atom for the first time. Then after moving Atom to the applications folder the symlinks were broken and the Install Shell Command option was not able to notice it. What I had to do was to remove the symlinks and then select the Install Shell Commands from the Atom menu. There was no need to restart the console as the `atom` command worked immediately after selecting the option. I ran `sudo rm /usr/local/bin/atom` and `sudo rm /usr/local/bin/apm` from a terminal to remove the symlinks – Jonathan Morales Vélez May 24 '14 at 15:41
  • 8
    Turned out you don't need to restart terminal. – Ascendant Feb 25 '15 at 00:11
  • My computer was getting mixed up with XCODE and I had to restart and that fixed the problem. – Asher Jul 29 '15 at 15:43
  • This command only works if I don't restart my MacBook Pro after `Install Shell Commands` – Brian Jul 06 '17 at 08:42
  • This should be the answer – Chipe Feb 03 '18 at 20:22
  • For me, after removing the symlinks and trying ``Install Shell Commands`` again, it shows: ``The shell commands `undefined` and `undefined` are installed``. But after running it a second time, then it shows ``Atom`` and ``apm``. – Juha Untinen Mar 05 '19 at 09:35
  • rather than restart your terminal, you should be able to pickup the new commands (installed on your PATH) using `rehash` or `hash -r` – Gedge Apr 10 '19 at 10:47
  • atom . stopped working for me. I ran an atom update and 'Atom Menu bar' -> 'Install Shell Commands' and that did the trick. I wish this would show as the top answer. – Neal Parker Aug 03 '20 at 15:50
554

When Atom installs, it automatically creates a symbolic link in your /usr/local/bin folder. However, in case it hasn't, you can create it yourself on your Mac:

ln -s /Applications/Atom.app/Contents/Resources/app/atom.sh /usr/local/bin/atom

Now you can use atom folder_name to open a folder and atom file_name to open a file.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
  • 38
    If you get "File exists" and the Atom command still dose not work just delete it and type the command over again. – Anders Mar 14 '14 at 09:34
  • 1
    When I do this, it continues to run in the terminal. Is there a way to be able to close the terminal after the command? – jhamm Apr 01 '14 at 20:05
  • @jhamm sorry I don't understand what you mean. Just go ahead and close the terminal, it doesn't affect Atom in any way. –  Apr 02 '14 at 09:55
  • When I close the terminal, then my Atom editor closes down too. It is like there is some process running in the editor still. – jhamm Apr 02 '14 at 12:37
  • 105
    Doesn't work. All input in Atom editor is sent to the terminal session that opened the Atom app. I solved the issue by choosing "Install Shell Commands" under the "Atom" menu. – rxgx Apr 16 '14 at 15:08
  • @jhamm try appending "&" so it would be `atom &` – JorgeArtware May 20 '14 at 15:03
  • I used this, then enter `atom .` in the terminal and no issue at all. – Link14 Sep 17 '15 at 05:18
  • This is way faster then the default script on my Mac: `alias atom='open -a Atom'` – Koen Bok Mar 25 '16 at 14:19
  • First I tried "Install Shell Commands" in Atom menu. It returned an error saying it couldn't create a new directory. I used user328's method and it worked perfectly. – PencilCrate Apr 29 '16 at 20:34
  • 1
    You might need to create the `/usr/local/bin/` directory with `sudo mkdir /usr/local/bin/` and use `sudo` for `ln` like `sudo ln -s /Applications/Atom.app/Contents/Resources/app/atom.sh /usr/local/bin/atom` – wieczorek1990 Jul 20 '16 at 16:36
  • i had to delete the link itself and also add /usr/local/bin to my path. also i moved atom to the applications folder. – j2emanue Jun 05 '17 at 09:13
  • `atom .` will open the current directory. – Dror Jun 23 '17 at 05:56
  • I open atom via application and then the command works. But I wanted it to open without having an instance of atom open. The following method doesn't work for me. – Saras Arya Aug 04 '17 at 07:43
22

Roll your own with user3283997's solution, or in Atom, choose the menu option AtomInstall Shell Commands. This creates two symbolic links in /usr/local/bin.

apm -> /Applications/Atom.app/Contents/Resources/app/apm/node_modules/.bin/apm
atom -> /Applications/Atom.app/Contents/Resources/app/atom.sh

The atom command lets you do exactly what you're asking. apm is the command line package manager.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
thomax
  • 9,213
  • 3
  • 49
  • 68
15

For Windows 7 x64 with default Atom installation add this to your PATH

%USERPROFILE%\AppData\Local\atom\app-1.4.0\resources\cli

and restart any running consoles

(if you don't find Atom there - right-click Atom icon and navigate to Target)

enter image description here

sbedulin
  • 4,102
  • 24
  • 34
  • 3
    OP is on Mac. I guess he requires a solution specific to Mac only – Ozil Jul 29 '16 at 15:31
  • 13
    I agree, but since the word "Mac" is not in the title or tags, it appears in search for everyone, hence may be helpful for Windows users. – sbedulin Jul 29 '16 at 17:14
  • 2
    If you don't want to bind this to a specific release, just use the bin folder: %USERPROFILE%\AppData\Local\atom\bin – fuma Nov 29 '16 at 13:57
  • 2
    @sbedulin OSX appears in the title as well a question tag. – Ozil Mar 19 '17 at 20:39
  • 1
    The question has been edited, but I'm not going to remove the answer util it's helpful for others (personally I'm against editing questions which are 3 years old). – sbedulin Mar 20 '17 at 18:46
11

The symlink solution for this stopped working for me in zsh today. I ended up creating an alias in my .zshrc file instead:

alias atom='sh /Applications/Atom.app/Contents/Resources/app/atom.sh'

scottmcallister
  • 193
  • 3
  • 11
  • same here, weird, I can't seem to understand why this happened. – Amin Shah Gilani Mar 13 '17 at 19:46
  • amingilani if you have installed the terminal for use with the `zsh` rather than the `bash` you need to put this alias on the file `.zshrc`: `vim ~/.zshrc` or `nano ~/.zshrc` for edit the file and then put on the final: `alias atom='sh /Applications/Atom.app/Contents/Resources/app/atom.sh'` save the file and then: `source ~/.zshrc` for load. – rld Dec 11 '17 at 18:40
  • this is great if you don't have administrator privileges on your machine +1 – Huw Davies Mar 28 '18 at 02:18
  • 1
    If you are using ZSH, uncomment the line `export PATH=$HOME/bin:/usr/local/bin:$PATH` in ~/.zshrc and restart the terminal – Sagar Ranglani Apr 08 '18 at 08:21
  • sh: /Applications/Atom.app/Contents/Resources/app/atom.sh: No such file or directory – Ashok R Oct 03 '19 at 03:18
  • @AshokR maybe the app is still in your downloads folder? You could still use this approach with something like `alias atom='sh ~/Downloads/Atom.app/Contents/Resources/app/atom.sh'` – scottmcallister Oct 11 '19 at 15:12
11

On macOS you can add it to your ~/.bash_profile

as

alias atom='open -a "Atom"'

and from terminal just call

atom filename.whatever

trusk
  • 1,634
  • 2
  • 18
  • 32
5

Open the application by name:

open -a 'Atom' FILENAME
Dejay Clayton
  • 3,710
  • 2
  • 29
  • 20
4

Install Shell command

Go to your terminal and locate your directory. Run this command:

atom index.html 

index.html is just an example.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Ray
  • 124
  • 7
  • What directory? Can you be more specific? Please respond by [editing (changing) your answer](https://stackoverflow.com/posts/67910630/edit), not here in comments (***without*** "Edit:", "Update:", or similar - the answer should appear as if it was written today). – Peter Mortensen Jul 15 '21 at 08:54
3

For Windows 10 and the new release of Atom, I solved the problem by adding in my environment variable on the "PATH" row:

%USERPROFILE%\AppData\Local\atom\bin
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Laurent
  • 119
  • 3
  • 6
2

In addition to sbedulin's answer (greeting, lovely Windows users!):

The general path on Windows should be

%USERPROFILE%\AppData\Local\atom\bin

If you are using a Bash emulator like Babun, you'd better checkout the shell files, which are only available in the real application folders.

/c/User/<username>/AppData/Local/atom/app-<version>/resources/cli/apm.sh # Or atom.sh
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Paris Qian Sen
  • 1,020
  • 10
  • 21
2

I’ve noticed this recently with all new Macs here at my office. Atom will be installed via an image for the developers, but we found Atom is never in the Application folder.

When doing an ls on the /usr/local/bin folder, the path for atom will show something like "/private/var/folders/cs". To resolve this, we just located file atom.app and copied it into the application folder, and then ran the system link commands provided by nwinkler which resoled the issue. Developers can now open Atom from the command line with "atom" or open the current projects from their working directory with "atom ."

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Govna
  • 348
  • 1
  • 4
  • 16
2

Make sure to put (move) "Atom" into the Application directory.

Enter image description here

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Izhari Ishak Aksa
  • 858
  • 10
  • 13
2

On Linux && Mac OS-es type "atom ." in terminal.

Goran_Ilic_Ilke
  • 812
  • 12
  • 16
1

Another simple solution is to add /usr/local/bin to your PATH environment variable. I had the same issue, and I installed shell commands (see shaheenery's response). The symbolic links already existed and were pointing to the correct destination (see thomax's response), however I would still get 'not found'. I'm using Korn Shell btw.

Here's what I did:

  1. Open your ~/.profile file using your choice of editor (in my case, emacs ~/.kshrc)
  2. Add this line: export PATH="/usr/local/bin:${PATH}"
  3. Save and exit
  4. Restart terminal or source ~/.profile
  5. Test with atom -h
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Jason Robinson
  • 923
  • 9
  • 11
1

Upgrading Atom appears to break command line functionality on the occasion. It looks like in my case it created two versions of the application instead of overwriting them. It occurs because the new file structure doesn't match file paths created by AtomInstall Shell Commands. In order fix the issue, you'll need to do the following.

  1. Move "Atom X" from Documents into Applications (why it ended up in here, I have no idea)
  2. Rename "Atom X" to "Atom"
  3. Might need to restart your terminal and Atom

After that, everything should work just like it did before.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Ash Blue
  • 5,344
  • 5
  • 30
  • 36
  • Curious where you got Atom 3 from? Did you mean 1.0.3? According to their release page we're still in 1x.... https://atom.io/releases – sbuck Sep 02 '15 at 06:17
  • @Susan So am I, not too sure why I wrote that looking back at it. Adjusted to make more sense. – Ash Blue Sep 03 '15 at 23:13
0

With ConEmu on Windows 10 I couldn't call atom from the console even after I added %USERPROFILE%\AppData\Local\atom\bin to PATH in environment variables. I just added

alias atom="C:/Users/me/AppData/local/atom/app-1.12.7/atom"

to my .bashrc file.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Daniel Lizik
  • 3,058
  • 2
  • 20
  • 42
0

I had the same issue which I resolved by first moving Atom.app from downloads to Applications. Then under Atom's menu options, I selected "Install Shell Commands".

hal9000
  • 201
  • 5
  • 25
-1

I had problems due to Atom being unable to write its logfile when starting from the command line. This cured it.

sudo chmod 777 ~/.atom/nohup.out
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
andrew pate
  • 3,833
  • 36
  • 28
  • 2
    This looks like an issue with your permissions. You shouldn't have to use `sudo` in your own home folder. Is it possible that you started Atom using `sudo` before? That would explain why the logfile had the wrong permissions. Check the ownership of the file and then change it to be owned by your own user (using `chown`). – nwinkler Jun 28 '15 at 08:24
-1

Add the path (:/usr/local/bin/) in the shell profile file.

Mac: file $home/.bash_profile

export PATH=$GOPATH/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:$PATH
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
-1

I am on MinGW Bash, so I have created the ~.profile file with the following:

alias atom='~/AppData/Local/atom/bin/atom'
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Martin Kunc
  • 321
  • 3
  • 7