PHP 8.5+ deterministic generator of coherent synthetic browser User-Agent profiles for tests, fixtures, and controlled client configuration.
- Checksummed bundled dataset with provenance on every result
- Seeded, weighted, uniform, and round-robin profile selection
- Immutable fluent request builder and bounded unique batch generation
generatePool()for a list of ready-to-use User-Agent strings- Stable profile identity for logs and fixtures
- Non-interactive CLI with JSON and NDJSON output
- PHP
>= 8.5 ext-jsonjooservices/dto ^3.0
composer require jooservices/useragent:^4.0use JOOservices\UserAgent\Generator;
$generator = Generator::create();
$pool = $generator->builder()
->chrome()
->windows()
->desktop()
->seed(42)
->generatePool(10);- Reuse one
Generatorinstance in long-running processes; it loads and validates the bundled dataset once. - A User-Agent string is synthetic metadata, not browser emulation.
- The package performs no network access and does not accept a caller-provided dataset path.
make build
make install
make lint
make test
make ciMIT — see LICENSE.