# @best/agent

> Best Agent

Latest version **17.0.0** (published 2026-05-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install @best/agent
pnpm add @best/agent
yarn add @best/agent
bun add @best/agent
```

## Health

**Score 45/100 (D)** — status: active.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

## Facts

| | |
|---|---|
| Version | 17.0.0 |
| Published | 2026-05-19 |
| First published | 2019-07-26 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | alrra, sf-v |
| Keywords | Best, performance |

## Links

- npm: https://www.npmjs.com/package/@best/agent
- npm.io page: https://npm.io/package/@best/agent

## Alternatives

- [mobx-react](https://npm.io/package/mobx-react.md) — 2.8M weekly downloads
- [rc-tree](https://npm.io/package/rc-tree.md) — 2.6M weekly downloads
- [@react-oauth/google](https://npm.io/package/@react-oauth/google.md) — 1.3M weekly downloads
- [@wagmi/connectors](https://npm.io/package/@wagmi/connectors.md) — 877.0K weekly downloads
- [vee-validate](https://npm.io/package/vee-validate.md) — 836.4K weekly downloads

## Recent versions

- 17.0.0 (latest) — 2026-05-19
- 4.0.0-alpha15 (canary) — 2019-10-29
- 16.1.0 — 2026-02-05
- 16.0.0 — 2025-09-12
- 15.0.0 — 2025-06-03
- 14.0.0 — 2024-12-13
- 13.0.0 — 2024-08-13
- 12.0.2 — 2024-04-05
- 12.0.1 — 2024-04-05
- 12.0.0 — 2024-04-04
- 11.0.0 — 2023-11-24
- 10.0.0 — 2023-11-14
- 10.0.0-alpha.0 — 2023-11-13
- 9.0.1 — 2023-10-25
- 9.0.0 — 2023-07-31
- … 50 more at https://npm.io/package/@best/agent/versions

## README

# Best Hub

A Best agent is a machine used to run BEST tests in an isolated environment, ensuring nothing changes. The agent usually runs with an specific best runner (ex: `@best/runner-headless` or `@best/runner-webdriver`) with the specific config

## Starting the agent

## Registration with a hub

When the best agent starts, if `env.HUB_CONFIG` is set, it will try to auto register with the specified hub.

`env.HUB_CONFIG` is a JSON string representing an object in the following form:

```js
const hubConfig = {
    hub: {
        // Hub Connection settings.
        host: 'http://localhost:6000',
        authToken: 'agent token used for authentication with the hub',
        pingTimeout: 180000, // Optional: 180000ms (3 minutes) is the default ping timout.
    },
    agentConfig: {
        spec: {
            // Only benchmarks with this spec can run in this agent.
            browser: 'chrome',
            version: '76',
        },
        host: 'http://localhost:5000', // Required. Url used by the hub to connect to this agent.
        options: { path: '/best' }, // Connection Options
        remoteRunner: '@best/runner-headless', // Required. The runner which this agent will use when running the job.
        remoteRunnerConfig: {}, // Required (may be an empty object). The Runner config for this agent.
    },
};

// set env.HUB_CONFIG=JSON.stringify(hubConfig)
```

### Communication registration process between the agent and the hub

When the agent starts, with a hub config, it will start the communication with the hub in the following protocol:

1. Every `hubConfig.pingTimeout` the agent will do a ping request to the hub, and the hub can reply with
    1. registered=false. In this case the hub will make a request to register with the hub (2)
    2. registered=true. Nothing to do, the hub already has this agent registered.
    3. authentication failed. Any further communication is suspended since the connection token is invalid.
2. Register agent with hub: the hub will return a status.code 201 in case of success, a different status code on failure to register the agent.

---
_Source: https://npm.io/package/@best/agent · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
