PHPackages                             itsahappymedium/gpm - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. itsahappymedium/gpm

ActiveLibrary[CLI &amp; Console](/categories/cli)

itsahappymedium/gpm
===================

A PHP Command Line tool that makes it easy to download dependencies from GitHub.

v0.1.1(3y ago)31.3k↓20%[4 issues](https://github.com/itsahappymedium/gpm/issues)MITPHPPHP ^7.3|^8.0

Since Sep 14Pushed 2y ago1 watchersCompare

[ Source](https://github.com/itsahappymedium/gpm)[ Packagist](https://packagist.org/packages/itsahappymedium/gpm)[ Docs](https://github.com/itsahappymedium/gpm)[ RSS](/packages/itsahappymedium-gpm/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (2)Versions (10)Used By (0)

Git Package Manager
===================

[](#git-package-manager)

[![packagist package version](https://camo.githubusercontent.com/da2ccc8a96db8883d93ac3490495056c8b0654c7d56c93560698bd8dfbddea9c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6974736168617070796d656469756d2f67706d2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/itsahappymedium/gpm)[![packagist package downloads](https://camo.githubusercontent.com/d196a41980b81a44e1d945d66227c2133136f247b3e08300a075acaf0425a0ca/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6974736168617070796d656469756d2f67706d2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/itsahappymedium/gpm)[![license](https://camo.githubusercontent.com/e382b7f0efde831631a0d7338659d6b0404f25ba446d3d62b68d48cc678f7040/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6974736168617070796d656469756d2f67706d2e7376673f7374796c653d666c61742d737175617265)](license.md)

A PHP Command Line tool that makes it easy to download dependencies from GitHub.

Use-Case
--------

[](#use-case)

When building a site in PHP, the two main options to downloading and installing front-end frameworks is to either use NPM/Yarn/Bower (Which require Node), or take the source of the framework and include it in the project manually (and committing that code to your repo). The goal with this tool is to eliminate the need for Node as well as having to commit the framework's code to your project's repo.

Installation
------------

[](#installation)

### To a package (local)

[](#to-a-package-local)

```
composer require-dev itsahappymedium/gpm
./vendor/bin/gpm help

```

### To your system (global)

[](#to-your-system-global)

```
composer global require itsahappymedium/gpm
gpm help

```

Usage
-----

[](#usage)

GPM will read a list of dependencies from a `gpm.json` file that is structured like so:

```
{
  "dependencies": {
    "cowboy/jquery-throttle-debounce": "1.1",
    "derek-watson/jsuri": "1.3.1",
    "kazzkiq/balloon.css": "1.0.0",
    "kraaden/autocomplete": "#c43f2a7",
    "leongersen/nouislider": "14.7.0",
    "patrickkunka/easydropdown": "4.2.0",
    "zenorocha/clipboard.js": "2.0.8"
  }
}
```

Package names are `/`. So if you wanted to install , the package name would be `kraaden/autocomplete`.

Package versions can be a tag name, `dev-`, `#`, or a URL (Zip files will be extracted). If a package version isn't found using the version/tag specified, it will try again with a `v` prepended (For example, if `1.3.1` doesn't exist, it will also try `v1.3.1`).

### `gpm install [--save/-s] [--path/-p ] [--install-path/-i ] [package]`

[](#gpm-install---save-s---path-p-path---install-path-i-path-package)

If the `package` argument is passed, it will simply download and extract that package (also saving it to `gpm.json` if the `--save` or `-s` option is set), otherwise if no arguments are passed, all packages currently defined in `gpm.json` will be downloaded and extracted.

Set the `--path` or `-p` option to define a path to where the `gpm.json` file is located (Defaults to the current directory).

Set the `--install-path` or `-i` option to define a path to download and extract packages to (Defaults to `gpm_modules` in the current directory).

Set the `--ignore-errors` or `-c` option to ignore any errors that occur and continues with installing the rest of the packages.

Set the `--ext` or `-e` option to define file extensions to extract from archives otherwise all files will be extracted (Separate multiple extensions with a comma).

### `gpm uninstall [--save/-s] [--path/-p ] [--install-path/-i ] `

[](#gpm-uninstall---save-s---path-p-path---install-path-i-path-package)

Deletes a package from the `gpm_modules` directory (or whatever directory the `--install-path` or `-i` option is set to) (also removing it from `gpm.json` if the `--save` or `-s` option is set).

### `gpm versions `

[](#gpm-versions-package)

Lists the versions available for the package passed to the `package` argument.

### `gpm init [--path/-p ]`

[](#gpm-init---path-p-path)

Generates a `gpm.json` file in the current directory (or whatever directory the `--path` or `-p` option is set to).

### `gpm help`

[](#gpm-help)

Displays information on how to use GPM.

Defining Settings with JSON
---------------------------

[](#defining-settings-with-json)

You can set the `install-path` and/or `ext` options by defining them in your JSON file like so:

```
{
  "dependencies": {
    "kazzkiq/balloon.css": "1.0.0",
    "kraaden/autocomplete": "#c43f2a7"
  },
  "settings": {
    "gpm": {
      "ext": ["js", "css", "scss"],
      "install-path": "frontend_dependencies"
    }
  }
}
```

Both `install-path` and `ext` settings accept a string or an array of strings. The `install-path` defined here is relative to the JSON file.

Related
-------

[](#related)

- [FEC](https://github.com/itsahappymedium/fec) - A PHP Command Line tool that makes it easy to compile, concat, and minify front-end Javascript and CSS/SCSS dependencies.

License
-------

[](#license)

MIT. See the [license.md file](license.md) for more info.

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~58 days

Recently: every ~101 days

Total

8

Last Release

1298d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d00a1552cca7dd6829f8ba90c41950257a338a0b25d1847aeed2d907ee554fb1?d=identicon)[kodie](/maintainers/kodie)

![](https://www.gravatar.com/avatar/717c2c26c5b50d96ff21e5c0d14591b74c01a0f6d7541e4598a8ef938c18b2af?d=identicon)[itsahappymedium](/maintainers/itsahappymedium)

---

Top Contributors

[![kodie](https://avatars.githubusercontent.com/u/603949?v=4)](https://github.com/kodie "kodie (20 commits)")

---

Tags

cligitpackagepackage-managerphpclipackagemanagergit

### Embed Badge

![Health badge](/badges/itsahappymedium-gpm/health.svg)

```
[![Health](https://phpackages.com/badges/itsahappymedium-gpm/health.svg)](https://phpackages.com/packages/itsahappymedium-gpm)
```

###  Alternatives

[nunomaduro/termwind

It's like Tailwind CSS, but for the console.

2.5k239.8M286](/packages/nunomaduro-termwind)[projektgopher/whisky

A simple CLI tool for managing a project's git hooks across multiple members.

241281.3k20](/packages/projektgopher-whisky)[guanguans/ai-commit

Automagically generate conventional git commit message with AI. - 使用 AI 自动生成约定式 git 提交信息。

39231.2k10](/packages/guanguans-ai-commit)[sheaf/cli

A CLI tool for Sheaf UI

269.3k1](/packages/sheaf-cli)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
