PHPackages                             eecli/github-addon-installer - 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. eecli/github-addon-installer

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

eecli/github-addon-installer
============================

Install Github-hosted Addons with eecli.

v1.1.1(9y ago)346.4k51

Since Sep 13Pushed 9y ago1 watchersCompare

[ Source](https://github.com/rsanchez/github_addon_installer)[ Packagist](https://packagist.org/packages/eecli/github-addon-installer)[ RSS](/packages/eecli-github-addon-installer/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (1)DependenciesVersions (8)Used By (1)

GitHub Addon Installer for ExpressionEngine
===========================================

[](#github-addon-installer-for-expressionengine)

Install and update free EE addons found on Github.

[![GitHub Addon Installer Screenshot](https://camo.githubusercontent.com/211c121c8cfe95c89cc3f815e05bd4f6c19a37ef265b18cd0ae9f4568a86c84c/687474703a2f2f662e636c2e6c792f6974656d732f3062317a3033316f326c3367325832323145315a2f53637265656e25323073686f74253230323031312d30372d3034253230617425323031322e30392e3338253230504d2e706e67)](https://camo.githubusercontent.com/211c121c8cfe95c89cc3f815e05bd4f6c19a37ef265b18cd0ae9f4568a86c84c/687474703a2f2f662e636c2e6c792f6974656d732f3062317a3033316f326c3367325832323145315a2f53637265656e25323073686f74253230323031312d30372d3034253230617425323031322e30392e3338253230504d2e706e67)

About
-----

[](#about)

How it works: it downloads a zip file from Github to your temp dir and then it unzips it to your third\_party/ folder. If the addon already exists (aka you are updating it), it will be overwritten. If the addon has an installer you will be redirected to the installer page. That's it, no other magic involved.

This addon is not meant to be run on a production environment. You are encouraged to use this addon on local and/or staging environments only. Your third\_party folder on your production environment should not be writable.

I always use this locally on a version controlled repository, where I can easily roll back any changes.

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

[](#installation)

- Copy the system/expressionengine/third\_party/github\_addon\_installer/ folder to system/expressionengine/third\_party/
- Install the module
- Make sure your system/expressionengine/cache/ and system/expressionengine/third\_party/ (or your user-defined third\_party) directories are writable

Updating
--------

[](#updating)

This addon does not use traditional version releases, but rather rolling releases, as new addons are added to and removed from the manifest. You are encouraged to use Github Addon Installer to update itself.

Requirements
------------

[](#requirements)

- ExpressionEngine 2.6+
- PHP 5.2+
- \*nix server (no Windows/IIS)

Usage
-----

[](#usage)

Go to Add-Ons &gt; Modules &gt; Github Addon Installer. You are shown an alphabetical list of all the eligible addons. You can filter this list by status (Installed or Not Installed) or by author. You can also type in keywords to quickly find an addon by name using a fuzzy search.

Click the "Install" button to install an addon.

Config
------

[](#config)

If you wish to change your temp dir location, you can add this to your EE config file:

```
$config['github_addon_installer_temp_path'] = '/path/to/dir/'; # default is system/expressionengine/cache/github_addon_installer/

```

You can disable Github Addon Installer with a config item. This is useful for disabling in production environments.

```
$config['github_addon_installer_disabled'] = $_SERVER['HTTP_HOST'] === 'my-production-site.com';

```

Adding an Addon to the Manifest
-------------------------------

[](#adding-an-addon-to-the-manifest)

The list of eligible addons is stored in github\_addon\_installer/config/manifest.js. This file contains a JSON object. To add something to this list, fork this project, add repos to the list, and submit a pull request. The key of your manifest entry should be the short name of your add-on. The manifest is indented with two spaces, please adhere to that. Please remember that unlike PHP, you cannot leave a trailing comma in a JSON array/object.

Manifest entry examples:

If your repo directory structure is like:

```

└── my_addon
    └── pi.my_addon.php

```

Manifest Entry:

```
"my_addon":{
  "user": "username",
  "repo": "reponame"
}

```

If your repo directory structure is like this (just the bare addon file in the root of the repo):

```

└── pi.my_addon.php

```

Manifest Entry:

```
"my_addon": {
  "user": "username",
  "repo": "reponame",
  "add_folder": true,
  "stars": 10
}

```

If your repo directory structure is like:

```

└── system
    └── expressionengine
        └── third_party
            └── my_addon
                └── pi.my_addon.php

```

Manifest Entry:

```
"my_addon": {
  "user": "username",
  "repo": "reponame",
  "addon_path": "system/expressionengine/third_party/",
  "stars": 10
}

```

If your repo directory structure is like:

```

├── ee2
│   └── third_party
│       └── my_addon
│           └── pi.my_addon.php
└── themes
    └── third_party
        └── my_addon
            └── my_addon.css

```

Manifest Entry:

```
"my_addon": {
  "user": "username",
  "repo": "reponame",
  "addon_path": "ee2/third_party/",
  "theme_path": "themes/third_party/"
}

```

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity30

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 91.8% 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 ~109 days

Recently: every ~126 days

Total

7

Last Release

3608d ago

### Community

Maintainers

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

---

Top Contributors

[![rsanchez](https://avatars.githubusercontent.com/u/227340?v=4)](https://github.com/rsanchez "rsanchez (112 commits)")[![curtisblackwell](https://avatars.githubusercontent.com/u/468029?v=4)](https://github.com/curtisblackwell "curtisblackwell (9 commits)")[![iainsaxon](https://avatars.githubusercontent.com/u/546517?v=4)](https://github.com/iainsaxon "iainsaxon (1 commits)")

### Embed Badge

![Health badge](/badges/eecli-github-addon-installer/health.svg)

```
[![Health](https://phpackages.com/badges/eecli-github-addon-installer/health.svg)](https://phpackages.com/packages/eecli-github-addon-installer)
```

###  Alternatives

[wp-cli/wp-cli

WP-CLI framework

5.0k17.2M320](/packages/wp-cli-wp-cli)[consolidation/annotated-command

Initialize Symfony Console commands from annotated command class methods.

22569.8M19](/packages/consolidation-annotated-command)[chi-teck/drupal-code-generator

Drupal code generator

26947.8M5](/packages/chi-teck-drupal-code-generator)[seld/cli-prompt

Allows you to prompt for user input on the command line, and optionally hide the characters they type

24725.8M17](/packages/seld-cli-prompt)[illuminate/console

The Illuminate Console package.

12944.1M5.1k](/packages/illuminate-console)[php-tui/php-tui

Comprehensive TUI library heavily influenced by Ratatui

589747.0k6](/packages/php-tui-php-tui)

PHPackages © 2026

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