Next Cache Components Optimizer
sanity-io/ui
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation).
Set up test-proxy-recorder for any Playwright project. An agent skill from asmyshlyaev177/test-proxy-recorder.
$ npx skills add asmyshlyaev177/test-proxy-recorder --skill proxy-setup -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install asmyshlyaev177/test-proxy-recorder proxy-setup --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/asmyshlyaev177/test-proxy-recorder.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/test-proxy-recorder/skills/proxy-setup .claude/skills/proxy-setup && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "proxy-setup" agent skill from https://github.com/asmyshlyaev177/test-proxy-recorder/tree/master/packages/test-proxy-recorder/skills/proxy-setup into .claude/skills/proxy-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proxy-setup", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/asmyshlyaev177/test-proxy-recorder/tree/master/packages/test-proxy-recorder/skills/proxy-setupType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add asmyshlyaev177/test-proxy-recorder --skill proxy-setup -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install asmyshlyaev177/test-proxy-recorder proxy-setup --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/asmyshlyaev177/test-proxy-recorder.git skills-src && mkdir -p .agents/skills && cp -r skills-src/packages/test-proxy-recorder/skills/proxy-setup .agents/skills/proxy-setup && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "proxy-setup" agent skill from https://github.com/asmyshlyaev177/test-proxy-recorder/tree/master/packages/test-proxy-recorder/skills/proxy-setup into .agents/skills/proxy-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proxy-setup", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add asmyshlyaev177/test-proxy-recorder --skill proxy-setup -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install asmyshlyaev177/test-proxy-recorder proxy-setup --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/asmyshlyaev177/test-proxy-recorder.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/packages/test-proxy-recorder/skills/proxy-setup .cursor/skills/proxy-setup && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "proxy-setup" agent skill from https://github.com/asmyshlyaev177/test-proxy-recorder/tree/master/packages/test-proxy-recorder/skills/proxy-setup into .cursor/skills/proxy-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proxy-setup", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/asmyshlyaev177/test-proxy-recorder.git --path packages/test-proxy-recorder/skills/proxy-setup--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add asmyshlyaev177/test-proxy-recorder --skill proxy-setup -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install asmyshlyaev177/test-proxy-recorder proxy-setup --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/asmyshlyaev177/test-proxy-recorder.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/packages/test-proxy-recorder/skills/proxy-setup .gemini/skills/proxy-setup && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "proxy-setup" agent skill from https://github.com/asmyshlyaev177/test-proxy-recorder/tree/master/packages/test-proxy-recorder/skills/proxy-setup into .gemini/skills/proxy-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proxy-setup", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install asmyshlyaev177/test-proxy-recorder proxy-setupInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add asmyshlyaev177/test-proxy-recorder --skill proxy-setup -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/asmyshlyaev177/test-proxy-recorder.git skills-src && mkdir -p .github/skills && cp -r skills-src/packages/test-proxy-recorder/skills/proxy-setup .github/skills/proxy-setup && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "proxy-setup" agent skill from https://github.com/asmyshlyaev177/test-proxy-recorder/tree/master/packages/test-proxy-recorder/skills/proxy-setup into .github/skills/proxy-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proxy-setup", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add asmyshlyaev177/test-proxy-recorder --skill proxy-setup -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install asmyshlyaev177/test-proxy-recorder proxy-setup --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/asmyshlyaev177/test-proxy-recorder.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/packages/test-proxy-recorder/skills/proxy-setup .opencode/skills/proxy-setup && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "proxy-setup" agent skill from https://github.com/asmyshlyaev177/test-proxy-recorder/tree/master/packages/test-proxy-recorder/skills/proxy-setup into .opencode/skills/proxy-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "proxy-setup", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
proxy-setupSet up test-proxy-recorder for any Playwright project. An agent skill from asmyshlyaev177/test-proxy-recorder.
Proxy Setup is an agent skill from asmyshlyaev177/test-proxy-recorder. Set up test-proxy-recorder for any Playwright project. Covers the proxy CLI (test-proxy-recorder <target --port --dir), package.json scripts for the three-service architecture (UI app → proxy → backend API), playwright.config.ts webServer block pointing to /control, per-test fixtures using playwrightProxy.before(page, testInfo, mode, { url }), HAR browser-side recording via url pattern, .mock.json server-side recording, record/replay/ transparent modes, the record-once→commit→CI-replay lifecycle, automatic secret…
Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/common-mistakes.md`).
It sits in Testing & QA, covering Browser testing, Backend development and Test data and fixtures. It works with Playwright, npm and Next.js. The repository describes itself as: Record & replay API responses for Playwright E2E tests — SSR proxy + browser HAR + WebSockets. Deterministic CI, no backend, no manual mocks. The licence is MIT.
Read from SKILL.md and the folder at commit 0a7169e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxgitcurlpnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, git, curl and pnpm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Proxy Setup loads about 4.3k tokens when it runs, and up to ~5.5k if it reads all its reference files. Until then it costs about 229 tokens; SKILL.md has 1,041 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from asmyshlyaev177/test-proxy-recorder at commit 0a7169e, republished under its MIT licence (© asmyshlyaev177). 1,041 words, ~4,261 tokens.
.claude/skills/proxy-setup/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.test-proxy-recorder runs an HTTP proxy that records real API responses to
disk (.mock.json for server-side, .har for browser-side) and replays them
in Playwright tests without a live backend.
Two recording mechanisms work independently or together:
| Mechanism | File | Records |
|---|---|---|
| Proxy | .mock.json | Server-side (SSR) fetches from Node.js |
| HAR | .har | Browser-side fetch calls, Chrome extension traffic |
No backend proxy needed for recording — only the proxy process for session
management via /__control.
// playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
webServer: {
command: 'test-proxy-recorder https://api.example.com --port 8100 --dir ./e2e/recordings',
url: 'http://localhost:8100/__control',
reuseExistingServer: true,
timeout: 15_000,
},
});// e2e/fixtures.ts
import { test as base, type Page } from '@playwright/test';
import { playwrightProxy } from 'test-proxy-recorder';
const CLIENT_SIDE_URL = /api\.example\.com/;
// Change to 'record' to hit the real API and update recordings.
const MODE = 'replay' as const;
export const test = base.extend<{ page: Page }>({
page: async ({ context }, use, testInfo) => {
const page = await context.newPage();
await playwrightProxy.before(page, testInfo, MODE, { url: CLIENT_SIDE_URL });
await use(page);
},
});
export { expect } from '@playwright/test';The app's API base URL must be pointed at the proxy, not the real backend.
// package.json
{
"scripts": {
"proxy": "test-proxy-recorder http://localhost:3002 --port 8100 --dir ./e2e/recordings",
"start:all": "concurrently \"pnpm proxy\" \"INTERNAL_API_URL=http://localhost:8100 pnpm start\"",
"test:e2e": "pnpm build && concurrently --kill-others --success first --names services,tests \"pnpm start:all\" \"wait-on http://127.0.0.1:3000 http://127.0.0.1:8100/__control && playwright test --retries 1\"",
"test:e2e:record": "pnpm build && playwright test --workers 1 --ui"
}
}INTERNAL_API_URL stands in for whatever env var your app reads its API base
URL from — it must point at the proxy (see Common Mistakes). For Next.js apps
running a production build, also set TEST_PROXY_RECORDER_ENABLED=true
(see test-proxy-recorder/nextjs-ssr).
// e2e/my.test.ts
import { test, expect } from '@playwright/test';
import { playwrightProxy } from 'test-proxy-recorder';
// Change to 'record' to hit the real API and update recordings.
const MODE = 'replay' as const;
// External services the browser calls directly (auth, CDN, analytics, etc.).
// Server-side fetches through the proxy are recorded automatically via .mock.json.
const CLIENT_SIDE_URL = /cognito-.*\.amazonaws\.com|\.s3\..*\.amazonaws\.com/;
test.beforeEach(async ({ page }, testInfo) => {
await playwrightProxy.before(page, testInfo, MODE, {
url: CLIENT_SIDE_URL,
});
});
test('creates a todo', async ({ page }) => {
await page.goto('/');
await page.getByTestId('new-todo-input').fill('Buy groceries');
await page.getByTestId('add-btn').click();
await expect(page.getByTestId('todo-text').first()).toHaveText('Buy groceries');
});Recording is manual, done once per test with a single worker. Replay runs on CI with multiple workers, headlessly.
# 1. In fixtures.ts (or test file): set MODE = 'record'
# 2. Run once against the real backend, headed, one worker
npx playwright test --workers 1 --ui
# 3. Set MODE back to 'replay', commit recordings
git add e2e/recordings/
git commit -m "add e2e recordings"
# 4. Replay on CI — headless, parallel workers, no backend needed
npx playwright testRecording files must be committed — do not add e2e/recordings/ to
.gitignore. Optionally collapse diffs with:
# .gitattributes
/e2e/recordings/** linguist-generated=trueAnything passed on the CLI can instead live in a config file, auto-discovered as
test-proxy-recorder.config.{ts,js,mjs,cjs} in the proxy process's working
directory (or --config <path>). Prefer it over a long proxy script once you
need body-redaction regexes — they go in as real RegExp literals instead of
shell-escaped strings.
// test-proxy-recorder.config.ts
import { defineConfig } from 'test-proxy-recorder';
export default defineConfig({
target: 'http://localhost:3002',
port: 8100,
recordingsDir: './e2e/recordings',
redaction: {
headers: ['x-api-key'], // merged with the Authorization/Cookie defaults
bodyPatterns: [/sk_live_\w+/g],
allowCookies: ['theme'],
},
});// package.json — with a config file, the proxy script needs no flags
{ "scripts": { "proxy": "test-proxy-recorder" } }Precedence is CLI flag → config file → built-in default: a flag always
overrides the file, and target may come from either (the CLI argument wins).
List flags (--redact-headers, --redact-body, --allow-headers,
--allow-cookies) replace the corresponding config list rather than merging,
so pass them only when you intend to override the file. Redaction is on by
default; --no-redact turns it off, overriding a redaction object in the
config (and redaction: false in the config disables it without the flag).
Recordings are committed to git, so secrets are stripped automatically
before anything is written to disk. By default the proxy replaces the values of
the Authorization, Cookie, and Set-Cookie headers with [REDACTED] in
both .mock.json and WebSocket recordings. This is safe — replay matching
ignores these headers, so redaction never breaks playback. No setup required.
Tweak it via CLI flags on the test-proxy-recorder command:
# Redact an extra API-key header and any "sk_live_..." token in bodies,
# but keep the harmless theme cookie unredacted
test-proxy-recorder http://localhost:3002 --port 8100 --dir ./e2e/recordings \
--redact-headers x-api-key,x-auth \
--redact-body "sk_live_[a-zA-Z0-9]+" \
--allow-cookies theme,locale
# Disable redaction (commit raw secrets — not recommended)
test-proxy-recorder http://localhost:3002 --no-redact--redact-headers <names> — comma-separated extra header names, merged with the defaults.--redact-body <patterns> — comma-separated regex patterns replaced in request/response bodies.--allow-headers <names> — comma-separated header names to exempt from redaction (e.g. set-cookie).--allow-cookies <names> — comma-separated cookie names kept unredacted inside Cookie/Set-Cookie; every other cookie in those headers is still redacted. Use when only some cookies are sensitive (session vs. theme/A-B-test).--no-redact — turn redaction off..har files are written by Playwright's routeFromHAR, not the proxy, so they
are redacted in a separate pass: playwrightProxy.teardown() rewrites every
.har in the recordings dir using the same redaction config as the proxy.
This requires a globalTeardown that calls teardown() (see below) and the
proxy still running (it fetches the config from /__control). For defense in
depth, still record with short-lived test credentials and use the Auth setup
pattern below (login runs in transparent mode against the real provider, with
storageState saved to a gitignored file).
Auth always runs against the real auth provider — never recorded or replayed.
Use setProxyMode('transparent') so auth requests bypass the proxy entirely.
Skip the auth step in replay mode (the recorded session is already embedded in
the HAR / storage state file from the previous record run).
// e2e/auth.setup.ts
import { test as setup } from '@playwright/test';
import { setProxyMode } from 'test-proxy-recorder';
const AUTH_FILE = 'e2e/.auth/state.json';
const TEST_USER = {
email: 'testuser@example.com',
password: 'TestPassword123',
};
setup('authenticate', async ({ page }) => {
// Bypass the proxy — auth must always hit the real provider.
await setProxyMode('transparent');
await page.goto('/users/sign-in');
await page.getByTestId('email').fill(TEST_USER.email);
await page.getByTestId('password').fill(TEST_USER.password);
await page.getByTestId('signinButton').click();
await page.waitForURL('/', { timeout: 15_000 });
await page.context().storageState({ path: AUTH_FILE });
});Add the auth state file to .gitignore — it contains session tokens and must not be committed:
# .gitignore
e2e/.auth/// playwright.config.ts
export default defineConfig({
projects: [
{ name: 'setup', testMatch: /auth\.setup\.ts/ },
{
name: 'e2e',
testIgnore: /auth\.setup\.ts/,
dependencies: ['setup'],
use: { storageState: 'e2e/.auth/state.json' },
},
],
});Include the auth provider domain in CLIENT_SIDE_URL when the browser makes
direct calls to it (e.g. Cognito token refresh, OAuth redirects):
// These browser-to-Cognito calls are recorded in the HAR, not via the proxy.
const CLIENT_SIDE_URL = /cognito-.*\.amazonaws\.com/;When login goes to an external provider (Cognito, Auth0, Clerk, …), the protected API responses come from recordings, so replay needs no backend — CI runs only the app + proxy. Recording stays a manual, local step (you, on a dev machine, with the real backend up); CI only replays from the committed recordings:
{
"scripts": {
"start:all": "concurrently \"pnpm mock\" \"pnpm proxy\" \"pnpm start\"",
"start:no-backend": "concurrently \"pnpm proxy\" \"pnpm start\"",
// LOCAL: run on a dev machine to (re)record, then COMMIT e2e/recordings/
"record": "pnpm build && concurrently --kill-others --success first \"pnpm start:all\" \"wait-on $APP $PROXY/__control && RECORD_MODE=1 playwright test --workers 1\"",
// CI: replay from committed recordings — app + proxy only, no backend
"test:e2e": "pnpm build && concurrently --kill-others --success first \"pnpm start:no-backend\" \"wait-on $APP $PROXY/__control && playwright test --retries 1\""
}
}So the lifecycle is: pnpm record locally → commit e2e/recordings/ → CI runs
pnpm test:e2e with no backend. (Re-record only when the API changes.)
If your auth setup re-authenticates during replay (instead of reusing a committed
storageState), snapshot storageState as soon as the session token exists — don't
wait for a protected data fetch, which runs in transparent mode and would hang with
no backend:
await page.waitForURL('/dashboard');
// the token is written to storage before the redirect — snapshot now, do NOT
// wait for the protected data to load (that request would hang without a backend)
await page.waitForFunction(() => !!localStorage.getItem('auth-token'));
await page.context().storageState({ path: AUTH_FILE });See apps/example-auth-cognito (real Cognito) and apps/example-auth-mock
(self-contained, no cloud account). Those apps additionally re-record on every CI
run to test the recorder itself — your app should record locally and only replay
in CI.
// e2e/global-teardown.ts
import { playwrightProxy } from 'test-proxy-recorder';
export default async function globalTeardown() {
await playwrightProxy.teardown().catch((err) => console.warn('teardown', err));
}// playwright.config.ts
export default defineConfig({
globalTeardown: './e2e/global-teardown.ts',
});await playwrightProxy.before(
page, // Playwright Page
testInfo, // TestInfo from test function argument
mode, // 'record' | 'replay' | 'transparent'
{
url, // RegExp | string — browser-side requests to intercept via HAR
timeout, // ms — auto-reset timeout (default: 120000)
}
);url is optional. Omit it for proxy-only (SSR) recording with no browser-side
HAR interception.
Session IDs are derived from the test file path and title:
jobs/Create.spec.ts + 'create a job' → jobs/Create__create-a-job
location.test.ts + 'homepage loads' → location__homepage-loadsFiles on disk:
e2e/recordings/
jobs/Create__create-a-job.mock.json # server-side
jobs__Create__create-a-job.har # browser-side (/ replaced with __)# Check current proxy state
curl http://localhost:8100/__control
# Programmatically switch mode
curl -X POST http://localhost:8100/__control \
-H 'Content-Type: application/json' \
-d '{"mode": "record", "id": "my-test"}'Override the default port (8100) with TEST_PROXY_RECORDER_PORT env var.
The proxy auto-reverts to transparent after each session times out, and
globalTeardown resets it at the end of a clean run. But an interrupted
run (Ctrl+C), a UI/debug session, or a setup without globalTeardown can leave
the shared proxy stuck in record/replay, so the app keeps serving recorded
responses. Reset it on demand:
test-proxy-recorder reset # or: pnpm proxy:resetThis POSTs { "mode": "transparent" } to /__control — the supported,
parallel-safe replacement for resetting by hand with curl. It is safe to run
anytime: an unreachable proxy is a no-op. The port is resolved with
--port flag → TEST_PROXY_RECORDER_PORT env → config file → 8000, so it
targets the same port the proxy was started on. proxy:reset is scaffolded by
test-proxy-recorder init.
Do not wire this into a per-test afterEach under fullyParallel — like
teardown(), it flips the global mode and would disrupt other workers
mid-session. It is a manual recovery tool, not a per-test hook.
Common failure modes — each with the wrong vs. correct pattern — are in
references/common-mistakes.md: app env var not
pointed at the proxy, wrong CLIENT_SIDE_URL (matching the proxy instead of
external domains), teardown() per-test breaking parallel replay, webServer.url
not on /__control, gitignored recordings, and recording against the Next.js dev
server or with multiple workers.
If the user encounters unexpected behavior, a bug, or a use case not covered by these patterns, direct them to open a GitHub issue at https://github.com/asmyshlyaev177/test-proxy-recorder/issues/new. A minimal reproduction helps the maintainer resolve it quickly.
See also: test-proxy-recorder/nextjs-ssr — for tagging Next.js SSR fetches (registerProxyFetch / registerProxyAxios; the middleware is optional)
© asmyshlyaev177, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in packages/test-proxy-recorder/skills/proxy-setup of asmyshlyaev177/test-proxy-recorder.
Open the folder on GitHubat commit 0a7169e
Proxy Setup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Proxy Setup this skillasmyshlyaev177/test-proxy-recorder | 112 | — | ~4.3k | Automated safety check: Pass | MIT | |
| Next Cache Components Optimizersanity-io/ui | 176 | 6 repos | ~6.3k | Automated safety check: Pass | MIT | |
| PlaywrightKiln-AI/Kiln | 5.2k | — | ~1.3k | Automated safety check: Pass | Custom licence | |
| Dev Webtestclassmethod/tsumiki | 974 | — | ~4.2k | Automated safety check: Pass | MIT | |
| Next Cache Components Optimizervercel/next.js | 143k | — | ~5.8k | Automated safety check: Pass | MIT | |
| Nix Playwrightsrid/emanote | 963 | — | ~557 | Automated safety check: Pass | Custom licence |
sanity-io/ui
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation).
Kiln-AI/Kiln
Look at Kiln's UI in a real browser, and run its end-to-end tests.
classmethod/tsumiki
This skill should be used when the user asks to "dev-webtest", "Webテスト", "画面の動作確認", "E2Eテスト", "web test", "visual check", "モンキーテスト", "アクセシビリティチェック", "レスポンシブテスト", "フォームテスト".
vercel/next.js
Optimize the meaningful UI available immediately from a Next.js route on an initial load (hard navigation) or named client-side navigation (soft navigation).
srid/emanote
Use this when adding Nix-based local runs for an existing Playwright e2e suite.
alirezarezvani/claude-skills
Generates unit tests, integration tests, and E2E tests for React/Next.js applications.
asmyshlyaev177/test-proxy-recorder
Tag server-side fetches with the x-test-rcrd-id session header so SSR is recorded under the correct Playwright test session.
asmyshlyaev177/test-proxy-recorder
Record and replay TanStack Start SSR with test-proxy-recorder.
Works with
Categories
Set up test-proxy-recorder for any Playwright project. An agent skill from asmyshlyaev177/test-proxy-recorder. Proxy Setup is an agent skill from asmyshlyaev177/test-proxy-recorder. Set up test-proxy-recorder for any Playwright project.
Proxy Setup fits situations like: tasks that involve Browser testing; tasks that involve Backend development; tasks that involve Test data and fixtures.
Run `npx skills add asmyshlyaev177/test-proxy-recorder --skill proxy-setup -a claude-code`. Or copy the skill folder (packages/test-proxy-recorder/skills/proxy-setup in asmyshlyaev177/test-proxy-recorder) into .claude/skills/proxy-setup in your project. Claude Code loads it when a task matches its description.
Run `npx skills add asmyshlyaev177/test-proxy-recorder --skill proxy-setup -a codex`. Or copy the skill folder (packages/test-proxy-recorder/skills/proxy-setup in asmyshlyaev177/test-proxy-recorder) into .agents/skills/proxy-setup in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add asmyshlyaev177/test-proxy-recorder --skill proxy-setup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/proxy-setup, .gemini/skills/proxy-setup, .github/skills/proxy-setup and .opencode/skills/proxy-setup in your project.
Going by SKILL.md and its folder, Proxy Setup needs the command-line tools its instructions call (npx, git, curl and pnpm). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx, git and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Proxy Setup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.3k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Proxy Setup: Next Cache Components Optimizer (sanity-io/ui, 176 stars), Playwright (Kiln-AI/Kiln, 5.2k stars), Dev Webtest (classmethod/tsumiki, 974 stars) and Next Cache Components Optimizer (vercel/next.js, 143k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
asmyshlyaev177 (a GitHub user) maintains it in asmyshlyaev177/test-proxy-recorder, which has 112 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 3, 2026.
Source: asmyshlyaev177/test-proxy-recorder on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.