Cloud SaaS Mode
chmonitor/chmonitor
Work on chmonitor's Cloud (SaaS) vs self-hosted (OSS) behaviour from ONE codebase.
Stand up benchmarks-platform locally (Postgres + MinIO + ClickHouse in docker) and run a real @benchsdk/runner benchmark against it, with no cloud or provider credentials.
$ npx skills add computesdk/benchmarks --skill local-platform-e2e -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install computesdk/benchmarks local-platform-e2e --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/computesdk/benchmarks.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/local-platform-e2e .claude/skills/local-platform-e2e && 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 "local-platform-e2e" agent skill from https://github.com/computesdk/benchmarks/tree/master/.agents/skills/local-platform-e2e into .claude/skills/local-platform-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "local-platform-e2e", 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/computesdk/benchmarks/tree/master/.agents/skills/local-platform-e2eType 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 computesdk/benchmarks --skill local-platform-e2e -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install computesdk/benchmarks local-platform-e2e --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/computesdk/benchmarks.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/local-platform-e2e .agents/skills/local-platform-e2e && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "local-platform-e2e" agent skill from https://github.com/computesdk/benchmarks/tree/master/.agents/skills/local-platform-e2e into .agents/skills/local-platform-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "local-platform-e2e", 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 computesdk/benchmarks --skill local-platform-e2e -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install computesdk/benchmarks local-platform-e2e --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/computesdk/benchmarks.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/local-platform-e2e .cursor/skills/local-platform-e2e && 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 "local-platform-e2e" agent skill from https://github.com/computesdk/benchmarks/tree/master/.agents/skills/local-platform-e2e into .cursor/skills/local-platform-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "local-platform-e2e", 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/computesdk/benchmarks.git --path .agents/skills/local-platform-e2e--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 computesdk/benchmarks --skill local-platform-e2e -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install computesdk/benchmarks local-platform-e2e --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/computesdk/benchmarks.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/local-platform-e2e .gemini/skills/local-platform-e2e && 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 "local-platform-e2e" agent skill from https://github.com/computesdk/benchmarks/tree/master/.agents/skills/local-platform-e2e into .gemini/skills/local-platform-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "local-platform-e2e", 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 computesdk/benchmarks local-platform-e2eInstalls 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 computesdk/benchmarks --skill local-platform-e2e -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/computesdk/benchmarks.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/local-platform-e2e .github/skills/local-platform-e2e && 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 "local-platform-e2e" agent skill from https://github.com/computesdk/benchmarks/tree/master/.agents/skills/local-platform-e2e into .github/skills/local-platform-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "local-platform-e2e", 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 computesdk/benchmarks --skill local-platform-e2e -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install computesdk/benchmarks local-platform-e2e --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/computesdk/benchmarks.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/local-platform-e2e .opencode/skills/local-platform-e2e && 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 "local-platform-e2e" agent skill from https://github.com/computesdk/benchmarks/tree/master/.agents/skills/local-platform-e2e into .opencode/skills/local-platform-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "local-platform-e2e", 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.
local-platform-e2eStand up benchmarks-platform locally (Postgres + MinIO + ClickHouse in docker) and run a real @benchsdk/runner benchmark against it, with no cloud or provider credentials.
Local Platform E2E is an agent skill from computesdk/benchmarks. Stand up benchmarks-platform locally (Postgres + MinIO + ClickHouse in docker) and run a real @benchsdk/runner benchmark against it, with no cloud or provider credentials. Use when testing @benchsdk/client / @benchsdk/runner against the platform end to end, or when debugging benchmark reporting, worker planning, artifacts, or dashboard results locally.
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Databases, covering End-to-end testing, Data warehousing and Meeting notes and agendas. It works with ClickHouse, Docker and PostgreSQL. The repository describes itself as: Compare performance across sandbox, storage, browsers, and ai gateway providers. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit a2ec9d8. 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:
dockernpmcurlpnpmnpxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use docker, npm, curl, pnpm and npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ADMIN_API_KEYBENCHMARKS_PLATFORM_API_KEYCLICKHOUSE_PASSWORDCRON_SECRETPOSTGRES_PASSWORDMINIO_ROOT_PASSWORDBETTER_AUTH_SECRETTIGRIS_ACCESS_KEY_IDTIGRIS_SECRET_ACCESS_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Local Platform E2E loads about 3k tokens when it runs. Until then it costs about 93 tokens; SKILL.md has 1,044 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 noted patterns worth knowing about, such as sudo or a known installer.
## 2. benchmarks-platform `.env.local``ch:migrate` does **not** read `.env.local`; without exported vars it silently// npx tsx --env-file=.env.local scripts/e2e-seed-orgs.tsAutomated 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 computesdk/benchmarks at commit a2ec9d8, republished under its MIT licence (© computesdk). 1,044 words, ~2,951 tokens.
.claude/skills/local-platform-e2e/SKILL.md (or your agent's skills folder).Goal: exercise upsert benchmark → create run → planWorkers → claim → heartbeat → task_results → artifact upload → complete → dashboard, with zero external credentials.
docker run -d --name pg -p 5432:5432 -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=bench postgres:16
docker run -d --name minio -p 9000:9000 -e MINIO_ROOT_USER=minioadmin -e MINIO_ROOT_PASSWORD=minioadmin \
quay.io/minio/minio server /data
docker run -d --name ch -p 8123:8123 -e CLICKHOUSE_PASSWORD=chpass clickhouse/clickhouse-server:25.6
docker run --rm --network host --entrypoint sh quay.io/minio/mc -c \
"mc alias set local http://127.0.0.1:9000 minioadmin minioadmin && mc mb -p local/bench"ch:migrate with
TTL expression result column should have DateTime or Date type, but has DateTime64(3,'UTC').clickhouse_settings: { date_time_input_format: 'best_effort' }
per insert, so a default-configured server works. If you hit
Cannot parse input: expected '"' before: 'Z"...' (older code), work around it
server-side, and remember to REMOVE the override before verifying an importer
fix — otherwise the server setting masks it:docker exec ch bash -c 'mkdir -p /etc/clickhouse-server/users.d && printf "<clickhouse><profiles><default><date_time_input_format>best_effort</date_time_input_format></default></profiles></clickhouse>" > /etc/clickhouse-server/users.d/besteffort.xml'
docker restart ch
# verify which mode is actually active:
curl -s "http://127.0.0.1:8123/?user=default&password=chpass" \
--data-binary "SELECT value FROM system.settings WHERE name='date_time_input_format'".env.localPoint TIGRIS_* at MinIO — the events and artifacts routes require S3 or they
return 502 on every batch. region: "auto" + presigned PUT works with MinIO.
DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:5432/bench
DATABASE_URL_UNPOOLED=postgresql://postgres:postgres@127.0.0.1:5432/bench
CLICKHOUSE_URL=http://127.0.0.1:8123
CLICKHOUSE_DATABASE=default
CLICKHOUSE_USER=default
CLICKHOUSE_PASSWORD=chpass
ADMIN_API_KEY=local-admin-key
BETTER_AUTH_SECRET=<openssl rand -hex 32>
BETTER_AUTH_URL=http://localhost:3000
TIGRIS_ACCESS_KEY_ID=minioadmin
TIGRIS_SECRET_ACCESS_KEY=minioadmin
TIGRIS_STORAGE_ENDPOINT=http://127.0.0.1:9000
TIGRIS_BUCKET=benchThen:
npm run db:migrate
CLICKHOUSE_URL=http://127.0.0.1:8123 CLICKHOUSE_USER=default CLICKHOUSE_PASSWORD=chpass npm run ch:migrate
npm run devch:migrate does not read .env.local; without exported vars it silently
prints "CLICKHOUSE_URL not set; skipping".
app/api/v1/benchmarks/[slug]/runs/route.ts hardcodes a default org and user id
for every created run. Insert those exact rows:
INSERT INTO "user" (id,name,email,email_verified)
VALUES ('mxYI5c90QNkRPhvuc2HvNHy5mM7MG7jG','David Tice','david@example.com',true);
INSERT INTO organization (id,name,slug,created_at,owner_id)
VALUES ('zMrSfAyEyVJ2eKIxgoBZtrMvEd6a78ad','ComputeSDK','computesdk',now(),'mxYI5c90QNkRPhvuc2HvNHy5mM7MG7jG');
INSERT INTO member (id,organization_id,user_id,role,created_at)
VALUES ('mem1','zMrSfAyEyVJ2eKIxgoBZtrMvEd6a78ad','mxYI5c90QNkRPhvuc2HvNHy5mM7MG7jG','owner',now());Re-read those constants before seeding — they may change.
As of the org-scoped-auth change (lib/api/api-auth.ts requireApiAuth), this seed is
only needed for the admin-key path: an org-scoped key supplies the run's
organizationId itself and userId from the key's created_by. Admin-key runs with no
organizationId in the body still fall back to those two hardcoded ids.
bp_ API keys locallyThe org API-key HTTP route is session-scoped and answers {"error":"Unauthenticated"}
to the admin key, so keys can only be created from the dashboard UI or directly. For
scripted multi-tenant tests, mint them with the platform's own generator so the sha256
hash/prefix/lastFour match what verifyApiKey() expects:
// scripts/e2e-seed-orgs.ts (throwaway), run with:
// npx tsx --env-file=.env.local scripts/e2e-seed-orgs.ts
import { generateApiKey } from "@/lib/api-keys";
import { apiKey, member, organization, user } from "@/db/auth-schema";
const g = generateApiKey(); // g.plaintext is the bp_<prefix>_<secret> to send
await db.insert(apiKey).values({
id, organizationId, name, prefix: g.prefix, hashedKey: g.hashedKey,
lastFour: g.lastFour, createdBy: someUserId, createdAt: new Date(),
revokedAt: null, expiresAt: null, // set these to test revoked/expired → 401
});Each org needs user + organization (owner_id) + member rows first. To view an
org's runs in the dashboard, add a member row for your dashboard user in that org —
dashboard auth is session-based and completely separate from API keys.
Sign up via POST /api/auth/sign-up/email (email+password is enabled), then add
a member row for that user in the seeded org, and sign in at
http://localhost:3000/signin. Run pages live at
/{orgSlug}/benchmarks/{benchmarkSlug}/runs/{runId} (+ /workers).
@vercel/queue.send() fails locally (swallowed as a warning), so nothing
imports automatically. Trigger it by hand — the cron route accepts the admin key
when CRON_SECRET is unset:
curl -s "http://localhost:3000/api/cron/import-clickhouse?limit=50" -H "Authorization: Bearer local-admin-key"Check imported/failed/failureSamples in the response.
Build first (packages/*/dist is not committed): pnpm install && pnpm -r --filter "./packages/**" build.
Write a throwaway bench inside the repo (untracked, e.g. e2e-local/local.bench.ts)
so pnpm workspace resolution finds @benchsdk/runner, with a fake participant:
import { defineBenchmarkConfig, defineTask } from '@benchsdk/runner';
export const config = defineBenchmarkConfig({
benchmarkSlug: 'e2e-local', benchmarkName: 'E2E', iterations: 4, concurrency: 1,
participants: [{ name: 'local', requiredEnvVars: [] }],
});
export const task = defineTask(async (ctx) => {
await ctx.step('create', () => new Promise((r) => setTimeout(r, 50)));
ctx.measure({ ok: true });
});Run it via the bench run CLI (under tsx so the .bench.ts module loads without a build):
BENCHMARKS_PLATFORM_URL=http://localhost:3000 BENCHMARKS_PLATFORM_API_KEY=<org bp_ key> \
npx tsx packages/benchsdk-runner/dist/bin.js run e2e-local/local.bench.ts --iterations 4 --concurrency 2BENCHMARKS_PLATFORM_URL is the root URL (the runner appends /api/v1).
The runner authenticates with BENCHMARKS_PLATFORM_API_KEY (an org-scoped bp_ key — mint one
locally per the section below) and pulls the owning org slug from the server, so the "View at:"
URL it prints always points at the run's real org (no BENCHMARKS_PLATFORM_ORG_SLUG needed).
With benchmarks-platform#47, all app/api/v1/benchmarks/** routes take either the global
ADMIN_API_KEY or an org bp_ key. Expected shapes when a key from org B addresses org A's run:
403 {"error":"API key is not authorized for this organization"} (getScopedRun /
requireRunAccess), 404 for an unknown run/benchmark, 401 Invalid API key for
revoked/expired/malformed tokens, 401 API key required with no header. Listings
(GET /benchmarks/:slug/runs and /results) narrow by organizationScope(auth).
When probing the heartbeat in-process cache, the body must carry currentStep, all four
progressDone/InFlight/Errors/Total fields and concurrency (top-level, not nested)
or the cache is never populated and your "cache poisoning" probe proves nothing. A
cache-served beat is recognisable because the response's worker object is minimal (no
status/benchmarkId columns). Route timing metadata (cacheCoalesced) is only logged
for requests slower than 1000 ms, so don't rely on the dev-server log for this.
psql is not installed on the host — use docker exec pg psql -U postgres -d bench ....planned → in_progress → completed), poll
in a background subshell while the bench runs, then sort -u the samples:(for i in $(seq 1 60); do docker exec pg psql -U postgres -d bench -tA -c \
"select r.status||'|'||p.status||'|'||w.status from ..."; sleep 0.4; done > /tmp/poll.txt) &exec's & backgrounds the whole cd X && ... chain — pass workdir
instead of a leading cd, or the foreground command runs in the wrong dir.failWorker when any task fails (runner.ts), which is what drives the
run to failed.{type:'task_results', sequenceNumber, isFinal, attemptId, records:[...]}.--group-by round: targetConcurrency is read by the platform as
tasks-per-worker, so the runner must send the full schedule.length. If it
sends 1, only one task is planned (worker range 0-0) while every record is
still accepted — results look right but progress/ranges do not.benchmark_run_executions.status should roll up from worker status
(in_progress on first claim, completed/failed on the last worker). If a
finished run still reads planned, the rollup is broken — the dashboard badge
derives status separately and will hide it, so check Postgres and
/progress.run.status vs /progress.summary.status, which must agree.concurrency samples the heartbeat
sends, but worker.ready and sandbox.live are derived from the worker's
progress_in_flight column — for those you must call
reporter.setProgress({ inFlight: N, ... }) first or the barrier sees
active=0 and hangs until timeout.client.releaseWorker() → 200 puts the worker back to pending and the
attempt to released; a re-claim then gets attemptNumber: 2. A duplicate-key
error on unique(worker_id, attempt_number) means the claim route hardcoded
attempt number 1.MAX_EVENT_BODY_BYTES), all other
v1 routes 1 MiB. 5,000 records × 3 steps ≈ 3.15 MiB, so full-size SDK batches
should be 202. If you see 413 on events, the raised cap is not wired up. Always
check benchmark_event_batches.status = 'persisted' too — a 202 only means the
body was accepted.bp_… keys on benchmark v1 routes arrived with
benchmarks-platform#47 (see §3b/§6b). On a platform checkout without it those
routes are admin-only and every bp_… key 401s there, even though the same key
works on /api/v1/organizations/... — check which behaviour your checkout has
before debugging a 401.None. This entire flow runs offline with local docker containers and a
self-chosen ADMIN_API_KEY.
© computesdk, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/local-platform-e2e of computesdk/benchmarks.
Open the folder on GitHubat commit a2ec9d8
Local Platform E2E 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 |
|---|---|---|---|---|---|---|
| Local Platform E2E this skillcomputesdk/benchmarks | 126 | — | ~3k | Automated safety check: Notes | MIT | |
| Cloud SaaS Modechmonitor/chmonitor | 298 | — | ~2.5k | Automated safety check: Notes | GPL-3.0 | |
| Funnelcake Deployment Workflowdivinevideo/divine-mobile | 265 | — | ~3.6k | Automated safety check: Pass | MPL-2.0 | |
| E2Eopenathleteorg/openathlete | 100 | — | ~675 | Automated safety check: Pass | AGPL-3.0 | |
| Debugging Signals PipelinePostHog/posthog-foss | 721 | — | ~2.4k | Automated safety check: Notes | MIT | |
| Manual Testhypequery/hypequery | 103 | — | ~618 | Automated safety check: Pass | Custom licence |
chmonitor/chmonitor
Work on chmonitor's Cloud (SaaS) vs self-hosted (OSS) behaviour from ONE codebase.
divinevideo/divine-mobile
Deploy funnelcake (api + relay) to ANY environment (production, staging, poc) on GKE via ArgoCD.
openathleteorg/openathlete
Run, debug or extend the OpenAthlete Playwright end-to-end tests, which exercise the production Docker images (API, worker, web, PostgreSQL, Redis) through the API and a real browser on desktop and…
PostHog/posthog-foss
Debug the signals pipeline locally end-to-end. An agent skill from PostHog/posthog-foss.
hypequery/hypequery
Execute one of the model-runnable E2E test specs in testing/ (cli, datasets, serve, mcp, react) against a real ClickHouse instance.
TencentCloudBase/CloudBase-AI-Toolkit
CloudBase Run backend development rules (Function mode/Container mode).
computesdk/benchmarks
Prep a new sandbox provider for the ComputeSDK benchmarks (wire up the dependency, env var, providers list, and CI workflow).
computesdk/benchmarks
Author or improve a ComputeSDK benchmark. An agent skill from computesdk/benchmarks.
computesdk/benchmarks
Install, authenticate, and use the unified bench CLI to query and run ComputeSDK benchmarks.
Works with
Categories
Stand up benchmarks-platform locally (Postgres + MinIO + ClickHouse in docker) and run a real @benchsdk/runner benchmark against it, with no cloud or provider credentials. Local Platform E2E is an agent skill from computesdk/benchmarks. Stand up benchmarks-platform locally (Postgres + MinIO + ClickHouse in docker) and run a real @benchsdk/runner benchmark against it, with no cloud or provider credentials.
Local Platform E2E fits situations like: testing @benchsdk/client / @benchsdk/runner against the platform end to end; debugging benchmark reporting; worker planning; dashboard results locally.
Run `npx skills add computesdk/benchmarks --skill local-platform-e2e -a claude-code`. Or copy the skill folder (.agents/skills/local-platform-e2e in computesdk/benchmarks) into .claude/skills/local-platform-e2e in your project. Claude Code loads it when a task matches its description.
Run `npx skills add computesdk/benchmarks --skill local-platform-e2e -a codex`. Or copy the skill folder (.agents/skills/local-platform-e2e in computesdk/benchmarks) into .agents/skills/local-platform-e2e 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 computesdk/benchmarks --skill local-platform-e2e -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/local-platform-e2e, .gemini/skills/local-platform-e2e, .github/skills/local-platform-e2e and .opencode/skills/local-platform-e2e in your project.
Going by SKILL.md and its folder, Local Platform E2E needs the command-line tools its instructions call (docker, npm, curl, pnpm and npx) and credentials named ADMIN_API_KEY, BENCHMARKS_PLATFORM_API_KEY, CLICKHOUSE_PASSWORD and CRON_SECRET. Our summary lists: Python 3; Node.js; Docker; A credential in ADMIN_API_KEY; A credential in BETTER_AUTH_SECRET.
SKILL.md contains no URLs. Its commands use docker, npm, curl and npx, 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 notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Local Platform E2E is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Local Platform E2E: Cloud SaaS Mode (chmonitor/chmonitor, 298 stars), Funnelcake Deployment Workflow (divinevideo/divine-mobile, 265 stars), E2E (openathleteorg/openathlete, 100 stars) and Debugging Signals Pipeline (PostHog/posthog-foss, 721 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
computesdk (a GitHub organization) maintains it in computesdk/benchmarks, which has 126 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 6, 2026.
Source: computesdk/benchmarks on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.