Skip to content

Instantly share code, notes, and snippets.

@idleberg
Last active March 14, 2024 02:55
Star You must be signed in to star a gist
Save idleberg/bc65021a736e9139e3e31f7f2c761d5d to your computer and use it in GitHub Desktop.
“Open in Visual Studio Code” in macOS context-menu

Open in Visual Studio Code

  • Open Automator

  • Create a new document

  • Select Quick Action

  • Set “Service receives selected” to files or folders in any application

  • Add a Run Shell Script action

    • your default shell should already be selected, otherwise use /bin/zsh for macOS 10.15 (”Catalina”) or later
    • older versions of macOS use /bin/bash
    • if you're using something else, you probably know what to do 😉
  • Set the script action to the following

    for f in "$@"; do
      open -a 'Visual Studio Code' "$@"
    done
    
  • Set “Pass input” to as arguments

  • Save as Open in Visual Studio Code

Keyboard Shortcuts

You can assign a global shortcut to run the services we just created

  • Open “System Preferences”
  • Select “Keyboard” then the “Shortcuts” tab
  • In the left pane, click on “Services”
  • In the right pane, scroll to “Files and Folders”
  • Select “Open in Visual Studio Code” click “add shortcut”
  • Select a shortcut

Edit Context Menu items

You might want to rename or edit the items we just created

  • Activate Finder
  • Click on “Finder” in the Apple menu, select “Services” then “Services Preferences”
  • In the right pane, scroll to “Files and Folders” and scroll to the item you want to edit
  • Right click the item and select “Open in Visual Studio Code”
  • Edit and save

Alternatively, you can edit the workflow (e.g. ~/Library/Services/Open in Visual Studio Code.workflow) in your preferred text editor

@thomthom
Copy link

What Shell should be chosen for the script?

@BoutrosAngelo
Copy link

BoutrosAngelo commented Jun 2, 2022

@thomthom /bin/zsh or the one present on your system will do the job

@hung-pt
Copy link

hung-pt commented Oct 5, 2022

image_2022-10-05_163557090
Do I need to config something?

OS: Monterey 12.6

@sumanthvrao
Copy link

sumanthvrao commented Oct 26, 2022

@hung-pt Move the binary from Downloads/ to Applications/ and try running it again. That worked for me :)

@parmentelat
Copy link

although there is probably very little practical impact, it would be better to replace, IMHO:

for f in "$@"; do
  open -a 'Visual Studio Code' "$@"
done

with

for f in "$@"; do
  open -a 'Visual Studio Code' "$f"
done

@TT--
Copy link

TT-- commented Feb 24, 2023

For step 4, I think it's "Workflow receives current" now.

@kasperkamperman
Copy link

Thanks for sharing!

@marshall86
Copy link

Fantastic! Thanks

@heythakur
Copy link

Thank you it literally helped. I spent hours with ChatGPT to make the Quick action, but it doesn't help after hours of changes here and there, VSCode, Terminal, I tried everything yesterday.

But your Simple Steps really helped.

Thank you once again <3

@jkeston
Copy link

jkeston commented May 23, 2023

Thanks! This worked to create a context menu item, but I can't seem to get a keyboard shortcut working for it. I've tried a bunch of different shortcuts making sure they weren't already in use and restarting after setting the shortcut. Any other suggestions?

@DaiZack
Copy link

DaiZack commented Jun 29, 2023

This would be easier and worked for me:

Open Automator

Create a new document

Select Quick Action

image

@me-tusharchandra
Copy link

Is there any way we can make it a shortcut and use it from the touchbar ??

@pushkarsingh32
Copy link

Thank you it even works on new version.

@adrixvoid
Copy link

@DaiZack solution worked for me

@elloop
Copy link

elloop commented Sep 2, 2023

This would be easier and worked for me:

Open Automator

Create a new document

Select Quick Action

image

good and simple solution. worked for me too. thanks @DaiZack

@bkaan99
Copy link

bkaan99 commented Sep 5, 2023

thanks for easy tutorial 👍🏻

@juji
Copy link

juji commented Sep 18, 2023

This would be easier and worked for me:

Open Automator

Create a new document

Select Quick Action

image

this works best, IMHO

@VirusEcks
Copy link

This would be easier and worked for me:

Open Automator

Create a new document

Select Quick Action

image

this is way easier method, Thanks 😄

@anandbibek
Copy link

If you've code installed in your path, the script could be as simple as

code "$@"

This also prevents the problem of vs code opening multiple windows when multiple folders are selected.

Screenshot 2023-10-21 at 1 27 48 PM

@lony
Copy link

lony commented Nov 2, 2023

@anandbibek Did you update to Sonoma already? I cannot find the "Receive Files and 2 more inputs from Quick Actions" even the icon is not available, and I would love to find out if it's an update problem or if I did something wrong?

@anandbibek
Copy link

@lony No. I'm still on Ventura.

@accidental-feature
Copy link

This would be easier and worked for me:

Open Automator

Create a new document

Select Quick Action

image

Best solution! Thanks a million!

@lony
Copy link

lony commented Nov 6, 2023

Screenshot from macOS Shortcut

I got help from a coworker and solved it. You have to select the quick action field.

@misaelabanto
Copy link

This would be easier and worked for me:

Open Automator

Create a new document

Select Quick Action

image

It worked, thank you!

@x-tropy
Copy link

x-tropy commented Feb 21, 2024

although there is probably very little practical impact, it would be better to replace, IMHO:

for f in "$@"; do
  open -a 'Visual Studio Code' "$@"
done

with

for f in "$@"; do
  open -a 'Visual Studio Code' "$f"
done

personally prefer $f without quotes, to open each folder as a seperate vscode window (rather than group them together as a workspace).

Those who prefer this way may try it out 😉

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