Drop-in reporter
Add @nijam/pw-reporter (Playwright), pytest-nijam (pytest), or @nijam/vitest-reporter
(Vitest). It’s fail-soft: if Nijam is unreachable it logs a warning and never breaks your CI.
Nijam collects every test run from your CI (Playwright, pytest, or Vitest), stores its history, and surfaces the things a raw test report can’t: which tests are flaky, which ones regressed, and the failures behind every red build, all in one dashboard. You add a reporter; Nijam does the rest.
Drop-in reporter
Add @nijam/pw-reporter (Playwright), pytest-nijam (pytest), or @nijam/vitest-reporter
(Vitest). It’s fail-soft: if Nijam is unreachable it logs a warning and never breaks your CI.
Run history
Every run is stored with its commit, branch, PR, CI link, and author, so you can see how a test behaves over time, not just on the last run.
Flakiness scoring
Nijam spots tests that pass and fail on the same code and ranks them, so you fix the noisiest ones first.
Failures & source
Error logs and the failing line are captured for every framework; Playwright failure traces stream straight to storage. Test source is captured so the detail page renders inline with its history.
Using Cursor, Claude Code, Copilot, or any other AI coding assistant? Pick your framework, paste the prompt, and it’ll install and wire up the reporter for you - just swap in your project ID from the dashboard.
Add the Nijam Playwright reporter (@nijam/pw-reporter) to this project.22 collapsed lines
1. Install @nijam/pw-reporter as a dev dependency, using whichever package manager this repo already uses (npm i -D / yarn add -D / pnpm add -D).
2. In playwright.config.ts, add it to the `reporter` array WITHOUT removing any existing reporters:
reporter: [ ['@nijam/pw-reporter', { apiKey: process.env.NIJAM_API_KEY, projectId: 'YOUR_PROJECT_ID', }], ]
3. Read the API key from process.env.NIJAM_API_KEY - never hardcode it. Remind me to set NIJAM_API_KEY as a CI secret, and to add it to .env.local for local runs.
4. Do not change any test code. The reporter is fail-soft (it never breaks CI) and auto-detects commit, branch, PR, and CI metadata from the environment.
Get YOUR_PROJECT_ID from my project in the Nijam dashboard: https://www.nijam.devReporter docs: https://docs.nijam.dev/reporter/playwright/configuration/Add the Nijam pytest plugin (pytest-nijam) to this project.20 collapsed lines
1. Install pytest-nijam as a dev dependency, using whichever tool this repo already uses (pip install pytest-nijam / poetry add --group dev pytest-nijam / uv add --dev pytest-nijam).
2. In pytest.ini (or [tool.pytest.ini_options] in pyproject.toml), set the project id:
[pytest] nijam_project_id = YOUR_PROJECT_ID
3. The plugin auto-loads - do NOT change any test code. Read the API key from the NIJAM_API_KEY environment variable; remind me to set it as a CI secret and to add it to my local environment for local runs.
4. The plugin is fail-soft (it never breaks the test run) and auto-detects commit, branch, PR, and CI metadata. It captures the error log and the failing line for each failure.
Get YOUR_PROJECT_ID from my project in the Nijam dashboard: https://www.nijam.devReporter docs: https://docs.nijam.dev/reporter/pytest/configuration/Add the Nijam Vitest reporter (@nijam/vitest-reporter) to this project.24 collapsed lines
1. Install @nijam/vitest-reporter as a dev dependency, using whichever package manager this repo already uses (npm i -D / yarn add -D / pnpm add -D).
2. In vitest.config.ts, import the reporter and add it to test.reporters WITHOUT removing existing reporters, and enable includeTaskLocation:
import NijamReporter from '@nijam/vitest-reporter';
export default defineConfig({ test: { reporters: ['default', new NijamReporter({ apiKey: process.env.NIJAM_API_KEY, projectId: 'YOUR_PROJECT_ID', })], includeTaskLocation: true, }, });
3. Read the API key from process.env.NIJAM_API_KEY - never hardcode it. Remind me to set NIJAM_API_KEY as a CI secret, and to add it to .env.local for local runs.
4. Do not change any test code. The reporter is fail-soft (it never breaks CI) and auto-detects commit, branch, PR, and CI metadata. It captures the error log and the failing line for each failure.
Get YOUR_PROJECT_ID from my project in the Nijam dashboard: https://www.nijam.devReporter docs: https://docs.nijam.dev/reporter/vitest/configuration/Prefer to wire it up by hand? The reporter installation guide walks through the same steps.