Run deep website scans, capture session video, and get AI-powered insights with a single command — no dashboard required.
Staged pipeline with real-time progress output. Basic scans complete in under 15 seconds.
Get plain-English explanations of issues, performance bottlenecks, and recommendations.
Record full browser sessions to capture visual bugs, layout shifts, and user flows.
Integrate scans into GitHub Actions, GitLab CI, or any pipeline with standard exit codes.
Upload project snippets for AI-powered code review. Respects .subtoignore.
Use your Subto.One API key for private access and to track usage across all requests.
Install the CLI globally and run your first scan in under a minute.
# Install globally npm install -g subto # Verify installation subto --version # Run your first scan (basic, no video) subto scan https://example.com basic # Full scan with session video recording subto scan https://example.com full yes # Full scan, no video, wait for results subto scan https://example.com full no --wait
Tip: Use --wait to have the CLI block until the scan completes and print results inline — great for scripts and CI pipelines.
All available commands and their arguments.
| Command | Description |
|---|---|
| subto scan <url> basic | Run a basic scan — Lighthouse, SEO, security headers, accessibility. No video. |
| subto scan <url> full yes | Full scan with session video recording enabled. |
| subto scan <url> full no | Full scan without video. Includes deeper JS error capture and accessibility tree. |
| subto scan <url> … --wait | Block until scan completes and print results to stdout. Exit code 1 on failure. |
| subto upload [dir] | Run a local AI analysis on sampled files from a directory. Does not upload to server. |
| subto scan upload [dir] | Upload sampled file snippets to the server and request an AI analysis scan. |
| subto --version | Print the installed CLI version. |
| subto --help | Show help text and available commands. |
# Analyze current directory, limit file count and size subto upload . --max-files 200 --max-bytes 5242880 # Upload snippet to server for AI scan subto scan upload . --max-files 100
Add a .subtoignore file to your project root to exclude files and directories. One pattern per line. Lines starting with # are comments. Example patterns: node_modules, *.lock, dist/, .env.
Configure the CLI via environment variables for CI and scripted environments.
| Variable | Description |
|---|---|
| SUBTO_API_KEY | Your Subto.One API key. Used to authenticate all requests and track usage. |
| OPENAI_API_KEY | Enable richer, more detailed AI responses and summaries. |
| OPENROUTER_API_KEY | Alternative to OpenAI — use any model available on OpenRouter. |
| AI_MODEL | Specify a model to use (e.g. openai/gpt-4o, openai/gpt-oss-120b:free). |
Add Subto.One scans to your deployment pipeline to catch regressions before they reach production.
name: Website Scan
on:
push:
branches: [main]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- name: Install Subto CLI
run: npm install -g subto
- name: Run scan
env:
SUBTO_API_KEY: ${{ secrets.SUBTO_API_KEY }}
run: subto scan https://your-site.com basic --wait
Go to your repository Settings → Secrets and variables → Actions and add SUBTO_API_KEY with your key from the Developer Dashboard.
Add npm install -g subto as a step before the scan command.
The --wait flag blocks until the scan completes and exits with code 1 on failure — so your pipeline fails if the scan finds critical issues.
The CLI is the fastest way to get started, but if you need to integrate scans into your own application, the full REST API gives you complete programmatic control.