CLI Tool
Run human QA tests from your terminal with the Runhuman CLI.
What is the CLI?
The Runhuman CLI is a command-line interface for managing QA tests, projects, templates, and API keys. It provides both interactive and JSON output modes, making it perfect for local development, CI/CD pipelines, and automation.
Why use the CLI?
- Fast and efficient terminal-based workflow
- JSON output mode for CI/CD integration
- Local configuration management
- Interactive prompts for common tasks
- Complete control over all Runhuman features
Installation
# Install globally
npm install -g runhuman
# Or use with npx (no installation required)
npx runhuman --help
Requirements: Node.js 18+
Quick Start
# 1. Login (opens browser for OAuth)
runhuman login
# 2. Create your first test
runhuman create https://google.com \
-d "Search for 'recursion' and confirm the tester experiences a joke about recursion"
# 3. Check the status
runhuman status <jobId>
# 4. Get results
runhuman results <jobId>
Truncated IDs
All commands accept truncated ID prefixes, similar to git short commit hashes. Instead of typing a full UUID or hex ID, use just the first few characters:
# Full ID
runhuman status 712e42ad-8f3b-4a1c-9d5e-1234567890ab
# Truncated prefix — resolves to the same job
runhuman status 712e
# Hyphens are ignored during matching
runhuman status 712e42ad8f3b
How it works:
- The CLI fetches your resources and finds all IDs that start with your prefix
- If exactly one matches, it resolves to the full ID automatically
- If multiple match, you’re asked to provide more characters
- Matching is case-insensitive and hyphen-insensitive
Full ID required for destructive operations:
For safety, projects delete, keys delete, and projects transfer --to-org require the full resource ID. If you provide a short prefix, the error message shows what it would have matched so you can re-run with the full ID.
# This will be rejected with a helpful error
runhuman projects delete proj_a
# Use the full ID for destructive operations
runhuman projects delete proj_abc12345def67890abc12345def67890
Core Commands
Job Management
Create and manage QA test jobs.
create [url]
Create a new QA test job.
# Basic usage
runhuman create https://google.com \
-d "Search for 'recursion' and confirm the tester experiences a joke about recursion"
# With template
runhuman create https://google.com --template my-template
# Synchronous (wait for result)
runhuman create https://google.com -d "Test search" --sync
# With custom output schema
runhuman create https://google.com -d "Test" --schema ./schema.json
# With inline schema
runhuman create https://google.com -d "Test" --schema-inline '{"passed":{"type":"boolean"}}'
# With metadata
runhuman create https://google.com -d "Test" --metadata '{"env":"staging"}'
# JSON output for scripting
runhuman create https://google.com -d "Test" --json
# Minimal output (only job ID)
runhuman create https://google.com -d "Test" --quiet
# With tester pool requirements
runhuman create https://google.com -d "Test mobile layout" \
--required-devices ios,android \
--required-languages english
Options:
-d, --description <text>- Test instructions for the human tester-t, --template <name>- Use a pre-defined template--duration <minutes>- Target test duration in minutes (1-60)--device-class <class>- Device class: desktop, mobile-S, --schema <file>- Path to JSON schema file for structured output--schema-inline <json>- Inline JSON schema string--metadata <json>- Metadata for tracking (JSON string)--github-repo <owner/repo>- GitHub repo for context--required-devices <devices>- Required tester devices (comma-separated: ios, android, pc, mac)--required-languages <languages>- Required tester languages (comma-separated: english, spanish)--require-social-videos- Require tester to create social videos-s, --sync- Wait for result before exiting (blocks until complete)--wait <seconds>- Max wait time in sync mode (default: 300)-p, --project <id>- Project ID (or use default from config)-j, --json- Output as JSON instead of interactive display-q, --quiet- Minimal output (only job ID)
Example schema file:
{
"searchWorks": {
"type": "boolean",
"description": "Does the search return results?"
},
"jokeAppears": {
"type": "boolean",
"description": "Does the recursion joke appear?"
},
"issues": {
"type": "array",
"description": "List of any bugs or issues found"
}
}
status <jobId>
Check the status of a test job.
runhuman status job_abc123
runhuman status 712e # truncated ID
runhuman status job_abc123 --json
Shows current job status: pending, waiting, working, completed, error, incomplete, abandoned, rejected.
wait <jobId>
Wait for a job to complete with live status updates.
runhuman wait job_abc123
runhuman wait 712e --timeout 300 # truncated ID
Options:
--timeout <seconds>- Maximum wait time (default: 600)-j, --json- Output as JSON
results <jobId>
Display detailed test results.
runhuman results job_abc123
runhuman results job_abc123 --json # For scripting
runhuman results job_abc123 --schema-only # Only extracted schema data
runhuman results job_abc123 --raw # Raw tester response
Options:
--schema-only- Show only extracted schema data--raw- Show raw tester response without processing-j, --json- Output as JSON
Shows:
- Test success/failure
- Structured data from output schema
- Tester’s written feedback
- Cost and duration
list [filter]
List all your test jobs with optional status filtering.
# List all jobs
runhuman list
# Filter by status (positional argument)
runhuman list completed
runhuman list pending
# With pagination
runhuman list --limit 20 --offset 40
# Filter by project
runhuman list --project proj_abc123
# JSON output
runhuman list --json
Arguments:
[filter]- Status filter: all, pending, claimed, in_progress, completed, failed, timeout
Options:
-p, --project <id>- Filter by project ID (or use default from config)-n, --limit <number>- Maximum number of jobs (default: 20)--offset <number>- Pagination offset (default: 0)--format <type>- Output format: table, json, compact-j, --json- Output as JSON
delete <jobId>
Delete a job permanently.
runhuman delete job_abc123 --force
Options:
-f, --force- Skip confirmation prompt-j, --json- Output as JSON
Authentication
Manage your authentication and account.
login
Authenticate with Runhuman. Opens your browser for OAuth by default.
# OAuth login (opens browser)
runhuman login
# Login with API key (skip browser)
runhuman login --token <your-api-key>
# Print auth URL without opening browser
runhuman login --no-browser
Options:
--token <token>- Login with an API key instead of OAuth--no-browser- Print the auth URL instead of auto-opening your browser
The OAuth flow sets your default project automatically. Credentials are stored in ~/.config/runhuman/credentials.json with restricted permissions.
logout
Clear your authentication credentials.
runhuman logout
whoami
Show your current user information.
runhuman whoami
runhuman whoami --json
Displays:
- Account ID
- Default project (if set)
Organizations
Manage your organizations. Projects, billing, and API keys are all scoped to organizations.
orgs list
List all organizations you belong to.
runhuman orgs list
runhuman orgs ls # alias
runhuman orgs list --json
Options:
-n, --limit <number>- Number of results (default: 20)-j, --json- Output as JSON
orgs show <organizationId>
Show detailed information about an organization.
runhuman orgs show org_abc123
runhuman orgs info org_abc123 # alias
runhuman orgs get org_abc123 # alias
Displays:
- Organization ID
- Name and slug
- Creation date
orgs balance <organizationId>
Check your organization’s billing balance.
runhuman orgs balance org_abc123
runhuman orgs balance org_abc123 --json
Displays:
- Current balance (USD)
- Billing status
- Estimated tests remaining
orgs projects <organizationId>
List all projects in an organization.
runhuman orgs projects org_abc123
runhuman orgs projects org_abc123 --limit 10
Options:
-n, --limit <number>- Number of results (default: 50)-j, --json- Output as JSON
orgs switch <organizationId>
Set the default organization for CLI commands.
runhuman orgs switch org_abc123
runhuman orgs use org_abc123 # alias
runhuman orgs switch org_abc123 --global # all directories (default)
Options:
-g, --global- Set as global default instead of local (default: true)
Projects
Organize your tests into projects. Projects belong to organizations.
projects list
List all your projects across all organizations.
runhuman projects list
runhuman projects ls # alias
runhuman projects list --json
Options:
-n, --limit <number>- Number of results (default: 20)--offset <number>- Pagination offset (default: 0)-j, --json- Output as JSON
Shows each project’s name, organization, project ID, and creation date.
projects create <name>
Create a new project in an organization.
runhuman projects create "My App" --organization org_abc123
runhuman projects create "My App" --organization org_abc123 --default-url https://google.com
runhuman projects create "My App" --organization org_abc123 --set-default
Options:
-o, --organization <id>- Organization ID (required)--default-url <url>- Default URL for tests--github-repo <owner/repo>- Link GitHub repository--set-default- Set as default project after creation
projects show <projectId>
Show details of a specific project, including its organization and balance.
runhuman projects show proj_abc123
runhuman projects info proj_abc123 # alias
runhuman projects get proj_abc123 # alias
Displays:
- Project ID, name, and settings
- Organization name and ID
- Organization balance
- Default URL and GitHub repo (if set)
projects update <projectId>
Update a project’s settings.
runhuman projects update proj_abc123 --name "New Name"
runhuman projects update proj_abc123 --default-url https://google.com
runhuman projects update proj_abc123 --github-repo owner/repo
Options:
-n, --name <name>- New project name-u, --default-url <url>- New default URL-g, --github-repo <owner/repo>- New GitHub repository
projects switch <projectId>
Set the default project for CLI commands.
# Set as global default (all directories)
runhuman projects switch proj_abc123
runhuman projects use proj_abc123 # alias
# Set as local default (current directory only)
runhuman projects switch proj_abc123 --global false
Options:
-g, --global- Set as global default instead of local (default: true)
projects transfer <projectId>
Transfer a project to another organization. The --to-org flag requires the full organization ID for safety.
runhuman projects transfer proj_abc123 --to-org org_target123
runhuman projects transfer proj_abc123 --to-org org_target123 --force
Options:
--to-org <organizationId>- Target organization ID (required, full ID required)-f, --force- Skip confirmation prompt-j, --json- Output as JSON
If the target organization requires approval, the transfer enters a pending state. Otherwise, it completes immediately.
projects delete <projectId>
Delete a project permanently. Requires the full project ID for safety.
runhuman projects delete proj_abc123 --force
Options:
-f, --force- Skip confirmation prompt-j, --json- Output as JSON
Transfers
Manage project transfer requests between organizations.
transfers list
List pending incoming and outgoing transfer requests.
runhuman transfers list
runhuman transfers ls # alias
runhuman transfers list --json
transfers accept <transferId>
Accept an incoming project transfer.
runhuman transfers accept xfer_abc123
transfers reject <transferId>
Reject an incoming project transfer.
runhuman transfers reject xfer_abc123
transfers cancel <transferId>
Cancel an outgoing transfer you initiated.
runhuman transfers cancel xfer_abc123
API Keys
Manage API keys for organizations.
keys list
List all API keys for an organization.
runhuman keys list --organization org_abc123
runhuman keys ls --organization org_abc123 # alias
runhuman keys list --organization org_abc123 --show-keys
Options:
-o, --organization <id>- Organization ID (required)--show-keys- Display full unmasked keys (use with caution)-j, --json- Output as JSON
keys create <name>
Create a new API key for an organization.
runhuman keys create "Production Key" --organization org_abc123
runhuman keys create "CI/CD Key" --organization org_abc123
Options:
-o, --organization <id>- Organization ID (required)--copy- Copy key to clipboard
Important: The full key is only shown once. Save it immediately.
keys show <keyId>
Show details of a specific API key.
runhuman keys show key_abc123
runhuman keys show key_abc123 --show-key
Options:
--show-key- Show full API key (default: masked)
keys delete <keyId>
Delete/revoke an API key. Requires the full key ID for safety.
runhuman keys delete key_abc123 --force
runhuman keys revoke key_abc123 --force # alias
runhuman keys rm key_abc123 --force # alias
Options:
-f, --force- Skip confirmation prompt-j, --json- Output as JSON
Templates
Create reusable test templates. Templates are scoped to projects.
templates list
List all templates for a project.
runhuman templates list --project proj_abc123
runhuman templates ls --project proj_abc123 # alias
Options:
-p, --project <id>- Project ID (required, or use default from config)-j, --json- Output as JSON
templates create <name>
Create a new template.
runhuman templates create "Search Test" \
--project proj_abc123 \
-d "Search for 'recursion' and confirm the joke appears" \
--schema ./search-test-schema.json
Options:
-p, --project <id>- Project ID (required, or use default from config)-d, --description <text>- Template description--duration <seconds>- Default test duration in seconds--device-class <class>- Default device class (desktop/mobile)-S, --schema <path>- Path to output schema JSON file
templates show <templateId>
Show template details.
runhuman templates show tmpl_abc123 --project proj_abc123
Options:
-p, --project <id>- Project ID (required, or use default from config)
templates update <templateId>
Update a template.
runhuman templates update tmpl_abc123 --project proj_abc123 --name "New Name"
runhuman templates update tmpl_abc123 --project proj_abc123 -d "Updated description"
Options:
-p, --project <id>- Project ID (required, or use default from config)-n, --name <name>- New template name-d, --description <text>- New description--duration <seconds>- New target duration in seconds--device-class <class>- New default device class-S, --schema <path>- Path to new output schema JSON file
templates delete <templateId>
Delete a template.
runhuman templates delete tmpl_abc123 --project proj_abc123 --force
Options:
-p, --project <id>- Project ID (required, or use default from config)-f, --force- Skip confirmation prompt
GitHub Integration
Connect GitHub repositories and test issues.
github link <repo>
Link a GitHub repository to your project.
runhuman github link owner/repo
runhuman github link owner/repo --project proj_abc123
Options:
-p, --project <id>- Project ID (or use default from config)
Saves the repository to your project config (.runhumanrc).
github repos
List all GitHub repositories accessible to an organization.
runhuman github repos --organization org_abc123
runhuman github repos --organization org_abc123 --search "my-app"
runhuman github repos --organization org_abc123 --json
Options:
-o, --organization <id>- Organization ID (required)-s, --search <query>- Filter by repository name-j, --json- Output as JSON
github issues <repo>
List issues for a repository.
runhuman github issues owner/repo
runhuman github issues owner/repo --labels bug,needs-testing
runhuman github issues owner/repo --state closed
Options:
-l, --labels <labels>- Filter by comma-separated labels-s, --state <state>- Filter by state: open, closed, all (default: open)-j, --json- Output as JSON
github test <issueNumber>
Create a test job for a specific GitHub issue.
runhuman github test 42 -r owner/repo -u https://google.com
Options:
-r, --repo <owner/repo>- Repository (or use default from config)-u, --url <url>- URL to test (required)-t, --template <id>- Use a template-s, --sync- Wait for result
github bulk-test
Test multiple GitHub issues at once.
runhuman github bulk-test -r owner/repo -u https://google.com
runhuman github bulk-test -r owner/repo -u https://google.com -l needs-testing
runhuman github bulk-test -r owner/repo -u https://google.com -n 5
Options:
-r, --repo <owner/repo>- Repository (or use default from config)-u, --url <url>- URL to test (required)-l, --labels <labels>- Filter issues by comma-separated labels-s, --state <state>- Filter by state: open, closed, all (default: open)-t, --template <id>- Template ID to use-n, --limit <number>- Maximum number of issues to test (default: 10)
Configuration
Manage CLI configuration.
config get <key>
Get a configuration value.
runhuman config get apiUrl
runhuman config get project
config set <key> <value>
Set a configuration value.
runhuman config set project proj_abc123
runhuman config set color false
runhuman config set apiUrl https://runhuman.com
# Set globally vs locally
runhuman config set project proj_abc123 --global
Options:
--global- Set globally (not project-specific)
Common settings:
apiUrl- API base URLproject- Default project IDcolor- Enable/disable colored output (true/false)
config list
List all configuration values.
runhuman config list
Options:
--show-secrets- Show API keys (default: masked)-j, --json- Output as JSON
Shows the full configuration hierarchy: global config and project config with source information.
config reset
Reset configuration to defaults.
# Reset project config only
runhuman config reset --project --force
# Reset global config
runhuman config reset --global --force
# Reset everything
runhuman config reset --all --force
Options:
--project- Reset project config--global- Reset global config--all- Reset all config--force- Required to confirm reset
Project Setup
Initialize and manage project setup.
init
Interactive project initialization wizard.
runhuman init
runhuman init --name "My App" --url https://google.com --yes
Options:
-n, --name <text>- Project name-u, --url <url>- Default URL--github-repo <owner/repo>- GitHub repository-y, --yes- Skip all prompts (use defaults)
Creates a .runhumanrc file in your project directory with default settings.
watch [patterns...]
Watch files and auto-create tests on changes.
# Watch source files
runhuman watch "src/**/*.tsx" --url https://google.com
# Watch multiple patterns
runhuman watch "src/**/*.tsx" "src/**/*.css" --url https://google.com
# With template and custom debounce
runhuman watch "src/**/*" --url https://google.com --template search-test --debounce 5000
# Check if watch is running
runhuman watch --status
# Stop existing watch
runhuman watch --stop
Options:
--url <url>- URL to test (required)--template <name>- Template to use for auto-created tests--description <text>- Default description--debounce <ms>- Debounce delay in milliseconds (default: 2000)--ignore <patterns...>- Patterns to ignore--stop- Stop existing watch process--status- Check if watch is running
Configuration System
The CLI uses a layered configuration hierarchy (highest to lowest priority):
1. CLI Flags (Highest Priority)
runhuman create --project proj_abc123 https://google.com
2. Environment Variables
export RUNHUMAN_API_KEY="your_key"
export RUNHUMAN_API_URL="https://runhuman.com"
export RUNHUMAN_PROJECT_ID="proj_abc123"
export RUNHUMAN_NO_COLOR="true"
Available environment variables:
RUNHUMAN_API_KEY- API authentication keyRUNHUMAN_API_URL- API base URLRUNHUMAN_PROJECT_ID- Default project IDRUNHUMAN_NO_COLOR- Disable colored output
3. Project Config
Create .runhumanrc in your project root (or run runhuman init):
{
"defaultUrl": "https://google.com",
"defaultDuration": 5,
"defaultDeviceClass": "desktop",
"githubRepo": "owner/repo"
}
4. Global Config
Stored in ~/.config/runhuman/config.json:
{
"apiUrl": "https://runhuman.com",
"project": "proj_abc123",
"color": true
}
Created automatically on first runhuman login.
5. Built-in Defaults (Lowest Priority)
Default values are used when nothing else is configured.
CI/CD Integration
The CLI is designed for seamless CI/CD integration with JSON output mode.
GitHub Actions
name: QA Test
on: [push]
jobs:
qa-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Runhuman CLI
run: npm install -g runhuman
- name: Run Human QA Test
env:
RUNHUMAN_API_KEY: ${{ secrets.RUNHUMAN_API_KEY }}
run: |
runhuman create ${{ env.PREVIEW_URL }} \
--description "Test main user flow" \
--template "search-test" \
--sync \
--json > result.json
- name: Check Result
run: |
if [ "$(jq -r '.result.passed' result.json)" = "true" ]; then
echo "QA test passed"
exit 0
else
echo "QA test failed"
jq '.result' result.json
exit 1
fi
GitLab CI
qa-test:
stage: test
script:
- npm install -g runhuman
- |
runhuman create $STAGING_URL \
--description "Search for 'recursion' and confirm the joke appears" \
--sync \
--json > result.json
- |
if [ "$(jq -r '.result.passed' result.json)" = "true" ]; then
exit 0
else
exit 1
fi
CircleCI
version: 2.1
jobs:
qa-test:
docker:
- image: node:18
steps:
- checkout
- run:
name: Install CLI
command: npm install -g runhuman
- run:
name: Run QA Test
command: |
runhuman create https://google.com \
--template search-test \
--sync \
--json
Jenkins
pipeline {
agent any
stages {
stage('QA Test') {
steps {
sh 'npm install -g runhuman'
sh '''
runhuman create ${STAGING_URL} \
--description "Test search" \
--sync \
--json > result.json
'''
script {
def result = readJSON file: 'result.json'
if (!result.result.passed) {
error("QA test failed")
}
}
}
}
}
}
Advanced Usage
Parallel Test Execution
Create multiple jobs and wait for all to complete:
#!/bin/bash
# Create jobs
JOB1=$(runhuman create https://google.com -d "Test search" --json | jq -r '.jobId')
JOB2=$(runhuman create https://google.com -d "Test images" --json | jq -r '.jobId')
JOB3=$(runhuman create https://google.com -d "Test maps" --json | jq -r '.jobId')
# Wait for all to complete
runhuman wait $JOB1 --json &
runhuman wait $JOB2 --json &
runhuman wait $JOB3 --json &
wait
# Get results (truncated IDs work here too)
runhuman results $JOB1
runhuman results $JOB2
runhuman results $JOB3
Template-Based Testing
Create reusable templates for common test scenarios:
# Create a search test template
runhuman templates create "Search Test" \
--project proj_abc123 \
-d "Search for 'recursion' and confirm the joke appears" \
--schema search-test-schema.json
# Use the template
runhuman create https://google.com --template "Search Test"
Watch Mode for Local Development
Automatically test on file changes:
# Watch source files, auto-test on changes
runhuman watch "dist/*.html" \
--url https://google.com \
--template search-test \
--description "Auto search test"
When a file changes, a new test job is created automatically after the debounce period.
JSON Output Mode
All commands support -j, --json flag for machine-readable output.
Example:
runhuman create https://google.com -d "Test search" --sync --json
Output:
{
"jobId": "job_abc123",
"status": "completed",
"result": {
"passed": true,
"explanation": "All tests passed successfully",
"data": {
"searchWorks": true,
"jokeAppears": true
}
},
"costUsd": 0.18,
"testDurationSeconds": 120
}
Exit codes:
0- Success1- Test failed, command error, ambiguous ID, or full ID required2- Authentication error3- Not found / no match for ID prefix4- Timeout
Troubleshooting
Authentication Errors
# Error: Unauthorized (401)
# Solution: Login again
runhuman logout
runhuman login
Network Timeouts
# Error: Connection timeout
# Solution: Check API URL and network
runhuman config get apiUrl
Rate Limiting
# Error: Rate limit exceeded (429)
# Solution: Wait and retry, or check your organization balance
runhuman orgs balance org_abc123
Ambiguous ID
# Error: "7" matches multiple jobs
# Solution: Provide more characters
runhuman status 712e # more specific prefix
Full ID Required
# Error: Full project ID required for deletion
# Solution: Use the full ID shown in the error message
runhuman projects delete <full-id-from-error> --force
Config File Issues
# Reset config if corrupted
runhuman config reset --all --force
# Or manually delete
rm -rf ~/.config/runhuman
Missing Dependencies
# Reinstall CLI
npm uninstall -g runhuman
npm install -g runhuman
# Or use npx (no install needed)
npx runhuman --help
Full Command Reference
Jobs (7 commands)
runhuman create [url]- Create QA testrunhuman status <jobId>- Check job statusrunhuman wait <jobId>- Wait for completionrunhuman results <jobId>- Show resultsrunhuman list [filter]- List jobsrunhuman delete <jobId>- Delete jobrunhuman watch [patterns...]- Auto-create tests on file changes
Authentication (3 commands)
runhuman login- Login via OAuth or API keyrunhuman logout- Logoutrunhuman whoami- Show current user
Organizations (5 commands)
runhuman orgs list- List organizationsrunhuman orgs show <id>- Show organization detailsrunhuman orgs balance <id>- Check billing balancerunhuman orgs projects <id>- List organization projectsrunhuman orgs switch <id>- Set default organization
Projects (7 commands)
runhuman projects list- List projectsrunhuman projects create <name>- Create project (requires--organization)runhuman projects show <id>- Show project (includes org details)runhuman projects update <id>- Update projectrunhuman projects switch <id>- Set default projectrunhuman projects transfer <id>- Transfer to another organizationrunhuman projects delete <id>- Delete project (full ID required)
Transfers (4 commands)
runhuman transfers list- List pending transfersrunhuman transfers accept <id>- Accept incoming transferrunhuman transfers reject <id>- Reject incoming transferrunhuman transfers cancel <id>- Cancel outgoing transfer
API Keys (4 commands)
runhuman keys list- List keys (requires--organization)runhuman keys create <name>- Create key (requires--organization)runhuman keys show <keyId>- Show key detailsrunhuman keys delete <keyId>- Delete key (full ID required)
Templates (5 commands)
runhuman templates list- List templates (requires--project)runhuman templates create <name>- Create templaterunhuman templates show <id>- Show templaterunhuman templates update <id>- Update templaterunhuman templates delete <id>- Delete template
GitHub (5 commands)
runhuman github link <repo>- Link repositoryrunhuman github repos- List repos (requires--organization)runhuman github issues <repo>- List issuesrunhuman github test <number>- Test issue (requires--url)runhuman github bulk-test- Test multiple issues (requires--url)
Configuration (4 commands)
runhuman config get <key>- Get config valuerunhuman config set <key> <value>- Set config valuerunhuman config list- List all configrunhuman config reset- Reset config
Setup (1 command)
runhuman init- Initialize project
Total: 45 commands
Next Steps
| Topic | Link |
|---|---|
| REST API documentation | API Reference |
| GitHub Actions integration | GitHub Actions |
| Practical examples | Cookbook |
| Full technical spec | Reference |
| npm package | npmjs.com/package/runhuman |
| Source code | GitHub |