PHPackages                             batnieluyo/agent - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. batnieluyo/agent

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

batnieluyo/agent
================

Desktop/mobile user agent parser with support for Laravel, based on Mobiledetect

2.6.0(2y ago)0131MITPHPPHP ^8.0

Since Feb 13Pushed 2y agoCompare

[ Source](https://github.com/batnieluyo/agent)[ Packagist](https://packagist.org/packages/batnieluyo/agent)[ Docs](https://github.com/batnieluyo/agent)[ GitHub Sponsors](https://github.com/jenssegers)[ Fund](https://tidelift.com/funding/github/packagist/jenssegers/agent)[ RSS](/packages/batnieluyo-agent/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (4)Versions (3)Used By (1)

Agent
=====

[](#agent)

[![Latest Stable Version](https://camo.githubusercontent.com/271d44959a3f76895957e19f56ca1d8b7bc4fd205f035e3b21cd9bcb52601025/687474703a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a656e737365676572732f6167656e742e737667)](https://packagist.org/packages/jenssegers/agent) [![Total Downloads](https://camo.githubusercontent.com/88327d027275f53f5064e0dee740bad0e13d9509c4179834668f1685e027c798/687474703a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646d2f6a656e737365676572732f6167656e742e737667)](https://packagist.org/packages/jenssegers/agent) [![Build Status](https://camo.githubusercontent.com/91af19d4b79b62b18d731bc90f41edb95103a319e3a10691b76b725e3ce7d955/687474703a2f2f696d672e736869656c64732e696f2f7472617669732f6a656e737365676572732f6167656e742e737667)](https://travis-ci.org/jenssegers/agent) [![Coverage Status](https://camo.githubusercontent.com/c43c6fbe00a271cf92f957f80891a6384d58964f5102ee1173831742a761a9d5/687474703a2f2f696d672e736869656c64732e696f2f636f766572616c6c732f6a656e737365676572732f6167656e742e737667)](https://coveralls.io/r/jenssegers/agent) [![Donate](https://camo.githubusercontent.com/d47cdb766a100070d38a702d9c7760ccc8052063484e1478a26bcd16680d33af/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f6e6174652d70617970616c2d626c75652e737667)](https://www.paypal.me/jenssegers)

A PHP desktop/mobile user agent parser with support for Laravel, based on [Mobile Detect](https://github.com/serbanghita/Mobile-Detect) with desktop support and additional functionality.

[![](https://camo.githubusercontent.com/e337eb79fd5eeb1b08baa5c4e6febccc56845dcf09c17484e2b81dcfb5bfced8/68747470733a2f2f6a656e737365676572732e636f6d2f7374617469632f6d656469612f6167656e742e706e67)](https://camo.githubusercontent.com/e337eb79fd5eeb1b08baa5c4e6febccc56845dcf09c17484e2b81dcfb5bfced8/68747470733a2f2f6a656e737365676572732e636f6d2f7374617469632f6d656469612f6167656e742e706e67)

Installation
------------

[](#installation)

Install using composer:

```
composer require jenssegers/agent
```

Laravel (optional)
------------------

[](#laravel-optional)

Add the service provider in `config/app.php`:

```
Jenssegers\Agent\AgentServiceProvider::class,
```

And add the Agent alias to `config/app.php`:

```
'Agent' => Jenssegers\Agent\Facades\Agent::class,
```

Basic Usage
-----------

[](#basic-usage)

Start by creating an `Agent` instance (or use the `Agent` Facade if you are using Laravel):

```
use Jenssegers\Agent\Agent;

$agent = new Agent();
```

If you want to parse user agents other than the current request in CLI scripts for example, you can use the `setUserAgent` and `setHttpHeaders` methods:

```
$agent->setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2');
$agent->setHttpHeaders($headers);
```

All of the original [Mobile Detect](https://github.com/serbanghita/Mobile-Detect) methods are still available, check out some original examples at

### Is?

[](#is)

Check for a certain property in the user agent.

```
$agent->is('Windows');
$agent->is('Firefox');
$agent->is('iPhone');
$agent->is('OS X');
```

### Magic is-method

[](#magic-is-method)

Magic method that does the same as the previous `is()` method:

```
$agent->isAndroidOS();
$agent->isNexus();
$agent->isSafari();
```

### Mobile detection

[](#mobile-detection)

Check for mobile device:

```
$agent->isMobile();
$agent->isTablet();
```

### Match user agent

[](#match-user-agent)

Search the user agent with a regular expression:

```
$agent->match('regexp');
```

Additional Functionality
------------------------

[](#additional-functionality)

### Accept languages

[](#accept-languages)

Get the browser's accept languages. Example:

```
$languages = $agent->languages();
// ['nl-nl', 'nl', 'en-us', 'en']
```

### Device name

[](#device-name)

Get the device name, if mobile. (iPhone, Nexus, AsusTablet, ...)

```
$device = $agent->device();
```

### Operating system name

[](#operating-system-name)

Get the operating system. (Ubuntu, Windows, OS X, ...)

```
$platform = $agent->platform();
```

### Browser name

[](#browser-name)

Get the browser name. (Chrome, IE, Safari, Firefox, ...)

```
$browser = $agent->browser();
```

### Desktop detection

[](#desktop-detection)

Check if the user is using a desktop device.

```
$agent->isDesktop();
```

*This checks if a user is not a mobile device, tablet or robot.*

### Phone detection

[](#phone-detection)

Check if the user is using a phone device.

```
$agent->isPhone();
```

### Robot detection

[](#robot-detection)

Check if the user is a robot. This uses [jaybizzle/crawler-detect](https://github.com/JayBizzle/Crawler-Detect) to do the actual robot detection.

```
$agent->isRobot();
```

### Robot name

[](#robot-name)

Get the robot name.

```
$robot = $agent->robot();
```

### Browser/platform version

[](#browserplatform-version)

MobileDetect recently added a `version` method that can get the version number for components. To get the browser or platform version you can use:

```
$browser = $agent->browser();
$version = $agent->version($browser);

$platform = $agent->platform();
$version = $agent->version($platform);
```

*Note, the version method is still in beta, so it might not return the correct result.*

License
-------

[](#license)

Laravel User Agent is licensed under [The MIT License (MIT)](LICENSE).

Security contact information
----------------------------

[](#security-contact-information)

To report a security vulnerability, follow [these steps](https://tidelift.com/security).

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 77.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

815d ago

Major Versions

0.1.0 → 2.6.02024-02-13

### Community

Maintainers

![](https://www.gravatar.com/avatar/3ea2e73f25ea629bed43a32750d3938c4fa477bc80671861fe07eb5647674da6?d=identicon)[dsalcedo](/maintainers/dsalcedo)

---

Top Contributors

[![jenssegers](https://avatars.githubusercontent.com/u/194377?v=4)](https://github.com/jenssegers "jenssegers (155 commits)")[![Skaronator](https://avatars.githubusercontent.com/u/2886913?v=4)](https://github.com/Skaronator "Skaronator (5 commits)")[![mpetty](https://avatars.githubusercontent.com/u/1807888?v=4)](https://github.com/mpetty "mpetty (4 commits)")[![JayBizzle](https://avatars.githubusercontent.com/u/340752?v=4)](https://github.com/JayBizzle "JayBizzle (3 commits)")[![ElfSundae](https://avatars.githubusercontent.com/u/526008?v=4)](https://github.com/ElfSundae "ElfSundae (3 commits)")[![peter279k](https://avatars.githubusercontent.com/u/9021747?v=4)](https://github.com/peter279k "peter279k (3 commits)")[![ThaDafinser](https://avatars.githubusercontent.com/u/533017?v=4)](https://github.com/ThaDafinser "ThaDafinser (3 commits)")[![vinkla](https://avatars.githubusercontent.com/u/499192?v=4)](https://github.com/vinkla "vinkla (3 commits)")[![loclv](https://avatars.githubusercontent.com/u/6302717?v=4)](https://github.com/loclv "loclv (2 commits)")[![jwpage](https://avatars.githubusercontent.com/u/52687?v=4)](https://github.com/jwpage "jwpage (2 commits)")[![BertKooij](https://avatars.githubusercontent.com/u/3949189?v=4)](https://github.com/BertKooij "BertKooij (2 commits)")[![sebastiaanspeck](https://avatars.githubusercontent.com/u/12570668?v=4)](https://github.com/sebastiaanspeck "sebastiaanspeck (2 commits)")[![yaoshanliang](https://avatars.githubusercontent.com/u/5028569?v=4)](https://github.com/yaoshanliang "yaoshanliang (1 commits)")[![CaddyDz](https://avatars.githubusercontent.com/u/13698160?v=4)](https://github.com/CaddyDz "CaddyDz (1 commits)")[![dan-har](https://avatars.githubusercontent.com/u/8581476?v=4)](https://github.com/dan-har "dan-har (1 commits)")[![doggieliu](https://avatars.githubusercontent.com/u/66601667?v=4)](https://github.com/doggieliu "doggieliu (1 commits)")[![evrard-c](https://avatars.githubusercontent.com/u/23173851?v=4)](https://github.com/evrard-c "evrard-c (1 commits)")[![jonathan-bird](https://avatars.githubusercontent.com/u/1510001?v=4)](https://github.com/jonathan-bird "jonathan-bird (1 commits)")[![KikoPalomares](https://avatars.githubusercontent.com/u/6002391?v=4)](https://github.com/KikoPalomares "KikoPalomares (1 commits)")[![klgd](https://avatars.githubusercontent.com/u/8554422?v=4)](https://github.com/klgd "klgd (1 commits)")

---

Tags

browserlaraveluseragentmobileuser agentplatformdesktopAgent

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/batnieluyo-agent/health.svg)

```
[![Health](https://phpackages.com/badges/batnieluyo-agent/health.svg)](https://phpackages.com/packages/batnieluyo-agent)
```

###  Alternatives

[jenssegers/agent

Desktop/mobile user agent parser with support for Laravel, based on Mobiledetect

4.8k67.8M437](/packages/jenssegers-agent)[hisorange/browser-detect

Browser &amp; Mobile detection package for Laravel.

1.1k10.1M50](/packages/hisorange-browser-detect)[al-saloul/agent

Desktop/mobile user agent parser with support for Laravel, based on Mobiledetect

1511.5k1](/packages/al-saloul-agent)[karmendra/laravel-agent-detector

Laravel wrapper for matomo-org/device-detector user agent parser

1241.6k](/packages/karmendra-laravel-agent-detector)[eprofos/user-agent-analyzer

A powerful Symfony bundle for user-agent analysis. It provides accurate detection of operating systems (Windows, MacOS, Linux, iOS, Android...), browsers (Chrome, Firefox, Safari...), and device types (Desktop, Mobile, Tablet, TV...). Supports specific version detection and includes advanced handling of special cases like WebViews and compatibility modes. Features comprehensive logging and detailed analysis results.

182.3k](/packages/eprofos-user-agent-analyzer)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
