Guides

Configuration

WorkbenchOptions shared by every adapter — queues, auth, basePath, alerts, readonly, and more.

Every adapter accepts the same options object:

TypeScript
workbench({
  queues: [emailQueue],
  basePath: "/jobs",
  auth: { username: "admin", password: "secret" },
  title: "My Queues",
  readonly: false,
  tags: ["tenantId", "region"],
  alerts: { /* ... */ },
});

Options reference

OptionTypeDescription
queuesQueue[]BullMQ Queue instances to display. Required unless redis is set.
redisstring | RedisOptionsRedis connection for auto-discovery.
prefixstringBullMQ key prefix during auto-discovery. Default: "bull".
maxQueuesnumberCap on discovered queues. Default: 100.
auth{ username, password }HTTP basic auth. Strongly recommended in production.
titlestringDashboard title. Default: "Workbench".
logostringLogo URL in the nav.
basePathstringOverride base path detection. Required for Elysia, Koa, Next.js, TanStack Start, Astro, Nuxt, h3, and Adonis.
readonlybooleanDisable retry, remove, promote, and other write actions.
tagsstring[]Fields from job.data to extract as filterable tags.
alertsAlertsOptionsSelf-hosted alerting. See Alerts.

Advanced: direct core usage

Most users should use a framework adapter. For unsupported frameworks, @getworkbench/core exposes:

  • createFetchHandler — returns a web-standard (req: Request) => Response handler for Fetch-native runtimes
  • buildRouteTable — Node HTTP route table for Express-style frameworks
  • WorkbenchCore.fromOptions — programmatic core with Redis auto-discovery

See the @getworkbench/core package for entry points including @getworkbench/core/ui for embedding the React dashboard in a custom Vite app.

TypeScript version

  • Node 18+ (Bun 1.1+ for Elysia and Bun adapters)
  • TypeScript 4.x or 5.x for main adapters
  • TypeScript 5.0+ required if you import from @getworkbench/core/hono directly