(open source, local-first, zero-config, без магии)
💡Если вы одновременно разрабатываете несколько сервисов / worktree / фич-веток и автоматически запускаете в них сервера или e2e тесты, вы знаете боль:
порты постоянно конфликтуют, их надо выделять или в ручную или рандомом, они прыгают, сервисы начинают за них бороться и постоянно натыкаются на уже занятый порт, а через пару дней уже не помнишь — что у тебя где крутится.
Я уткнулся в это в параллельной разработке с ai-агентами — и сделал простую утилиту, которая раздаёт и закрепляет порты за директориями.
🔌 Установка:
$ brew tap dapi/tap; brew install port-selector
или
$ curl -sSL https://raw.githubusercontent.com/dapi/port-selector/main/install.sh | sh
🖥 Использование:
$ cd ~/projects/project-a
$ npm run dev -- --port $(port-selector)
$ port-selector
3000
$ cd ~/projects/project-b
$ port-selector
3001
$ cd ~/projects/project-a
$ port-selector
3000 # Тот же порт!
$ port-selector --list
PORT STATUS DIRECTORY
3000 busy ~/projects/project-a
3001 busy ~/projects/project-b
3002 free
...
👆️️Таким образом:
- автоматически выделяется свободный порт из предустановленного пула
- порт «прилипает» к проекту по пути.
- понимаются пути портов спрятанных за docker-proxy
Тулза маленькая — сделана, чтобы вообще перестать думать о портах.
🙏 Фидбек, идеи и «у меня всё по-другому» — приветствуются.
https://github.com/dapi/port-selector