Skip to content
jann edited this page Sep 14, 2026 · 8 revisions

Plum

Self-hosted QA platform for teams doing manual and automated testing. A full test-case repository sits alongside a ready-to-use Playwright or Cucumber automation environment.

Each project picks Playwright or Cucumber when it is created, and that choice is permanent. Run tests from the CLI, the web UI, or an AI agent over MCP; track manual test runs; view session replays and export reports; schedule jobs; get Discord / Slack notifications; or have an AI Agent investigate a failing report and open a pull request with the fix.


Getting started

Guide What it covers
Installation Node/Docker requirements, npm i -g plum-e2e, the CLI-only path vs. the server
Setting Up the Server plum server start, ports, local vs. production, reverse proxy, first-user setup
Setting Up Nodes Runner nodes, the registration secret, start-on-boot, managing nodes

Writing and running tests

Guide What it covers
Writing Tests The scaffold, test.step, page objects (optional), plum create-test / create-step
Running Tests Locally npx playwright test / npx cucumber-js, tags, workers, browsers, debugging
Migrating an Existing Repo Adopting a Playwright or Cucumber repo you already have, plum migrate
Projects One organisation, many projects, the framework choice, on-disk layout, tests folder

Using the platform

Guide What it covers
Roles and Access Owner / admin / user, per-project membership, what each role can reach
Google Sign-In Turning on Google sign-in, the OAuth client, the redirect URI, disabling password login
Test Repository Suites and cases, structured steps, collaborative test runs, linking automation by tag
Reports and Session Replay The report page, DOM session replay, the step rail, the element inspector, export
Retrying Flaky Tests The max-retries setting, how retries work per framework, the flaky badge
Integrations Discord & Slack webhooks, the REST trigger endpoint for CI
AI Agent Connecting Claude/OpenAI + GitHub, analyzing a failing report, the fix-and-PR flow, the sandbox
API & MCP Minting a key, using it for CI or an MCP client, the tools, (MCP) attribution
Activity Logs The audit feed, MCP attribution, retention
Backup Instance-level database backup, the schedule, an S3-compatible target

The shape of an install

  • Server stack (Docker Compose): PostgreSQL, an Express + Socket.io backend on 3001, and the SvelteKit UI served by adapter-node on 3002. One machine runs this for the team.
  • Runner nodes: bare node processes (not containers) that register with the server and run dispatched jobs. Optional; the server has a built-in runner.
  • Projects: each has its own projects/<slug>/tests/ folder with its own package.json, runner config, and example tests, in the exact layout a standalone plum init produces.

You never need Docker or the server to write tests or run a node. See Installation.

Clone this wiki locally