node package manager
Love JavaScript? Your insights can make it even better. Take the 2017 JavaScript Ecosystem Survey »


NPM version Dependency Status


A command line utility to manage multiple git-based projects, when each one of them has a different remote repositories or possibly more then one remote repository.

If you are working with Node.js npm-workspace is the perfect companion to this utility


Experimental: use at your own risk


  • Need the git executable in the PATH
  • Since this program is based on Node.js, you will need to install Node.js first
  • To install: npm install -g git-workspace


Definition: We will call workspace a directory containing a set of projects.

├── prj1
├── prj2
├── prj3
└── workspace.json

To get started create a workspace.json in your workspace dir. It will look like this:

  "repositories": {
    "default": {
      "prj1": "git+ssh://"
    "github": {
      "prj2": "git+ssh://"
      "prj3": "git+ssh://"

Repositories are aggregated into groups (in the example above default and github). The default group` provides the default remote repo if none is specified for a given project and is the one to be picked when no specific group is specified in the command line.


$ cd workspace
$ git-workspace clone github

Will clone the remote group github (prj1, prj2, prj3) into the workspace. Project directories must be empty for the clone to succeed.


$ cd workspace
$ git-workspace push

Will push the group default (prj1) to the remote repo.


$ cd workspace
$ git-workspace pull github

Will pull the changes of the group github (prj1, prj2, prj3) from the remote repo.