Comprehensive Checkly CLI command reference and Monitoring as Code (MaC) workflows.
# Create new Checkly project
npm create checkly@latest
# Test checks locally
npx checkly test
# Deploy to Checkly cloud
npx checkly deploy
The Checkly CLI provides a TypeScript/JavaScript-native workflow for coding, testing, and deploying synthetic monitoring at scale. Define your monitoring checks as code, test them locally, version control them with Git, and deploy through CI/CD pipelines.
Key benefits:
This skill routes to specialized sub-skills by Checkly domain:
Getting Started:
checkly-auth - Authentication setup and logincheckly-config - Configuration files (checkly.config.ts) and project structurecheckly-members - Account member and pending-invite listing, role updates, and removalsCore Workflows:
checkly-test - Local testing workflow with npx checkly testcheckly-deploy - Deployment to Checkly cloudcheckly-import - Import existing checks from Checkly to codeCheck Types:
checkly-checks - API checks, browser checks, multi-step checkscheckly-monitors - Heartbeat, TCP, DNS, URL monitorscheckly-groups - Check groups for organization and shared configAdvanced:
checkly-constructs - Constructs system and resource managementcheckly-playwright - Playwright test suites and configurationcheckly-advanced - Retry strategies, reporters, environment variables, bundlingOperations:
checkly-members - Audit and manage Checkly account access with npx checkly memberscheckly-test - Also covers npx checkly test-sessions for recorded test-session drilldown and RCA contextUse Checkly CLI when:
Use Web UI when:
# Initialize project
npm create checkly@latest
cd my-checkly-project
# Authenticate
npx checkly login
# Test locally
npx checkly test
# Deploy to cloud
npx checkly deploy
# Create new API check
cat > __checks__/api-status.check.ts <<'EOF'
import { ApiCheck, AssertionBuilder } from 'checkly/constructs'
new ApiCheck('api-status-check', {
name: 'API Status Check',
request: {
url: 'https://api.example.com/status',
method: 'GET',
assertions: [
AssertionBuilder.statusCode().equals(200),
AssertionBuilder.responseTime().lessThan(500),
],
},
})
EOF
# Test locally
npx checkly test
# Deploy when ready
npx checkly deploy
# Create browser check
cat > __checks__/homepage.spec.ts <<'EOF'
import { test, expect } from '@playwright/test'
test('homepage loads', async ({ page }) => {
const response = await page.goto('https://example.com')
expect(response?.status()).toBeLessThan(400)
await expect(page).toHaveTitle(/Example/)
await page.screenshot({ path: 'homepage.jpg' })
})
EOF
# Test with Playwright locally (faster)
npx playwright test __checks__/homepage.spec.ts
# Test via Checkly runtime
npx checkly test __checks__/homepage.spec.ts
# Deploy
npx checkly deploy
# Import all checks from Checkly account
npx checkly import plan
# Review generated code
git diff
# Commit imported checks
git add .
git commit -m "Import existing monitoring checks"
# List failing checks
npx checkly checks list --status failing
# Inspect a deployed check and recent runs
npx checkly checks get <check-id>
npx checkly checks get <check-id> --output json
# Drill into an error group or specific result
npx checkly checks get <check-id> --error-group <error-group-id>
npx checkly checks get <check-id> --result <result-id>
When investigating a deployed failure, look for errorGroups, rootCause, or RCA fields in the output. If Checkly already surfaced Rocky AI root-cause analysis, reuse that context before suggesting additional debugging steps.
What are you monitoring?
├─ REST API / HTTP endpoint
│ ├─ Simple availability → API Check (request + status assertion)
│ ├─ Complex validation → API Check (request + multiple assertions + scripts)
│ └─ Just uptime/ping → URL Monitor (simpler, faster)
│
├─ Web application / User flow
│ ├─ Single page → Browser Check (one .spec.ts file)
│ ├─ Multiple steps → Browser Check or Multi-Step Check
│ └─ Full test suite → Playwright Check Suite (playwright.config.ts)
│
└─ Service health / Infrastructure
├─ Periodic heartbeat → Heartbeat Monitor
├─ TCP port → TCP Monitor
├─ DNS record → DNS Monitor
└─ Simple HTTP → URL Monitor
Quick reference:
What stage are you at?
├─ Developing new check
│ ├─ Browser check → npx playwright test (fastest iteration)
│ └─ API check → npx checkly test (includes assertions)
│
├─ Ready to validate
│ └─ npx checkly test (runs in Checkly runtime, catches issues)
│
└─ Ready for production
└─ npx checkly deploy (schedule checks to run continuously)
Testing hierarchy:
npx playwright test - Fastest, local Playwright execution (browser checks only)npx checkly test - Validates in Checkly runtime, catches compatibility issuesnpx checkly deploy - Deploys for continuous scheduled monitoringHow do you want to define checks?
├─ Auto-discovery (convention over configuration)
│ ├─ Browser checks → *.spec.ts files matching testMatch pattern
│ ├─ Multi-step → *.check.ts files with MultiStepCheck construct
│ └─ API checks → *.check.ts files with ApiCheck construct
│
└─ Explicit definition
├─ Programmatic → Construct instances in .check.ts files
└─ Full control → Playwright Check Suite with playwright.config.ts
Patterns:
checks.browserChecks.testMatch in checkly.config.tscheckly/constructs and instantiateWhat are you configuring?
├─ Project-level (all checks)
│ └─ checkly.config.ts → defaults, locations, frequency, runtime
│
├─ Group-level (related checks)
│ └─ CheckGroup construct → shared settings for subset of checks
│
└─ Check-level (individual)
└─ Check constructor → override defaults for specific check
Configuration hierarchy (specific overrides general):
Typical Checkly CLI project:
my-monitoring-project/
├── checkly.config.ts # Project configuration
├── __checks__/ # Check definitions
│ ├── api.check.ts # API check construct
│ ├── homepage.spec.ts # Browser check (auto-discovered)
│ ├── login.spec.ts # Another browser check
│ └── utils/
│ ├── alert-channels.ts # Shared alert channel definitions
│ └── helpers.ts # Shared helper functions
├── playwright.config.ts # Playwright configuration (optional)
├── package.json
└── node_modules/
└── checkly/ # CLI package with constructs
npm create checkly@latest
Creates scaffolded project with:
checkly.config.ts with sensible defaults__checks__/ directorypackage.json with checkly dependency.gitignore configured# Install as dev dependency
npm install --save-dev checkly
# Create configuration file
npx checkly init
npm install -g checkly
checkly test
Note: Use npx checkly instead for project-specific CLI version.
Getting started:
checkly-auth for authentication setupcheckly-config for project configurationcheckly-test for local testing workflowCreating checks:
checkly-checks for API and browser checkscheckly-monitors for simpler health checkscheckly-playwright for full test suite setupAdvanced workflows:
checkly-deploy for deployment strategiescheckly-constructs for understanding the object modelcheckly-advanced for retry strategies and reportersImport existing:
checkly-import to migrate from web UI to code共 3 个版本