Development Symlink Manager for PHP/Composer projects.
Automatically replaces Composer dependencies with symlinks to local development
versions, letting you test changes across interconnected PHP packages instantly —
without publishing to Packagist or running composer update by hand.
- Scans a directory tree for PHP packages (anything with
composer.json) - Classifies each as a library (
type: library) or an application/project - Runs
git pullon every project that is a git repository - Runs
composer updatein each project - Replaces
vendor/entries with symlinks pointing to the local library directories
# Scan current directory
dev-symlink-manager
# Scan a specific root directory
dev-symlink-manager /path/to/your/projects~/Projects/
vitexsoftware-foo/ ← library (type: library in composer.json)
my-app/ ← project (depends on vitexsoftware/foo)
Run dev-symlink-manager ~/Projects/ and my-app/vendor/vitexsoftware/foo becomes a
symlink to ~/Projects/vitexsoftware-foo/. Edits you make to the library are
immediately visible inside the project — no republishing, no waiting.
To restore the original state, simply run composer update inside the project.
Composer will reinstall the real packages from Packagist and remove the symlinks.
- Python 3
composeravailable inPATHgitavailable inPATH(for the git-pull phase)
wget -qO- https://repo.vitexsoftware.cz/keyring.gpg | sudo tee /usr/share/keyrings/vitexsoftware.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/vitexsoftware.gpg] https://repo.vitexsoftware.cz $(lsb_release -sc) main" \
| sudo tee /etc/apt/sources.list.d/vitexsoftware.list
sudo apt update && sudo apt install dev-symlink-managersudo install -m 755 dev-symlink-manager.py /usr/local/bin/dev-symlink-managerMIT — © 2026 Vítězslav Dvořák / VitexSoftware