Skip to content

Installation

jann edited this page Sep 5, 2026 · 4 revisions

Installation

Requirements

  • Node.js 22.22.1+. Needed for everything.
  • Docker — only for the web UI / server stack. Writing tests and running runner nodes need neither Docker nor the server.

Install the CLI

npm install -g plum-e2e

This installs the plum command globally. A global install is usually root-owned and is replaced wholesale on update, so Plum keeps its runtime state (logs, node registry, job payloads) in ~/.plum, not inside the package.

Two ways to use Plum

1. CLI only — no server

Good for a solo developer or a first look. You get the test scaffold, the runners, and the CLI; you do not get the Test Repository, reports UI, session replay, schedules, notifications or MCP.

mkdir my-tests && cd my-tests
plum init          # choose Playwright or Cucumber
cd tests
npx playwright test          # a Cucumber project uses: npx cucumber-js

plum init scaffolds tests/, installs the runner, and downloads browsers, so the example tests run straight away. Run the runner from tests/: that is where its config lives, and from the folder above it Playwright finds the specs without the config and stops with "did not expect test.describe() to be called here". The folder it produces is the same layout a project has on the server, so it drops into projects/<slug>/tests/ later if you add the UI. See Writing Tests and Running Tests Locally.

plum init accepts --framework playwright|cucumber to skip the prompt.

2. The server (web UI)

Run this on one machine for your team.

mkdir plum-server && cd plum-server
plum server start

The setup wizard asks a few questions, brings up the Docker stack, and prints the UI URL (http://localhost:3002 by default). On first visit the UI walks you through creating your organisation, first project and owner account. Full details in Setting Up the Server.

First-user setup

The very first account created on a fresh server becomes the owner (role: owner) — every project, every setting, account-wide. There is exactly one owner. Everyone else is added later from Settings → Users as admin or user; see Roles and Access.

That first-run flow also picks your first project's framework, Playwright or Cucumber, right there on the page — see Projects.

The /setup flow is only available while no users exist. Once the owner is created it 404s.

Updating

plum update

Updates the global plum-e2e package, then restarts every server and node registered on this machine. The web UI also shows an update banner in Settings when a newer version is on npm; it links to the GitHub releases.

Uninstalling

npm uninstall -g plum-e2e

To also remove the server's data, run plum server stop first, then delete the Docker volume (docker volume rm <project>_postgres_data) and the instance folder.

Clone this wiki locally