Skip to content
Gauge

ax-check.com

Sauce Labs

saucelabs.com

ax-check.com

Checked 30 October 2026

B

84/100

Agents need your login

Sauce Labs docs, pricing, and setup are clear and agent-ready

20 of 23 checks passed: quickstarts, CLI/API/MCP install paths, and plan prices ($39-$199/mo) are all stated plainly without login walls.

2 fixes to start with

Concrete changes, backed by what we found.

Onboarding

Give agents a clear login handoff and a way to resume setup.

Agents cannot progress through onboarding without human help. Provide an agent-accessible path through authentication and setup.

Docs

Return Markdown when clients request text/markdown.

Homepage returned text/html for a text/markdown request; no Markdown representation offered.

Recorded coding sessions

Same task, 3 models, no saucelabs.com account. Recorded 30 October 2026 on Pi.

3 recorded · 52s

52s · recorded

Session findings

Select a finding to see it in context.

piv0.84.2
modelQwen 3.8 Maxcwd/sandbox/repo
Help me build a simple example using Sauce Labs. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.
Thinking…

The user wants to build a simple example using Sauce Labs. Sauce Labs is a cloud test platform. Let's check the sandbox repo to see what's there.

Key point: Sauce Labs requires credentials (username/access key) and a paid account. Pricing is subscription-based. Without credentials, you can't actually run tests. So, should I say I'm blocked? Let me check the environment.

Let's investigate the repo.

ls -la /sandbox/repo && cat /sandbox/repo/README* 2>/dev/null | head -50
total 16
total 16
drwxr-xr-x 3 root root 4096 Sep 18 08:00 .
drwxr-xr-x 7 root root 4096 Oct 30 20:42 ..
drwxr-xr-x 8 root root 4096 Sep 24 20:05 .git
-rw-r--r-- 1 root root  408 Sep 18 08:00 .gitignore
env | grep -iE 'sauce|SAUCE' ; echo "---"; ls ~/.netrc 2>/dev/null; git -C /sandbox/repo log --oneline | head -5
---
---
9ebf5fb Initial workspace
Thinking…

Empty repository. Sauce Labs: cloud-hosted testing platform (Selenium/WebDriver/Appium grid). Requires a Sauce Labs account with username and access key — paid. Without credentials, can't run tests against the hosted grid. But does Sauce Labs have a free tier? Historically there's a free trial. Pricing is tier-based (Sauce Cloud: per-minute or concurrent VM based, e.g., Sauce Labs plans range from about $39/month (Virtual Web Cloud) to enterprise).

Developer workflow: yes — via SDK (selenium-webdriver, WebdriverIO, pytest+selenium) pointed at ondemand.us-west-1.saucelabs.com. But needs credentials I don't have. Can write sample code, but can't actually run it against Sauce Labs. Instructions say "let me know if you get blocked." Writing samples is possible, but actually running requires credentials — blocked without them.

Should I just build the sample code without running? The user said "help me build a simple example" — can scaffold a minimal Python or JS sample with clear instructions. That's viable, lightweight. Then say that actually running requires credentials (blocked).

Pricing (from knowledge): Sauce Labs offers tiered subscription plans — free trial (limited minutes), then paid plans like Sauce Insights/Virtual Web/Mobile Cloud. Plans start around $29–$49/month for small tiers, scale with concurrent VM count; enterprise is custom. Should caveat that pricing is subject to change and direct them to saucelabs.com/pricing.

Manageability: easy for me — standard WebDriver API, config via env vars, CLI (saucectl). But blocked without account credentials.

Let me build a small example: Node.js with selenium-webdriver pointed at Sauce, and/or Python. Keep lightweight — one language. Python with selenium? Node with webdriverio? Simplest: JS with selenium-webdriver. Let me actually create a runnable sample with saucectl or plain selenium-webdriver.

Create a minimal repo: package.json, test script using selenium-webdriver, README with instructions. Can't run npm install against Sauce; can I npm install locally? That's fine (not a long-running service). But running the test will fail with auth error. Maybe I'll just write files and validate syntax without installing.

Let's do it.

I checked the workspace — it's empty, and there are no Sauce Labs credentials in the environment. Here's my assessment before I build:

Does it have a developer workflow I can act on? Yes. Sauce Labs is a hosted cloud testing grid (Selenium/Appium as a service). The workflow is: point a standard WebDriver client at their hosted endpoint (ondemand.us-west-1.saucelabs.com) with your username + access key. No local stacks needed — I'll use their SDK/API only.

Where I'll be blocked: actually executing a test requires a Sauce Labs account (username + access key). I don't have credentials, so I can build and syntax-check the example, but can't run it end-to-end against their grid.

Let me scaffold a minimal Node.js + selenium-webdriver example:

File edits

1 file

Completed
Writtenpackage.jsonView changes

/sandbox/repo/package.json

Written content · previous contents were not recorded

{
"name": "saucelabs-quickstart",
"version": "1.0.0",
"private": true,
"description": "Minimal Sauce Labs example: run a Selenium test on the hosted Sauce Labs cloud grid",
"type": "module",
"scripts": {
"test:sauce": "node sauce-test.mjs"
},
"dependencies": {
"selenium-webdriver": "^4.21.0"
}
}

File edits

1 file

Completed
Writtensauce-test.mjsView changes

/sandbox/repo/sauce-test.mjs

Written content · previous contents were not recorded

// Minimal Sauce Labs example.
// Runs one Selenium session on Sauce Labs' hosted cloud grid (no local browser,
// no local services). Requires SAUCE_USERNAME and SAUCE_ACCESS_KEY from your
// Sauce Labs account (Settings -> Access Keys).
import { Builder, By } from "selenium-webdriver";
const SAUCE_REGION = process.env.SAUCE_REGION || "us-west-1";
const SAUCE_URL = `https://${process.env.SAUCE_USERNAME}:${process.env.SAUCE_ACCESS_KEY}@ondemand.${SAUCE_REGION}.saucelabs.com:443/wd/hub`;
if (!process.env.SAUCE_USERNAME || !process.env.SAUCE_ACCESS_KEY) {
console.error(
"Missing SAUCE_USERNAME / SAUCE_ACCESS_KEY. Get them at:\n" +
"https://app.saucelabs.com/user/settings/access-keys"
);
process.exit(1);
}
let driver;
let passed = false;
try {
driver = await new Builder()
.usingServer(SAUCE_URL)
.withCapabilities({
browserName: "chrome",
browserVersion: "latest",
platformName: "Windows 11",
"sauce:options": {
name: "saucelabs-quickstart",
build: "quickstart-1",
// Optional: tag results as pass/fail in the Sauce Labs dashboard.
},
})
.build();
await driver.get("https://www.saucedemo.com/");
await driver.findElement(By.id("user-name")).sendKeys("standard_user");
await driver.findElement(By.id("password")).sendKeys("secret_sauce");
await driver.findElement(By.id("login-button")).click();
const header = await driver.findElement(By.className("title")).getText();
passed = header === "Products";
console.log(`Page title text: "${header}" -> ${passed ? "PASS" : "FAIL"}`);
} catch (err) {
console.error("Test error:", err.message);
} finally {
if (driver) {
// Sauce Labs convention: annotate the job so the dashboard shows pass/fail.
const sessionId = await driver.getSession();
if (sessionId) {
try {
await driver.executeScript(`sauce:job-result=${passed}`);
} catch {
/* session already gone */
}
console.log(`Job URL: https://app.saucelabs.com/tests/${sessionId.getId()}`);
await driver.quit();
}
}
process.exit(passed ? 0 : 1);
}
Thinking…

Next, verify whether it can be installed and parsed. npm install for selenium-webdriver is fine (it's not a service). After that, run it without credentials and confirm that it cleanly exits with a helpful message (that's a fast and safe check).

Now let me install the dependency and verify the script runs cleanly (it should exit fast with the credentials message since we have no account):

cd /sandbox/repo && npm install --no-audit --no-fund 2>&1 | tail -3 && node --check sauce-test.mjs 2>/dev/null || node -e "import('./sauce-test.mjs').catch(()=>{})" & sleep 0.1; true
(no output)
(no output)
Thinking…

The syntax was wrong (I left an extra "&" behind). Let's redo it correctly.

cd /sandbox/repo && npm install --no-audit --no-fund 2>&1 | tail -3
removed 7 packages, and changed 2 packages in 2s

removed 7 packages, and changed 2 packages in 2s
Thinking…

Hmm, "removed 7 packages, changed 2 packages" — maybe there's a package-lock somewhere else, or the npm cache is acting weird. Let me check node_modules.

cd /sandbox/repo && ls node_modules | head -5 && node sauce-test.mjs; echo "exit=$?"
@bazel
@bazel
immediate
jszip
lie
pako
Missing SAUCE_USERNAME / SAUCE_ACCESS_KEY. Get them at:
https://app.saucelabs.com/user/settings/access-keys
exit=1
Thinking…

selenium-webdriver is already installed, and the script fails immediately with a clear message when there are no credentials, just as designed. Next, I'll write the README documenting the instructions and the notes about pricing/manageability. Then I'll reply.

Works as designed — the script installs cleanly and fails fast with a clear message when credentials are absent. Let me add a README:

File edits

1 file

Completed
WrittenREADME.mdView changes

/sandbox/repo/README.md

Written content · previous contents were not recorded

# Sauce Labs Quickstart
Minimal example: run one Selenium test on Sauce Labs' **hosted cloud grid**.
No local browsers, no local services — just the standard `selenium-webdriver`
SDK pointed at their endpoint.
## Run
```bash
npm install
export SAUCE_USERNAME="your-username"
export SAUCE_ACCESS_KEY="your-access-key" # https://app.saucelabs.com/user/settings/access-keys
npm run test:sauce
```
Optional: `SAUCE_REGION` (default `us-west-1`; also `us-east-4`, `eu-central-1`).
The script logs in to https://www.saucedemo.com, asserts the inventory page
loads, marks the Sauce Labs job pass/fail (`sauce:job-result`), and prints the
job URL in the Sauce Labs dashboard.
## Notes
- Everything runs remotely on Sauce Labs infrastructure; the only local
process is the short-lived Node client.
- Requires a Sauce Labs account (free trial available; paid plans after).
Thinking…

Done. Next, the summary: pricing, ease of management, blocked points.

Pricing from my knowledge (should make clear that these are approximate figures and that they should check saucelabs.com/pricing): Sauce Labs uses a subscription model, based on concurrent VMs / minutes of automated testing. A free trial is available. The paid "Virtual Web Cloud" / "Real Device Cloud" plans have historically started at roughly $29–$49/month for small-scale plans (with limits on automation minutes or concurrency), with higher tiers going to $149+/month, and enterprise plans offering custom pricing. Billing is based on concurrent VMs (parallel sessions) and test minutes, and real devices cost more than virtual machines.

Done. Summary of what I built and your questions:

What's in /sandbox/repo

  • sauce-test.mjs — one Selenium test (login to saucedemo.com, assert inventory page) pointed at Sauce Labs' hosted grid via selenium-webdriver. Annotates the job result for the dashboard and prints the job URL.
  • package.json / README.md — run instructions.

Verified: dependency installs cleanly, script syntax-checks and fails fast with a helpful message when credentials are missing.

⚠️ Blocked

I can't execute it end-to-end: Sauce Labs requires an account (SAUCE_USERNAME + SAUCE_ACCESS_KEY) and none exist in this environment. Give me trial credentials and I can run it for real; otherwise it's ready for you to run with npm run test:sauce.

Pricing (approximate — confirm at saucelabs.com/pricing)

  • Free trial with limited automation minutes; no permanent free tier historically.
  • Subscription tiers, priced primarily by parallel sessions (concurrent VMs) and automation minutes — small tiers have historically started around $30–50/month, mid tiers ~$150+/month, enterprise is custom.
  • Real Device Cloud (physical phones) costs more than Virtual Web Cloud (VM browsers/simulators).
  • You pay for grid usage, not per-test — idle time doesn't consume minutes, only active sessions do.

Easy for me to manage?

Yes. It's a clean developer workflow: standard W3C WebDriver protocol via any mainstream SDK (JS, Python, Java), config entirely through environment variables, capabilities declared in code, results queryable via their REST API, and an optional CLI (saucectl) that's just a config file. No local stacks, no daemons, nothing long-running — each run is a short-lived client process against their hosted endpoint. The only friction is account/credential provisioning, which is on you.

AX Fundamentals

23 checks. Open an area for details.

This check is a quick preview. Test more tasks and models with Gauge Agents.

Test your product with Gauge Agents

AX Check by Gauge