ws is a CLI to manage and interpret small YAML files that specify tasks to open a project like opening an editor, launching a server or visiting a chat or documentation in the browser. It can be used to efficiently switch between work and side projects.
cargo install workspace
Then setup the
ws command in your shell:
- bash: Add this line to your
eval $(workspace shell bash)
- fish: Add this line to your
workspace shell fish | source
- PowerShell: Add this line to your
Invoke-Expression "$(workspace shell posh)"
workspace shellprints a shell function
wsthat delegates output from
workspacebut intercepts commands to run. This lets you change the directory and run commands directly in the shell, e.g. if they need user input.
For the CLI, see:
Workspaces can have the following fields:
path, list of strings path to the workspace
tabs, list of strings tabs to open in
local, list of strings commands execute in the current shell
background, list of strings commands execute as background processes
external, list of strings commands to execute in a new
pathis mandatory and created automatically by
For example, this is the workspace I use for my blog:
path: /home/matthias/code/web/blog/ commands: local: - git status - sudo systemctl start nginx background: - code -r . external: - gulp tabs: - https://developer.mozilla.org/en-US/ - localhost
~/code/web/blog/, print the git status, open the directory in visual studio code, start the
gulp build in a new terminal, launch
nginx to serve the files and open
localhost and MDN in the browser.