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 (10,389
zsh (318
script (190
switch (102
manager (89
projects (35