Terminal-first workflow

Website analysis
from your terminal

Run deep website scans, capture session video, and get AI-powered insights with a single command — no dashboard required.

$ npm install -g subto

Blazing Fast

Staged pipeline with real-time progress output. Basic scans complete in under 15 seconds.

🤖

AI Summaries

Get plain-English explanations of issues, performance bottlenecks, and recommendations.

🎥

Session Video

Record full browser sessions to capture visual bugs, layout shifts, and user flows.

🔁

CI/CD Ready

Integrate scans into GitHub Actions, GitLab CI, or any pipeline with standard exit codes.

📦

Code Analysis

Upload project snippets for AI-powered code review. Respects .subtoignore.

🔑

API Key Auth

Use your Subto.One API key for private access and to track usage across all requests.

Quick Start

Install the CLI globally and run your first scan in under a minute.

bash
# 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.

Command Reference

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.
bash — Upload options
# 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.

Environment Variables

Configure the CLI via environment variables for CI and scripted environments.

VariableDescription
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).

CI/CD Integration

Add Subto.One scans to your deployment pipeline to catch regressions before they reach production.

yaml — GitHub Actions
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
1

Add your API key as a secret

Go to your repository Settings → Secrets and variables → Actions and add SUBTO_API_KEY with your key from the Developer Dashboard.

2

Install the CLI in your pipeline

Add npm install -g subto as a step before the scan command.

3

Run a scan with --wait

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.

Try a scan right now

Enter a URL below to queue a scan directly — no CLI install needed. Results stream in real time.

Authentication required. Provide an API key above, or sign in to get one.

Need more control? Use the REST API.

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.