Awesome Open Source
Awesome Open Source


npm npm bundle size

ProjectMan is a CLI which lets you add projects to favorites using command pm add and open them from anywhere you want using command pm open.

Along with this there are also other commands like pm seteditor, pm remove, cd $(pm getpath) mentioned in documentation below.

ProjectMan gif explaining how it works

# Installation

## Using NPM

If you have NodeJS installed in your machine

npm install -g projectman


## Download Binaries

Download button for windows Download button for Linux Download button for MACOS

# Commands

pm is an alias of projectman so you can use pm <command> or projectman <command>

## Open Project

Usage :

pm open [projectName]

[projectName] is an optional parameter.

Alias: pm o, pm

v1.3.0 onwards, after typing pm open you can start typing letters and it will autocomplete the project name.

## Add project

cd /till/the/project
pm add

## Add URL

Added in v1.3.0.

pm add --url

This command can be used to save your repositories/websites/any other important links. These links will show up in normal pm open with (URL) appended to their name.

## Set Editor

pm seteditor

Sets default editor to open projects from.

Flag: --for-project

pm seteditor --for-project

Sets different editor for a specific project. E.g You can use VSCode for other projects and Atom for CoolProject1

If your TextEditor/IDE is not listed, You can select option Other from the list and give your editorCommand. Read editorCommand ref for more information.

## cd to a project without opening.

cd $(pm getpath [projectName])

[projectName] is an optional parameter. Alias : cd $(pm gp) (Note: This does not work in Windows cmd, You can use it in Windows Powershell)

## Remove Project

pm remove

Removes project from favorites.

## Remove editor

pm rmeditor

Shows list of project and removes the project specific editor from the project.

pm rmeditor --all

removes all project specific editors.


If you want to sort projects/change name of project/change path, You can type pm edit to open settings.json

Example settings:

    "commandToOpen": "code",
    "projects": [
            "name": "Project1",
            "path": "path/to/project1"
            "name": "Project2",
            "path": "path/to/project2",
            "editor": "atom"
            "name": "Project3",
            "path": "path/to/project3"

This will show three projects in pm open and project2 will be opened in Atom and other projects will be opened in Visual Studio Code

Settings Ref:

> commandToOpen :

  • This is your editor's command, this command will be used to open the file in your editor.
  • Default is code which opens in vscode.
  • This is the command that you normally use to open directories in your editor.
Editor 'commandToOpen' value
VSCode code
Atom atom
Sublime subl
Vim vim
WebStorm wstorm

> projects. name :

  • This is the name that will be visible when you type projectman open

> projects. path :

  • This should be the absolute path to your folder.

> projects. editor :

  • This is optional key. In case it doesn't exist it will read value from commandToOpen
  • You can use this to specify separate editor for a particular project.
  • You can set it by adding "editor": "<commandToOpen>" in projects array in settings.json (Example is shown above)



Command suggestions added (Thanks @jamesgeorge007 for #PR32)

. . . For More Changes read

Rust Port

@hskang9 has made a pretty cool rust port for projectman. You can check it out at:

Contributing to ProjectMan

contributions welcome to projectman

I would be extremely happy to have people contribute to ProjectMan. You can read Contribution guidelines in

Thank you for showing Interest! Do contribute and star ProjectMan次 on GitHub

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (68,065)
nodejs (3,635)
node (952)
npm (421)
command-line-tool (279)
projects (34)

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