822

I'd like to run / open Visual Studio Code from the Mac OSX Terminal by running this command code .. I found instructions here:

https://code.visualstudio.com/Docs/setup

Apparently I need to include this in my .bashrc file, so I did, but to no avail.

code () {
    if [[ $# = 0 ]]
    then
        open -a "Visual Studio Code"
    else
        [[ $1 = /* ]] && F="$1" || F="$PWD/${1#./}"
        open -a "Visual Studio Code" --args "$F"
    fi
}

I edited the .bashrc file here:

~/.bashrc which points to /Users/username/.bashrc

Which .bashrc should I be editing?

10
  • 3
    have you sourced the .bashrc after adding the function? $ source ~/.bashrc. I would suggest you to source the .bashrc from ~/.bash_profile.
    – Sarbbottam
    Commented May 6, 2015 at 0:03
  • 2
    In OS X you would generally add that to your ~/.bash_profile — not ~/.bashrc then restart Terminal.app or source it like mentioned.
    – l'L'l
    Commented May 6, 2015 at 0:12
  • 2
    l'L'l is right, adding the snippet to .bash_profile works
    – Charlie Wu
    Commented May 6, 2015 at 5:42
  • 2
    With VS Code 0.3.0 we recommend to use a different syntax for the code command. This new syntax supports multiple arguments and correctly identifies the current working directory: code () { VSCODE_CWD="$PWD" open -n -b "com.microsoft.VSCode" --args $* } Commented Jun 3, 2015 at 18:41
  • 2
    This should be the correct answer.
    – lukas_o
    Commented Apr 6, 2017 at 9:05

30 Answers 30

2675

According to the docs on Launching from the command line:

  1. Open Visual Studio Code
  2. Open the command pallette with Command + Shift + P (or F1)
  3. Type Shell in command palette
  4. Select Shell Command: Install code in PATH from suggested list

Open VSCode via Terminal/Command Prompt

That's it.

Now open your terminal type.

$ code .

To make this change persist after restart on MacOS

Many Mac users find this is forgotten and needs to be re-applied after any restart. This may happen if MacOS has applied the quarantine attribute to VS Code, which the OS uses for the "Are you sure?" notice applied on first using apps downloaded from the internet.

To check if this attribute is applied, look for com.apple.quarantine in the list returned by this command (changing the path if that's not where you installed it):

xattr "/Applications/Visual Studio Code.app"

If that does return com.apple.quarantine, you can remove the attribute using the same command with the -d flag (alongside -r to recursively remove it from all contained files and sudo to allow the change):

sudo xattr -r -d com.apple.quarantine "/Applications/Visual Studio Code.app"

...then do Shell Command : Install code in PATH as above after the attribute has been removed, and it should persist after restart.

Credit: derflounder.wordpress.com article linked to by RicardoVallejo in this comment.


12
  • 15
    this works not by updating PATH with full path to reach VSCode, instead it introduces a symlink /usr/local/bin/code@ -> /Applications/Visual Studio Code.app/Contents/Resources/app/bin/code which coming from a linux background seems strange yet I guess this is how OSX rolls Commented Aug 7, 2017 at 17:00
  • 10
    For anyone experiencing the loss of the "code ." command when restarting, then you may have the code program as quarantine. derflounder.wordpress.com/2012/11/20/… Commented Jan 23, 2019 at 10:56
  • 8
    I've just ln -s "/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code" /usr/local/bin/vscode Commented May 5, 2020 at 16:10
  • 9
    How come this doesn't persist, I have to do this after every restart Commented Jun 22, 2020 at 9:01
  • 2
    @CezarCobuz I've editted in a section on how to avoid needing to re-do this after restart, based on the link in RicardoVallejo's comment above. Commented Mar 22, 2021 at 15:21
90

I just want to pull out Benjamin Pasero's answer from inside his comment as it seems the best solution. It is the tip given on the Setting up Visual Studio Code page where it says ...

If you want to run VS Code from the terminal, append the following to your ~/.bash_profile file (~/.zshrc in case you use zsh).

code () { VSCODE_CWD="$PWD" open -n -b "com.microsoft.VSCode" --args $* ;}

Now, you can simply type code . in any folder to start editing files in that folder. [Or code test.txt to go to work on the test.txt file]

3
  • 3
    what I love about this method is that I can use "vscode" instead of "code" to launch vscode.
    – jj.
    Commented Jun 10, 2022 at 23:20
  • this uses function instead of alias. function is a better way because you can overwrite (redefine) function without having to undefine it first.
    – oldpride
    Commented Sep 10, 2023 at 16:35
  • I like how simple this is; and requires no other steps, like the accepted answer does.
    – Ned
    Commented Nov 7, 2023 at 4:43
67

To setup path permanently for mac users;

open ~/.zshrc using the below command

vi ~/.zshrc

Add the following path

export PATH="$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin" 

And source it using below command

source ~/.zshrc

Now close the terminal and reopen and run code . command should work properly.

5
  • Did not work for me
    – Eydwales
    Commented Aug 23, 2022 at 10:19
  • Check for the path. May be different for your system.
    – Tejashree
    Commented Aug 24, 2022 at 15:20
  • Worked like a charm, thanks! You can also open the file just with open from the root folder. ie open .zshrc Commented Jan 13, 2023 at 8:54
  • You don't need to close the terminal if you source the config file
    – Martian
    Commented Jul 5, 2023 at 9:13
  • 1
    Update: Rather than source zshrc, the new recommended zshrc restart is exec ~/.zshrc batsov.com/articles/2022/09/15/reload-zsh-configuration
    – ginna
    Commented Mar 15 at 20:35
40

follow some simple steps :

  1. open your visual studio code (vs code).
  2. press F1.
  3. pallete will open in top center with symbol >
  4. type shell .
  5. select install 'code' command in PATH.
  6. it will be automatically intalled.

Now you can use from terminal by typing

$ code .

2
  • Simplest answer from all above!
    – Hamza
    Commented Jul 28, 2022 at 5:43
  • nice one! Simple and effective
    – EigenFool
    Commented Jul 29, 2022 at 7:33
23

Open VSCode, press Command + Shift + P, type Shell in command palette, Select that option => Install code in PATH from suggested list in command palette.

22

If you are on Mac OSX Maverick, it's ~/.bash_profile not ~/.bashrc

Try putting the code in there, close the terminal and then try again. Should be working

2
  • 13
    This is no longer the up to date method, use the instructions in stackoverflow.com/a/36882426/107156 instead. This is now a built-in feature to code, and you just have to tell it to install it for you. Commented May 12, 2016 at 19:42
  • thanks @KyleBrandt for posting the updated instructions
    – swyx
    Commented Jun 7, 2017 at 18:01
21

For macOS 12.0 and above:

  1. Open profile in Notepad
open ~/.zshrc
  1. Create an alias for code, Paste below:
alias code='open -a "Visual Studio Code"' # open file or folder in VSCode e.g. code ~/.zshrc
  1. Now you can open the current folder e.g. code . or any other file/folder by providing its path.

  2. Profit


PS: You can add as many aliases as needed to open a file/folder with different editors. Just mention the editor's name in the alias. For example, open file/folder with sublime text:

alias subl='open -a "Sublime Text"' # open file or folder in sublime e.g. subl ~/.zshrc

And use it like subl .

2
  • 3
    I prefer this solution since I did not care to overwrite my existing $PATH variable.
    – Jesse H.
    Commented Jun 6, 2022 at 17:21
  • 1
    Good! Worked for me and I didn't have to mess with the $PATH
    – Cattani
    Commented Aug 22, 2022 at 15:08
19

For Mac you can do : View > Command Palette > Shell command > "install code command in path". I'd assume there would be something similar for other OS's. After I do

which code

and it tells me it put it in /usr/local/bin

2
  • 1
    This answer doesn't answer the question exactly, but this command is a good addition to my knowledge of commands. This is very helpful to find the source of any command that we use. Commented Jul 16, 2020 at 8:48
  • 1
    My thought was ... as long as I can type code and it launches from the terminal that'll do for me. I used which to see where it put it. Had it not worked automatically I would have gone editing profiles etc. I like the 'kiss' rule ;-)
    – JGFMK
    Commented Jul 16, 2020 at 13:06
17

Sometimes, just adding the shell command doesn't work. We need to check whether visual studio code is available in "Applications" folder or not. That was the case for me.

The moment you download VS code, it stays in "Downloads" folder and terminal doesn't pick up from there. So, I manually moved my VS code to "Applications" folder to access from Terminal.

Step 1: Download VS code, which will give a zipped folder.

Step 2: Run it, which will give a exe kinda file in downloads folder.

Step 3: Move it to "Applications" folder manually.

Step 4: Open VS code, "Command+Shift+P" and run the shell command.

Step 5: Restart the terminal.

Step 6: Typing "Code ." on terminal should work now.

16

Open Visual Studio Code application:

  • Open the command palette with Command + Shift + P
  • Type > Shell in the command palette
  • From the suggested list, select: Shell Command: Install code in PATH

Open Terminal application:

  • Type code . in mac terminal
15

To set up the Visual Studio Code path permanently on Mac OS, just open .bash_profile using the following command on the terminal:

open -t .bash_profile

Then add the following path to .bash_profile:

code () { VSCODE_CWD="$PWD" open -n -b "com.microsoft.VSCode" --args $* ;}

Save the .bash_profile file and quit the terminal. Then reopen the terminal and type code . to open Visual Studio Code.

1
  • Great answer. To add a tip: If you don't want to restart the terminal, after you edit the .bash_profile run source ~/.bash_profile and it reloads the latest configuration in the current terminal.
    – Bere
    Commented Feb 11, 2021 at 10:26
14

Somehow using Raja's approach worked for me only once, after a reboot, it seems gone. To make it persistent across Mac OS reboot, I added this line into my ~/.zshrc since I'm using zsh:

export PATH=/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin:$PATH then

source ~/.zshrc now, I could just do

code .

even after I reboot my Mac.

2
  • Does not work after closing and opening terminal. Works only for one session Commented Feb 28, 2021 at 5:46
  • Official Documentation works properly suggested by @Raja Jaganathan Commented Feb 28, 2021 at 5:48
13

For Mac users:

One thing that made the accepted answer not work for me is that I didn't drag the vs code package into the applications folder

So you need to drag it to the applications folder then you run the command inside vs code (shown below) as per the official document

  • Launch VS Code.
  • Open the Command Palette (⇧⌘P) and type 'shell command' to find the Shell Command: Install 'code' command in PATH command.
0
8

Yo do this:

  1. Launch Visual Studio Code.
  2. Press Cmd ⌘ + Shift ⇧ + P to open the Command Palette.
  3. Type in shell command and select the Shell command: Install ‘code’ command in PATH to install it.
1
  • shell is not in the list Commented Oct 7, 2022 at 16:21
7

How about a simple Bash alias that you stick in your .bash_profile ?

alias code="open -a /Applications/Visual\ Studio\ Code.app"

To open the current directory:

code .

4

I follow this step it work for me .😁

first open VSC . open terminal of VSC.

Press cmd+shift+p

uninstall path . Give permission to it.

Press cmd+shift+p

install path .

then open Mac terminal navigate to root project file type

code . in root folder It will open VSC . :)

4

********** UPDATED FOR 2024 *************************

Add the following line to your ~/.zshrc file:

 alias code="open -a 'Visual Studio Code'"

re-source your .zshrc file by running the following command in your terminal:

 $ source ~/.zshrc

Usage:

 $ code my-project-folder/
3

I just made a symbolic link from the "code" program supplied in the Visual Studio Code.app bundle to /usr/local/bin (a place where I prefer to put stuff like that and which is already in my path on my machine).

You can make a symbolic link using ln -s like this:

ln -s /Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code /usr/local/bin/code

0
2

To set it up, launch VS Code. Then open the Command Palette (⇧⌘P) and type shell command to find the Shell Command: Install 'code' command in PATH command.enter image description here

https://code.visualstudio.com/docs/setup/mac

1
  • 7
    How does this differ from the highest voted answer already here?
    – Stephen Rauch
    Commented Feb 14, 2017 at 3:37
2

add below snipped in your bash profile -

PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
code () { VSCODE_CWD="$PWD" open -n -b "com.microsoft.VSCode" --args $* ;}
0
2

I moved VS Code from Downloads folder to Applications, and then i was able to run code in the terminal. I guess, it might help you too.

2
  1. Open VSCode
  2. Go to view --> Command Palette
  3. Search for "shell...install 'code'
  4. Open your terminal and place in the directory you wanna open
  5. Use $ code .
1
  • Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.
    – Community Bot
    Commented Dec 22, 2022 at 12:30
1

I simply created a file called code:

#!/bin/bash

open /Applications/Visual\ Studio\ Code.app $1

Make it executable:

$ chmod 755 code

Then put that in /usr/local/bin

$ sudo mv code /usr/local/bin

As long as the file sits someplace that is in your path you can open a file by just typing: code

1

I prefer to have symlinks in the home directory, in this case at least. Here's how I have things setup:

: cat ~/.bash_profile | grep PATH
# places ~/bin first in PATH
export PATH=~/bin:$PATH

So I symlinked to the VSCode binary like so:

ln -s /Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code ~/bin/code

Now I can issue code . in whichever directory I desire.

1

Since, default shell is zsh in macOS, you can try this:

cat << EOF >> ~/.zshrc
# Add Visual Studio Code (code)
export PATH="\$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
EOF

This will add a path to your VS Code, restart your terminal and voila, you're good to go.

code example.py

1
alias code="/Applications/Visual\ Studio\ Code\ 2.app/Contents/Resources/app/bin/code $1"

the alias to the vs code's bin file with parameters works well

you can do code . after having sourced your bash file

1

In my case, the Shell Install PATH does not work. So, I ran the Uninstall command and then run the install command again. Now it works well.

0

open finder and go to applications and make sure that vscode exists there ,then open type in terminal export PATH="/Applications/Visual Studio Code.app/Contents/Resources/app/bin"

0

you can manually add VS Code to your path, to do so run the following commands:

cat << EOF >> ~/.bash_profile
# Add Visual Studio Code (code)
export PATH="\$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
EOF

Start a new terminal to pick up your .bash_profile changes.

Note: The leading slash \ is required to prevent $PATH from expanding during the concatenation. Remove the leading slash if you want to run the export command directly in a terminal.

Note: Since zsh became the default shell in macOS Catalina, run the following commands to add VS Code to your path:

cat << EOF >> ~/.zprofile
# Add Visual Studio Code (code)
export PATH="\$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
EOF
-1
code () {
    if [[ $# = 0 ]]
    then
        open -a "Visual Studio Code"
    else
        echo "Opening: "$@
        "/Applications/Visual Studio Code.app/Contents/MacOS/Electron" $@
    fi
}

I put that into my .bash_profile I tested it and it works.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.