Awesome Open Source
Awesome Open Source


The easy way to switch to your projects on Shell. Add your projects to pm and switch between them with a command.


To install the program, download the installer and execute it.

cd ~
chmod 755 ./

If you want to install last stable version, only run downloaded script:

. ./

If you want to install latest development version, run the installer with --prerelease option:

./ --prerelease

Type your shell when the installer ask to you:

What is your shell? [ zsh, bash ]:

Update PM

To update PM, run same process than installation and say yes when PM ask you to update.


Available shells are:

  • ZSH
  • Bash (Prerelease, you need to run installer with --prerelease option)


Move to your awesome project and add it to pm:

cd projects/awesome-project
pm add awesome-project

Try to add another. Next, list stored projects:

pm list
# awesome-project
# another-project

To switch into a project, use pm go:

pm go awesome-project
# Current project: awesome-project

If a project is not longer available, remove it:

pm remove another-project
pm list
# awesome-project



PM allow some config values. To add, edit or remove a config parameter:

pm config <add|get|remove> <parameter> (value)

Available config parameters:

  • after-all : execute this command after switch to a project with pm go.
  • git-info : show a resume of Git when go to a project.

For example, you can open Sublime Text on a project when go to it:

pm config add after-all "sublime ."


With PM you can add configuration to projects. To add, edit or remove a config parameter of a project:

pm config-project <project> <add|get|remove> <parameter> (value)

Available config parameters:

  • after : execute this command after switch to the project with pm go.
  • git-info : show a resume of Git status.

For example, you can start Gulp in a project when go to it:

pm config-project myproject add after "gulp"

Zsh auto-complete

If you use oh-my-zsh, you can use add pm to your plugins array in your ~/.zshrc:


If you don't use this configuration framework, you can put the _pm file in a folder in your $fpath array.

The folder /usr/local/share/zsh/site-functions/ is a good place for that.


Example of PM in a gif


To contribute pm:

  • Create an issue with the contribution: bug, enhancement..
  • Fork the project and edit it
  • Create a pull request when you finish


PM is released under the MIT license. Copyright @Laux_es ;)

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
shell (9,857
zsh (306
script (176
switch (99
manager (85
projects (34

Find Open Source By Browsing 7,000 Topics Across 59 Categories