# Werk vanuit je terminal.

Een klein Node.js-programma voor zoeken, browserlogin en publiceren. Geen extra pakketten nodig.

## Download de CLI

Gebruik Node.js 22 of nieuwer. Download het bestand en voer een zoekopdracht uit.

```
curl --fail --output wab.mjs https://werkenaanboord.nl/cli/wab.mjs
node wab.mjs jobs --role schipper --limit 5
```

- [Download wab.mjs](https://werkenaanboord.nl/cli/wab.mjs)

## Vanuit deze repository

De repository biedt dezelfde CLI via public/cli/wab.mjs. Er is geen gepubliceerd npm-pakket nodig.

```
npm run cli -- jobs --role schipper --json
```

## Zoeken en details lezen

Vervang de ID’s door waarden uit een zoekresultaat. Gebruik --cursor met next_cursor om verder te bladeren.

```
node wab.mjs taxonomy --json
node wab.mjs jobs --role schipper --work-type relief --available-from 2026-10-01 --available-to 2026-10-31 --json
node wab.mjs job VACATURE-ID --json
node wab.mjs workers --role schipper --needed-from 2026-10-12 --needed-to 2026-10-19 --json
node wab.mjs worker PROFIEL-ID --json
```

## Inloggen

Open de getoonde link in een browser op dezelfde computer. Log in en keur de gevraagde toegang goed.

Voor profielen gebruik je --scope profile:write. Meerdere scopes mogen tussen aanhalingstekens, gescheiden door spaties.

De login gebruikt OAuth met PKCE en de gepubliceerde CLI-clientmetadata. De lokale callback gebruikt poort 43821.

Tokens staan in ~/.config/werken-aan-boord met beperkte bestandsrechten. De CLI vernieuwt verlopen tokens. Bij een geweigerde vernieuwing log je opnieuw in.

```
node wab.mjs login --scope jobs:write
node wab.mjs me --json
```

## Voorbereiden en publiceren

Vervang de voorbeeldgegevens en de sleutel. Bewaar draft.json tot de publicatie is afgerond.

Na een onzekere netwerkuitkomst herhaal je precies dezelfde publicatie, met dezelfde sleutel. De CLI start geen automatische schrijfretry.

Gebruik prepare availability en publish availability voor een profiel met de eerste beschikbaarheid.

```
node wab.mjs prepare job --file vacature.json --json > draft.json
cat draft.json
# Alleen na akkoord op de volledige preview:
node wab.mjs publish job --file draft.json --confirm --idempotency-key EEN-UNIEKE-SLEUTEL --json
```

- [Voorbeeld vacature.json](https://werkenaanboord.nl/examples/vacature.json)

- [Voorbeeld profiel.json](https://werkenaanboord.nl/examples/profiel.json)

## Voor scripts en agents

De CLI doet één aanvraag per zoekopdracht. Verwerk next_cursor in je script voor alle pagina’s.

Beheeracties zoals pauzeren en verwijderen zijn beschikbaar via REST en MCP.

| Optie | Gedrag |
| --- | --- |
| --json | Volledig API-antwoord op stdout; meldingen op stderr |
| --help | Opdrachten en zoekfilters |
| --confirm | Bevestigt de preview; voeg dit alleen toe na akkoord |
| WAB_TOKEN | Bestaand OAuth-token; krijgt voorrang op lokale login |
| WAB_BASE_URL | Server-origin; HTTPS of lokale HTTP voor ontwikkeling |
| WAB_CONFIG_DIR | Andere map voor lokale tokens |
| Exitcode 1 | Validatie-, login-, netwerk- of API-fout |

- [API-beheeracties](https://werkenaanboord.nl/docs/api#schrijven)

## Lokale login verwijderen

Dit verwijdert de lokale tokens. Het trekt een elders gekopieerd token niet in. Verwijder ook WAB_TOKEN als je die gebruikt.

```
node wab.mjs logout
```
