Documentation PHP & Laravel
Artisan commands
Research, show, sources, and prune using stored Run JSON.
Preview and research
php artisan librarium:research 'Compare EU analytics tools' --deep --only=openai --dry-run --json
php artisan librarium:research 'Compare EU analytics tools' --deep --only=openai --max-cost=1 --json
php artisan librarium:research 'Prepare a cited report' --deep --only=openai --no-wait
--only and --skip take comma-separated sources, engines, or saved groups. --max-cost is a decimal USD cap. --dry-run makes no provider call and stores nothing. Normal research waits with progress; --no-wait queues one encrypted job and returns the Run. Unlike the JS CLI, PHP can queue quick work too.
Read stored work
php artisan librarium:show <run-id> --wait --json
php artisan librarium:show <run-id> --source=openai
php artisan librarium:sources
php artisan librarium:prune
show defaults to the latest Run when no id is supplied, observes pending tasks, and optionally waits. --source reads one result. sources reports configuration and variants offline. prune uses runs.keep_days; choose retention longer than task life because deleting a handle does not cancel upstream work.
--json emits unformatted public data your coding agent can read; keep stderr separate. The Laravel AI Tools\RunEvidence tool reads stored Runs.
See costs and limits before paid research.
Exit codes and interruption
| Code | Meaning |
|---|---|
| 0 | Done, running, planned, or successful operation |
| 2 | Invalid request |
| 3 | Not found |
| 4 | Partial Run |
| 5 | Failed Run |
| 130 | Detached |
Unexpected infrastructure failures can exit 1. Ctrl-C detaches and prints a librarium:show recovery command. Accepted tasks may continue and bill; process interruption does not authorize submitting a new paid Run. See recovery.