Mockoon CLI for running mock REST APIs in CI/CD, Docker, and local development. Supports OpenAPI import/export, dynamic templating, proxy mode, and Dockerization. Use when: creating mock APIs, testing API integrations, CI/CD pipelines, Docker mock services, converting OpenAPI specs, generating fake data with Faker.js.
From evolv3ainpx claudepluginhub evolv3ai/claude-skills-archive --plugin projectThis skill uses the workspace's default tool permissions.
README.mdreferences/commands.mdreferences/templating.mdtemplates/docker-compose.yamltemplates/github-action.yamltemplates/mock-environment.jsonGuides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Executes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Requires: Node.js 18+
Lightweight CLI for deploying mock APIs anywhere. Accepts Mockoon data files or OpenAPI specifications.
npm install -g @mockoon/cli
Verify:
mockoon-cli --version
# From local file
mockoon-cli start --data ./api-mock.json
# From URL
mockoon-cli start --data https://example.com/mock-data.json
# With custom port
mockoon-cli start --data ./api-mock.json --port 3000
# Watch for changes (development)
mockoon-cli start --data ./api-mock.json --watch
# Import OpenAPI to Mockoon format
mockoon-cli import --input ./openapi.yaml --output ./mock-env.json
# Then start
mockoon-cli start --data ./mock-env.json
Run mock API server(s).
mockoon-cli start --data <file> [options]
| Flag | Description |
|---|---|
-d, --data | Path/URL to Mockoon or OpenAPI file(s) [required] |
-p, --port | Override port(s) |
-l, --hostname | Override hostname(s) |
-w, --watch | Auto-restart on file changes |
-t, --log-transaction | Log full HTTP transactions |
-X, --disable-log-to-file | Disable file logging |
-e, --disable-routes | Disable routes by UUID or path |
-c, --faker-locale | Faker.js locale (e.g., 'en_GB') |
-s, --faker-seed | Faker.js seed for reproducible data |
--disable-admin-api | Disable admin API endpoint |
--disable-tls | Disable TLS |
--env-vars-prefix | Custom env var prefix (default: MOCKOON_) |
--public-base-url | Base URL for callbacks |
Examples:
# Multiple environments
mockoon-cli start --data ./api1.json ./api2.json --port 3000 3001
# With Faker locale
mockoon-cli start --data ./api.json --faker-locale en_GB
# Disable specific routes
mockoon-cli start --data ./api.json --disable-routes users products
# Background process
mockoon-cli start --data ./api.json &
Convert OpenAPI/Swagger to Mockoon format.
mockoon-cli import --input <file> --output <file> [options]
| Flag | Description |
|---|---|
-i, --input | OpenAPI file path/URL |
-o, --output | Output Mockoon JSON path |
-p, --prettify | Format output JSON |
Example:
mockoon-cli import --input ./openapi.yaml --output ./mock-env.json --prettify
Convert Mockoon to OpenAPI v3.
mockoon-cli export --input <file> --output <file> [options]
| Flag | Description |
|---|---|
-i, --input | Mockoon file path/URL |
-o, --output | Output OpenAPI file path |
-f, --format | Output format: json or yaml |
-p, --prettify | Format JSON output |
Example:
mockoon-cli export --input ./mock-env.json --output ./openapi.yaml --format yaml
Generate Dockerfile for containerized mocks.
mockoon-cli dockerize --data <file> --output <file> [options]
| Flag | Description |
|---|---|
-d, --data | Mockoon file path(s) |
-p, --port | Port(s) to expose |
-o, --output | Dockerfile output path |
-t, --log-transaction | Enable transaction logging |
Example:
mockoon-cli dockerize --data ./api.json --port 3000 --output ./Dockerfile
docker build -t my-mock-api .
docker run -d -p 3000:3000 my-mock-api
Validate Mockoon environment files.
mockoon-cli validate --data <files...>
Example:
mockoon-cli validate --data ./api1.json ./api2.json
docker run -d -p 3000:3000 mockoon/cli:latest \
--data https://example.com/mock-data.json --port 3000
docker run -d -p 3000:3000 \
--mount type=bind,source=$(pwd)/mock-data.json,target=/data/mock.json,readonly \
mockoon/cli:latest --data /data/mock.json --port 3000
version: '3.8'
services:
mock-api:
image: mockoon/cli:latest
command: --data /data/mock.json --port 3000
ports:
- "3000:3000"
volumes:
- ./mock-data.json:/data/mock.json:ro
Access env vars in responses using templating:
{{getEnvVar 'API_KEY'}}
Prefix: Variables must start with MOCKOON_ by default.
# Set env var
export MOCKOON_API_KEY=secret123
# Start with custom prefix
mockoon-cli start --data ./api.json --env-vars-prefix MY_APP_
Enabled by default at /mockoon-admin/.
Endpoints:
GET /mockoon-admin/logs - Transaction logsGET /mockoon-admin/state - Environment statePOST /mockoon-admin/state - Update statePURGE /mockoon-admin/state - Reset stateDisable with --disable-admin-api.
Generate dynamic fake data in responses:
{
"body": "{ \"name\": \"{{faker 'person.firstName'}}\", \"email\": \"{{faker 'internet.email'}}\" }"
}
Set locale:
mockoon-cli start --data ./api.json --faker-locale de
Reproducible data:
mockoon-cli start --data ./api.json --faker-seed 12345
- name: Run Mock API
uses: mockoon/cli-action@v2
with:
version: 'latest'
data-file: './mock-data.json'
port: 3000
mock-api:
image: mockoon/cli:latest
script:
- mockoon-cli start --data ./mock-data.json --port 3000 &
- sleep 5
- curl http://localhost:3000/api/health
mockoon-cli start --data ./api.json --watch --log-transaction
mockoon-cli start \
--data ./users-api.json ./orders-api.json \
--port 3001 3002
mockoon-cli start --data cloud://{UUID} --token {API_TOKEN}
Default log location: ~/.mockoon-cli/logs/{environment-name}.log
Also outputs to stdout for container compatibility.
references/commands.md - Full command referencereferences/templating.md - Faker.js and Handlebars helperstemplates/docker-compose.yaml - Docker Compose exampletemplates/github-action.yaml - GitHub Actions workflow