# agendash

> Dashboard for Agenda job scheduler

Latest version **8.2.4** (published 2026-07-21) · MIT license · 0 weekly downloads

## Install

```sh
npm install agendash
pnpm add agendash
yarn add agendash
bun add agendash
```

## Health

**Score 75/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 8.2.4 |
| Published | 2026-07-21 |
| First published | 2016-02-24 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=18.0.0 |
| Dependencies | 0 |
| Unpacked size | 490.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 9705 |
| Maintainers | koresar, simison, santypk4, omgimalexis, joeframbach, vziukas, simllll |
| Keywords | agenda, dashboard, job, scheduler, admin |

## Links

- npm: https://www.npmjs.com/package/agendash
- Repository: https://github.com/agenda/agenda
- Homepage: https://github.com/agenda/agenda#readme
- Issues: https://github.com/agenda/agenda/issues
- npm.io page: https://npm.io/package/agendash

## Alternatives

- [cron](https://npm.io/package/cron.md) — 4.9M weekly downloads
- [@vercel/queue](https://npm.io/package/@vercel/queue.md) — 731.6K weekly downloads
- [create-sonicjs](https://npm.io/package/create-sonicjs.md) — 1.6K weekly downloads
- [@exellix/jobs-api](https://npm.io/package/@exellix/jobs-api.md) — 941 weekly downloads
- [@forwardimpact/libskill](https://npm.io/package/@forwardimpact/libskill.md) — 575 weekly downloads

## Recent versions

- 8.2.4 (latest) — 2026-07-21
- 8.2.3 — 2026-05-09
- 8.2.2 — 2026-04-02
- 8.2.1 — 2026-03-05
- 8.2.0 — 2026-02-25
- 8.1.2 — 2026-02-16
- 8.1.1 — 2026-02-13
- 8.1.0 — 2026-02-08
- 8.0.0 — 2026-02-03
- 7.0.0 — 2026-01-28
- 6.0.1 — 2026-01-27
- 6.0.0 — 2026-01-27
- 4.0.0 — 2023-04-11
- 3.1.0 — 2022-02-02
- 3.0.0 — 2022-01-31
- … 18 more at https://npm.io/package/agendash/versions

## README

# Agendash

A modern dashboard for [Agenda](https://github.com/agenda/agenda) job scheduler.

![Agendash Screenshot](https://raw.githubusercontent.com/agenda/agenda/main/packages/agendash/agendash.png)

![Agendash Status View](https://raw.githubusercontent.com/agenda/agenda/main/packages/agendash/agendash-status.png)

## Installation

```bash
npm install agendash agenda @agendajs/mongo-backend
```

## Quick Start

### Express

```typescript
import express from 'express';
import { Agenda } from 'agenda';
import { MongoBackend } from '@agendajs/mongo-backend';
import { createExpressMiddleware } from 'agendash';

const app = express();
const agenda = new Agenda({
  backend: new MongoBackend({ address: 'mongodb://localhost:27017/agenda' })
});

// Mount agendash at /dash
app.use('/dash', createExpressMiddleware(agenda));

app.listen(3000, () => {
  console.log('Dashboard: http://localhost:3000/dash');
});
```

### Fastify

```typescript
import Fastify from 'fastify';
import { Agenda } from 'agenda';
import { MongoBackend } from '@agendajs/mongo-backend';
import { createFastifyPlugin } from 'agendash';

const fastify = Fastify();
const agenda = new Agenda({
  backend: new MongoBackend({ address: 'mongodb://localhost:27017/agenda' })
});

// Register agendash at /dash
fastify.register(createFastifyPlugin(agenda), { prefix: '/dash' });

fastify.listen({ port: 3000 }, () => {
  console.log('Dashboard: http://localhost:3000/dash');
});
```

### Koa

```typescript
import Koa from 'koa';
import { Agenda } from 'agenda';
import { MongoBackend } from '@agendajs/mongo-backend';
import { createKoaMiddleware } from 'agendash';

const app = new Koa();
const agenda = new Agenda({
  backend: new MongoBackend({ address: 'mongodb://localhost:27017/agenda' })
});

// Mount agendash at /dash
const { router, middleware } = createKoaMiddleware(agenda, '/dash');
app.use(middleware);
app.use(router.routes());
app.use(router.allowedMethods());

app.listen(3000, () => {
  console.log('Dashboard: http://localhost:3000/dash');
});
```

### Hapi

```typescript
import Hapi from '@hapi/hapi';
import { Agenda } from 'agenda';
import { MongoBackend } from '@agendajs/mongo-backend';
import { createHapiPlugin } from 'agendash';

const agenda = new Agenda({
  backend: new MongoBackend({ address: 'mongodb://localhost:27017/agenda' })
});

const server = Hapi.server({ port: 3000 });

await server.register({
  plugin: createHapiPlugin(agenda),
  options: { basePath: '/dash' }
});

await server.start();
console.log('Dashboard: http://localhost:3000/dash');
```

## Security

**Important:** The Agendash dashboard provides full access to view, create, requeue, and delete jobs. You should **always protect it with authentication** before deploying to production.

Example with basic auth (Express):

```typescript
import basicAuth from 'express-basic-auth';

// Protect the dashboard with basic auth
app.use('/dash', basicAuth({
  users: { 'admin': 'secure-password' },
  challenge: true
}));

// Then mount agendash
app.use('/dash', expressMiddleware(agenda));
```

For production environments, consider using:
- Session-based authentication with your existing auth system
- OAuth/SSO integration
- IP-based access control (e.g., only accessible from internal network)
- A reverse proxy with authentication (e.g., nginx with auth_basic)

**Never expose the dashboard to the public internet without authentication.**

## Features

- **Job Overview**: View all jobs organized by name with status counts
- **Job States**: See jobs by state (scheduled, queued, running, completed, failed, repeating)
- **Agenda Status**: Live view of running/queued/locked jobs and configuration
- **Filtering**: Filter jobs by name, state, or search within job data
- **Job Management**: Create, requeue, and delete jobs
- **Bulk Operations**: Multi-select jobs for bulk requeue or delete
- **Job Details**: View job data, timestamps, and failure information
- **Auto-refresh**: Dashboard refreshes automatically with countdown indicator
- **Mobile Responsive**: Works on desktop and mobile devices

## Development

To run agendash in development mode with hot reloading:

```bash
# From the agendash package directory
pnpm dev
```

This starts a development server with:
- Vite dev server for frontend hot reloading
- Express API server
- In-memory MongoDB (no external database required)

## License

MIT

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