feat(tools): install every discovered portal CLI with one command (#540) (#541)

README and SETUP.md hardcoded the six shipped portals in four PowerShell/Bash
loops, so a portal added by /add-portal or borrowed from another fork was
skipped on a fresh clone. tools/install_portal_clis.py uses CI's discover-clis
glob, isolates per-CLI failures, and skips manifests with lifecycle scripts or
trustedDependencies.
This commit is contained in:
落尘 authored and GitHub committed 2026-10-15 11:32:17 +02:00
1 parent eaa73e55ab
commit 8a3094f138
5 files changed
+230 -31

No files matched your search

+3 -15
View File
@@ -182,24 +182,12 @@ Or manually: fork on GitHub, then clone your fork.
## 3. Install job search CLI dependencies
Run these from the repository root.
- PowerShell:
```powershell
$tools = @("jobbank-search", "jobdanmark-search", "jobindex-search", "jobnet-search", "linkedin-search", "freehire-search")
foreach ($tool in $tools) {
Push-Location ".agents/skills/$tool/cli"
bun install
Pop-Location
}
```
- Bash / zsh / Git Bash:
```bash
for tool in jobbank-search jobdanmark-search jobindex-search jobnet-search linkedin-search freehire-search; do
(cd .agents/skills/$tool/cli && bun install)
done
python3 tools/install_portal_clis.py # Windows: python tools\install_portal_clis.py
```
It runs `bun install` in every portal CLI under `.agents/skills/*/cli/` - discovered, not listed, so a portal you add with `/add-portal` or copy from another fork is included on a fresh clone. A CLI whose `package.json` declares an install-time lifecycle script is skipped and reported rather than run. `--dry-run` shows what it would install.
For `linkedin-search` and `freehire-search` the install is optional: both have zero runtime dependencies and run with plain `bun`; `bun install` only pulls TypeScript dev types.
If you're outside Denmark, you can generate an equivalent search skill for your local job board with `/add-portal` — it scaffolds the same CLI structure for any public portal and test-runs a live query before registering. See the "Job search tools" section in the README.