#cli #project #workspace #picker #manager

app wspick

platform independent workspace picker for the terminal

11 releases (4 stable)

1.2.0 Aug 2, 2023
1.1.1 Jul 20, 2023
0.4.0 Jul 12, 2023
0.3.4 Jul 11, 2023
0.1.0 Jun 24, 2023

#10 in #project

35 downloads per month


287 lines


terminal workspace picker

If you hate typing out all your long project paths in the terminal just to cd there or open them in an editor, this is for you.

? select project:
> test1
  [new project]
  [new dir]
[↑↓ to move, enter to select, type to filter]
? select project: tes 
> test1
[↑↓ to move, enter to select, type to filter]


cargo install wspick

or just download a binary from the releases section


Calling wspick opens a selector with projects that can be opened in a configured editor. New projects can be added by selecting new project and specifing path and name or by selecting edit and editing the config directly. With new dir you can add a path and wspick will show all directories in that path as project.

? select project  
> [new project]
  [new dir]
[↑↓ to move, enter to select, type to filter]


  • -p print the selected path instead of opening it. Useful for usage in scripts.

CD to projects

To use it on linux to cd to projects create the following alias:

alias cdws='cd $(wspick -p)'


On first start a new configfile wspick.toml is generated and stored in an appropriate location. On linux this is ~/.config/wspick

dirs = []
open_cmd = ""
editor = "/usr/bin/helix"
sort = true
exclude_proj_dirs = true

exercism-rust = "/home/manuel/programming/exercism/rust"
  • dirs: list of directories. All subdirectories will be shown as projects
  • open_cmd: command that is executed on selection. Empty means printing the selected path
  • editor: editor used when you select edit
  • sort: sort prjects alphabetically
  • paths: list of project names and paths
  • exclude_proj_dirs : exclude directories containing any already defined project from the autogenerated list


~176K SLoC