PHPackages                             shipfastlabs/link - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. shipfastlabs/link

ActiveComposer-plugin[Utility &amp; Helpers](/categories/utility)

shipfastlabs/link
=================

Link local packages for development by modifying composer.json and composer.lock

v1.0.3(4mo ago)15MITPHPPHP ^8.2.0CI passing

Since Feb 12Pushed 4mo agoCompare

[ Source](https://github.com/shipfastlabs/link)[ Packagist](https://packagist.org/packages/shipfastlabs/link)[ GitHub Sponsors](https://github.com/pushpak1300)[ RSS](/packages/shipfastlabs-link/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (9)Versions (6)Used By (0)

 [![Link](/docs/example.png)](/docs/example.png)

Link
====

[](#link)

Link local packages for development by modifying `composer.json` and `composer.lock`.

> **Requires [PHP 8.2+](https://php.net/releases/)** and [Composer 2.6+](https://getcomposer.org)

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

[](#installation)

Install globally so it's available in all your projects:

```
composer global require shipfastlabs/link
```

Or install per-project:

```
composer require shipfastlabs/link --dev
```

Usage
-----

[](#usage)

### Link a local package

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

```
composer link ../packages/my-package
```

This will:

- Add a `path` repository entry to your `composer.json`
- Update the `require` constraint to `*` so Composer resolves from the local path
- Run `composer update` to update `composer.lock` and symlink the package

### Link multiple packages with wildcards

[](#link-multiple-packages-with-wildcards)

```
composer link ../packages/*
```

Only link packages that are already in your `composer.lock`:

```
composer link ../packages/* --only-installed
```

### List linked packages

[](#list-linked-packages)

```
composer linked
```

### Unlink a package

[](#unlink-a-package)

```
composer unlink ../packages/my-package
```

This restores the original version constraint in `composer.json` and runs `composer update` to install the released version from Packagist.

### Unlink all packages

[](#unlink-all-packages)

```
composer unlink-all
```

How it works
------------

[](#how-it-works)

Unlike [composer-link](https://github.com/SanderSander/composer-link) which works in-memory, this plugin modifies your `composer.json` and `composer.lock` files directly:

1. **`composer link`** adds a [`path` repository](https://getcomposer.org/doc/05-repositories.md#path) to `composer.json` and runs `composer update`
2. **`composer unlink`** removes the path repository, restores the original constraint, and runs `composer update`
3. Original version constraints are tracked in `vendor/composer-link.json` so they can be restored on unlink
4. Both `require` and `require-dev` packages are supported

Development
-----------

[](#development)

```
composer lint        # Format code with Pint
composer refactor    # Run Rector refactors
composer test:types  # Static analysis with PHPStan
composer test:unit   # Unit tests with Pest
composer test        # Run the entire test suite
```

License
-------

[](#license)

Link is open-sourced software licensed under the **[MIT license](https://opensource.org/licenses/MIT)**.

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance74

Regular maintenance activity

Popularity5

Limited adoption so far

Community6

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 ~0 days

Total

5

Last Release

141d ago

Major Versions

v0.1.0 → v1.0.22026-02-12

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/31663512?v=4)[Pushpak Chhajed](/maintainers/pushpak1300)[@pushpak1300](https://github.com/pushpak1300)

---

Top Contributors

[![pushpak1300](https://avatars.githubusercontent.com/u/31663512?v=4)](https://github.com/pushpak1300 "pushpak1300 (8 commits)")

---

Tags

phpcomposerlinkdevelopmentsymlink

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/shipfastlabs-link/health.svg)

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

###  Alternatives

[franzl/studio

Develop your Composer libraries with style

1.1k639.7k16](/packages/franzl-studio)[automattic/jetpack-autoloader

Creates a custom autoloader for a plugin or theme.

576.1M123](/packages/automattic-jetpack-autoloader)[drupal/core-project-message

Adds a message after Composer installation.

2124.7M203](/packages/drupal-core-project-message)[liborm85/composer-vendor-cleaner

Composer Vendor Cleaner removes unnecessary development files and directories from vendor directory.

34412.1k1](/packages/liborm85-composer-vendor-cleaner)[gossi/composer-localdev-plugin

Composer Plugin for local development

343.3k](/packages/gossi-composer-localdev-plugin)[opengento/composer-registration-plugin

This plugin allows to compile the Magento2 components registrations on composer install/update.

101.7k](/packages/opengento-composer-registration-plugin)

PHPackages © 2026

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