Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Launch Sublime Text 2 from the Mac OS X Terminal

Launch Sublime Text 2 from the Mac OS X Terminal

Sublime Text 2 ships with a CLI called subl (why not "sublime", go figure). This utility is hidden in the following folder (assuming you installed Sublime in /Applications like normal folk. If this following line opens Sublime Text for you, then bingo, you're ready.

open /Applications/Sublime\ Text\

You can find more (official) details about subl here:


The official documentation I linked to above recommends creating a ~/bin folder (in your home directory). That's weird, I don't recall ever being asked to do that on OS X since most people install binaries within /usr/local/bin which – if you're a developer – is likely to already have tons of other binaries.

So contrary to the Sublime team recommendation, we're not going to create a bin folder in your home directory:

ln -s /Applications/Sublime\ Text\ /usr/local/bin/sublime

This will simply create a symlink called sublime (remember, we like names that don't suck to type 500 times a day) between the subl binary stashed in the Sublime application package, and a folder where your system usually looks for binaries to execute (launch). Think of it as a wormhole of awesome.

Now let's do a check to see if everything will run smoothly. Enter this:

open ~/.bash_profile.

You should see at the top of the file a line that starts with: export PATH=

This contains all the directories that will be looked into for executable binaries when you type a command in Terminal. Since we create a symlink to subl called sublime in the /usr/local/bin directory let's check if this directory is listed on that same line.

If it is, perfect. Let's keep going. If not, simply add it like this and save the file:

export PATH=/usr/local/bin:(...)

Note: The "(...)" in this example represents other folders that would be listed on the same line and separated by a colon.

If you had to add /usr/local/bin to your PATH, run the following command before continuing:

source ~/.bash_profile

This will reload your .bash_profile with the newly added directory.


Open a Terminal window and run:

sublime filename (replace "filename" by an actual file name)


sublime foldername (replace "foldername" by an actual folder name)

or even

sublime . (to open the entire current directory)


Now you don't need to get out of Terminal to simply open a file or a folder, you didn't have to add an "alias" or yet another bin directory to your .bash_profile which you would have needed with the official instructions given by the Sublime team.

Have fun, Sublime is a great editor showing a lot of promise.

I have encountered some erros when execute source .bash_profile, can you help me?

Marvin:~ edmundojr$ source .bash_profile 
-bash: .bash_profile: line 1: syntax error near unexpected token `('
-bash: .bash_profile: line 1: `export PATH=/usr/local:(…)'

Now I see the “note”, case solved!

stinoga commented Mar 2, 2012

Awesome breakdown of this. I also like that I can name the command whatever I like :)


Thx mate,

I was reading the a tips&trick guide of Sublime 2 here: and I didnt feel very confortable with the bin folder, this solution it´s easier and... why not? more elegant


I followed these steps but had to create a .bash_profile first. I lost my commands in my terminal when I did this. I am sure it is something that I did creating the .bash_profile but I don't know how to get it back. Any help would be very much appreciated.


As Andrew noted, .bash_profile is not on a Mac by default. Just followed these instructions on my Mac. I created a .bash_profile but as it's empty to start the directions here apply to people who already have one it seems. Can you provide an example file?

This is excellent Olivier. Kudos to you! Worked perfectly!

Worked great. Thank you!


Worked great. Thanks!

Just for the record, this line didn't work for me in my new Mac 10.7.4
ln -s /Applications/Sublime\ Text\ /usr/local/bin/sublime

until I wrapped the location in quotes.
ln -s "/Applications/Sublime\ Text\" /usr/local/bin/sublime

mediter commented Nov 26, 2012

I did as instructed first
ln -s "/Applications/Sublime\ Text\" /usr/local/bin/sublime

Terminal gives the prompt "ln: /usr/local/bin/sublime: No such file or directory"

so I went to check in /usr/local/, turns out there is no directory named "bin" here, but there is one in /usr

thus I changed the line to
sudo ln -s "/Applications/Sublime\ Text\" /usr/bin/sublime

quit Terminal, then relaunch it
try to use sublime as a command, terminal still tells me "-bash: sublime: command not found"

echo $PATH gives the following result

what am I doing wrong here?

mediter commented Nov 26, 2012

Please ignore the last comment.

sudo ln -s /Applications/Sublime\ Text\ /usr/bin/sublime

then relaunch Terminal worked for me

or alias:

alias subl='/Applications/Sublime\ Text\'


Thanks a bunch i have been looking for somethng like this.

The only "issue" I see with putting the symlink in /usr/local versus ~/bin is that /usr/local is the directory used by Homebrew, and Sublime isn't installed through Homebrew.

This is more philosophical than a real issue, but I guess I like the idea of having Homebrew and everything installed through Homebrew sandboxed to /usr/local. That way if I just remove that directory, I can start from scratch again for everything Homebrew-related, but still have Sublime working from the command-line since I put the symlink in ~/bin.

For more info on Homebrew and /usr/local see "How do I uninstall Homebrew?" and "Why does Homebrew insist I install to /usr/local?" at

vishu17 commented Mar 10, 2013

I was trying to get this setup on a new machine, and guess what, the sublime documentation wraps the path to subl between quotes, that was causing my symlink to not function as desired.

Saw the unquoted path in this gist, followed it and voila!

MHMDhub commented Mar 18, 2013

Nice! I thought 'sublime' was better than 'subl' too.

Good One

Homebrew is usually installed to /usr/local/Cellar. I like the alias approach the best, then you don't have a symlink lying around. Just add this to your ~/.profile (or ~/.bash_profile or ~/.bash_rc)

alias subl='/Applications/Sublime\ Text\'

by typing this line:

echo "alias subl='/Applications/Sublime\ Text\'" >> ~/.profile
source ~/.profile

When I type this: ln -s /Applications/Sublime\ Text\ /usr/local/bin/sublime
I get this error: ln: /usr/local/bin/sublime: Permission denied

@mediter & @paulrossman,

Thanks, the alias code and the sudo code worked for me.

You can also add "export EDITOR='sublime -w'" to your ~/.bash_profile to have ST as your default editor (for commenting git commits, using fc etc)

Everything works great on Mac here but if you create a Bash profile you may find you loose Bash or the commands in your terminal.
I didn't need to do it and if you created an empty one and you are having problems delete and relaunch the terminal app.
I think it is due to a missing or incorrect path directive in the head of the profile file.

monners commented Oct 13, 2013

Great worth, thanks a bunch.

I looked at so many websites and forums trying to get this to work and this is the only thing that helped. Thank you so much!

Thank you so much for this! I spent a whole day trying to figure it out.

So helpful!

Greatly appreciated. Thank you sir!

Woo just found this! Thanks!


dacook commented Jan 16, 2014

Easy to follow write up, thanks.

Sillson commented Jan 18, 2014

Best breakdown of this issue I've found yet, thanks!

siwka commented Jan 21, 2014

I can't find subl, open it, not sure what to look for. In /Applications/Sublime I have
drwxr-xr-x 2 ks admin 68 Jan 19 11:22 .
drwxr-xr-x 3 ks admin 102 Dec 16 21:25 ..

$ open subl
The file /Applications/Sublime does not exist.
$ subl --help
-bash: subl: command not found

Could it be as per ST ( MacPorts are responsible for not allowing it work correctly?

I created a symlink on the /bin folder to Sublime Text 2.
Then I added the line "export PATH=
/bin" to .bashrc and runned it.

Now I cannot run any command (not even "ls") except for "sublime [filename]". I get always "-bash: [command name]: command not found"

Why is that? Sorry, I'm a noob on this topic.

lemonzi commented Mar 15, 2014

The line you provided replaces the whole PATH chain with only the sublime folder; what you want to do is append it to the folders it already has, which contain all the system utilities:

export PATH=$PATH:~/bin

Removing the quotes around the path worked for me too, as per vishu17's comment above.

The entire post is premised on this working okay: open /Applications/Sublime\ Text\

But what if the above does not work at all?

Thanks! It worked like a charm.

open ~/.bash_profile

This didn't work on my machine, it says that the file doesn't exist. But actually when i try to open a file with

"sublime 'filename' "

it works just fine for me!

Will I ever get in trouble if I don't do the other steps as you described?

It doesn't seem to me like i changed something in my PATH ...

Thanks anyway, best How-To I've found!

@samtalks You can very simply dig into the Package Contents of Sublime Text and drag and drop the subl file into terminal, which will give you the correct path for your particular version of Sublime Text. In my case, I'm using Sublime Text 3, and thus it is missing the "2" in the application title.

I was using the old "subl" method and have been happy with that for years, but just picked up a new MBPr and was going through the tedium of porting over all my development settings, including my iTerm 2 themes, my .bash_profile settings, etc. For some reason subl was opening files just fine, but it was failing with Git and I had set up an alias to evoke it for nano commands as well. Followed these instructions and not only got it working again, but improved things as well (I wasn't a fan of "subl" either, as well as creating an unnecessary -- non-hidden -- bin folder in my home directory). My theory is I must have forgotten to set up the symlink in the rush to move everything over.

Thanks a bunch mate!

great stuff man! thanks

Done in about a minute, and it's much cleaner than the official instructions. Many thanks.

lindsayo commented Jun 6, 2014


Worked perfect! Thanks.

cmocha commented Jul 3, 2014

Nice easy instructions! Many Thanks!

Thanks for the very clear explanation, it helped a lot! 👍 🙇

TZ2016 commented Jul 27, 2014

Thanks a lot! But it seems on my mac $ subl <anyfilename> only opens the sublime without loading any file. Does anyone know what the issue is?

This was the fix I was looking for. Thanks I really appreciate the help.


luka22 commented Oct 7, 2014

thank you, really helpful, especially 'sublime foldername'.

thanks, this was a great help!

Can someone explain to me why I can't use stdin for filename?

for example

sublime -n file.txt

works fine, but

echo file.txt | sublime -n

opens a new file with stdin as the contents. What am I doing wrong?

gusk commented Nov 13, 2014

As a result of following the instructions step-by-step, I was unable to use typical terminal commands. I am running Yosemite.

Here's what I did differently:

as @lemonzi mentioned, include $PATH:~/ and add this to your ~/.bash_profile

export PATH=$PATH:~/usr/local/bin

In addition, if you're using Sublime Text 3, this is the correct command for the symlink:

ln -s /Applications/Sublime\ /usr/local/bin/subl

Note: I am setting the symlink alias to subl, not sublime, as we are referring to the Unix Executable File: .../Contents/SharedSupport/bin/subl

Although this was a great work around to avoid creating a ~/bin directory, the problems outmatch the solution. After spending the necessary time, I probably would've followed the Sublime Developers suggestion.

@gusk are you sure the application name is "Sublime Text" (/Applications/Sublime\ and not "Sublime Text 3" or something like this?

sineld commented Dec 2, 2014

worked for me. thanks.

Ducain commented Mar 6, 2015

Perfect - thank you.

EuniceP commented Mar 9, 2015

Wonderful! As suggested, adding alias and export commands in .bash_profile works like a charm! Thanks!

This solution worked great. I had to step through it carefully having just done a wipe/fresh install of Yosemite. No usr/local/bin or .bash_profile when you have a fresh setup. Gratitude to you good sir! ;)

It worked perfectly. Stay awesome!

fabritw commented Apr 4, 2015

The bash_profile edit caused me to loose all bash commands!
i.e. export PATH="/usr/local/bin:(...)"

Had to fix it using this...

"Pressing Cmd-Shift-. in the file open dialog of TextEdit (or a real editor) should display dot-files in the dialog."

deeang commented Apr 13, 2015

Thankyou @gusk

Perfection! Thank you!

iamazik commented May 8, 2015

A perfect explanation of everything. I didn't want to create a bin directory at my home directory as all the other binaries place it /usr/local/bin/. 😄

kevglynn commented Aug 9, 2015

Great lesson.

where can i find all command for subl such like --command with what kinde of args

annrayc commented Aug 16, 2015

thanks worked great!

Thank you! After much searching online, this one worked great for me.

saposki commented Oct 10, 2015

This was very straight forward
Thank you.

Atlas7 commented Nov 4, 2015

Awesome. Worked for me. I like this very much :)

Faline10 commented Jan 7, 2016

sudo ln -s /Applications/Sublime\ Text\ /usr/local/bin/subl worked for me on my new El Capitan OSX. Note: this allows me to use "subl" rather than "sublime" as a command.

arzmir commented Apr 12, 2016

As some have mentioned you might lose access to the normal terminal commands when doing it like this.
This is because you overwrite the standard PATH-variable with the one you have in your .bash_profile when you source it.

The way to avoid it is to extend the PATH-variable instead.

BAD: export PATH=/usr/local/bin:

GOOD: export PATH=$PATH:/usr/local/bin:

This way you append '/usr/local/bin' to the already existing path. :)

jnuc093 commented May 9, 2016

OSX EICaption with Sublime Text 3

ln -s /Applications/Sublime\ /usr/local/bin/subl

➜ ~ vi ~/.bash_profile

export PATH=$PATH:~/usr/local/bin

➜ ~ source ~/.bash_profile
➜ ~ subl

it works fine!

Your the best 💯

iMagesh commented Jun 28, 2016

Cool. Thanks.

Cools. Thanks

@jnuc093 It works in MacOSX Sierra too, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment