Once you've connected the GitHub App, every watched repo works with no configuration: it's enabled, and screencli tests the preview URL GitHub reports on each PR. Open a repo's settings when you need to override that — add always-on smoke tests, point screencli at a different URL, get past a protected preview, or sign in before the test runs.
Prerequisites
- The GitHub App connected on at least one repo. See Get started with the GitHub App.
- Nothing here is required. Defaults (enabled, deployment URL, no login) work out of the box — configure only what your app needs.
Open a repo's settings
- Go to Settings → Integrations (screencli.sh/settings/integrations).
- Click Configure repos → on the installation card.
- Pick a repository from the Repos list. You land on its Repository settings page.
- Change what you need and click Save. You'll see Saved, and the change applies to the next PR triggered on that repo — runs already in flight aren't affected.
Each setting is independent; leave the rest at their defaults.
Run on every PR
The master enable/disable toggle for the repo.
- On (default). Every preview deployment on the repo's PRs triggers a run.
- Off. screencli ignores deployment events for that repo — no runs, no comments — without uninstalling the App. Use it to pause a noisy repo. Flip it back on any time.
Baseline tests
Smoke tests that run on every PR for the repo, in addition to the test the agent derives from the diff. Use them for the always-true checks the per-PR agent might not think to run — "the homepage still loads", "sign-in still works".
Baseline tests are entered as inline JSON (real YAML parsing is planned). Each entry pairs a short name — shown in the verdict — with a prompt written exactly like a dashboard composer assertion:
{
"baseline": [
{ "name": "smoke-homepage", "prompt": "Homepage loads with no console errors and the primary CTA is visible." },
{ "name": "smoke-signin", "prompt": "Sign in with the test account and confirm the dashboard renders." }
]
}
Field reference:
| Field | Required | What it does |
|---|---|---|
name |
Yes | Short identifier for the check, shown in the PR verdict alongside the PR-derived test. Keep it slug-like (smoke-checkout). |
prompt |
Yes | The assertion the agent verifies — a concrete, observable outcome. Same rules as Writing effective prompts. |
How baseline tests fold into the verdict. A PR with baseline tests plus the PR-derived test aggregates every check into one overall verdict: any check fail → the PR is fail; any inconclusive and no fail → inconclusive; all pass → pass. See Verdicts.
Preview deployment bypass token
For preview environments that sit behind an access gate — Vercel Protection Bypass, a Netlify site password, or similar — the browser is blocked before it reaches your app. Paste the bypass token here and screencli sends it to the preview when it opens the page.
- Stored encrypted at rest. It's never sent back to the browser after you save — the field shows
••••••••and you can leave it blank to keep the existing value. - Use Clear to wipe it.
If a run comes back inconclusive because the preview showed a login/password wall instead of your app, a missing bypass token is the usual cause — see Troubleshooting.
Preview URL pattern (optional)
By default screencli tests the URL from the PR's GitHub deployment. Set a pattern to override it — useful when the deployment URL is wrong or unstable and your previews live at a predictable, branch-named address.
Write the full URL and use any of these placeholders, substituted at run time:
| Placeholder | Replaced with |
|---|---|
{{branch}} |
The PR's head branch, with / characters turned into - (so feat/checkout → feat-checkout). |
{{sha}} |
The full head commit SHA. |
{{short_sha}} |
The first 7 characters of the head commit SHA. |
Example — a stable branch-named preview:
https://{{branch}}.myapp.dev
Leave the field blank to fall back to the deployment URL GitHub reports.
Authentication
When verifying a change requires signing in first — a change behind a login, a dashboard-only flow — fill in the Authentication section. screencli runs these steps before the main test, in the same browser session.
-
Email and Password for a dedicated test account (not a real user's credentials). The password is write-only: after saving it shows
••••••••; leave it blank to keep the stored value, or click Clear to remove it. -
Auth instructions — plain-language login steps the agent follows before the main task. Reference the stored credentials with the
{{email}}and{{password}}placeholders:Click "Sign in" in the top-right, type {{email}} into the email field, type {{password}} into the password field, click Submit, and wait for the dashboard to load.
The {{email}} and {{password}} placeholders are substituted server-side, just before the test runs — the raw credentials never appear in the agent's context beyond the instruction text you wrote, and the password itself is not forwarded to the browser sandbox as a separate value. Leave the whole section blank when no login is needed.
Notes & limits
- Changes apply to the next PR. Saving affects runs triggered after the save; a run already dispatched keeps the config it started with.
- Defaults need no configuration. A freshly connected repo is enabled and tests the GitHub deployment URL with no login — only open this page when you need to change one of those.
- Use a throwaway test account. The agent drives a real browser and can take real actions once signed in. Point it at a dedicated, low-privilege account, and prefer a preview/staging environment over production credentials.
- Preview, never production. These settings only affect how screencli reaches your preview deployment. screencli never tests a
productiondeployment. See Get started with the GitHub App.