Recently I switched from using Alfred over to Raycast. What convinced me of Raycast is the simplicity the tool provides, plus the ability to simply create your custom commands/scripts.
Info: I already wrote about it: Using Raycast to speed up my productivity.
The more I use Raycast, the more I want to automate. A script I created was to start up my daily development tasks:
- Open my VSCode editor with the right project loaded
- Open my terminal to the right folder
- Open
Microsoft Edge
to the Azure Portal - Open
Google Chrome
with my application URL
These tasks typically do not take a lot of time, but automating this by one command is so easy.
Taking it to the next level
To take it to the next level, I wanted to start my commands in VSCode as well. For my project I use two terminals:
- Open
ngrok
as my application needs to be accessible remotely. - Start the local development server (Next.js in my case).
Unfortunately, you can only trigger certain actions in VSCode by shortcuts. That is why I thought to create a new VSCode Remote Control
extension which allows you to send commands from anywhere on your device to the running VSCode instance.
Info: Check out the extension here: VSCode Remote Control.
The extension spins up a WebSocket
server. By default, it will start it on port: 3710
, but is configurable from the settings.
Show me what it can do
To speed up my process, I wanted to open two terminal instances in VSCode and run my commands in each of them.
In my Raycast script, all I had to do is add the following code:
echo "{ "command": "workbench.action.terminal.newWithCwd" }" | websocat ws://localhost:3710 echo "{ "command": "workbench.action.terminal.sendSequence", "args": { "text": "npm run ngrok\n" } }" | websocat ws://localhost:3710 echo "{ "command": "workbench.action.terminal.split" }" | websocat ws://localhost:3710 echo "{ "command": "workbench.action.terminal.focusAtIndex2" }" | websocat ws://localhost:3710 echo "{ "command": "workbench.action.terminal.sendSequence", "args": { "text": "cd solutions/msteams/webapp && npm run dev\n" } }" | websocat ws://localhost:3710
Important: this is not only created for Raycast. Once installed, you can run commands from anywhere on your device.
Here the result of this script:
Check out the VSCode extension here: VSCode Remote Control.