New to Claude Skills? Learn how to install them →

hkuds on GitHub

CLI for WireMock

Free

Manage WireMock HTTP mocks directly from your terminal.

by hkuds46.9k stars on hkuds/cli-anything
2 views
Updated Aug 3, 2026
Get this skill

Free · Opens the source repo

What CLI for WireMock does

cli-anything-wiremock is a command-line interface designed to simplify the management of the WireMock HTTP mock server. This tool wraps the WireMock Admin REST API, enabling developers and agents to create, inspect, and manage HTTP stub mappings, control stateful scenarios, and record real backend traffic from the command line. It is particularly useful in integration testing environments where simulating backend services is necessary to ensure that applications behave correctly without relying on live services.

The CLI provides several command groups that cover a variety of tasks. Users can manage HTTP stubs with commands to list, create, delete, and import stubs, making it easy to set up mock responses for testing. Additionally, the ability to inspect served requests allows developers to analyze how their application interacts with the mock server, including counting requests and identifying unmatched requests that result in 404 errors. This level of control is vital for debugging and ensuring that the application behaves as expected under different conditions.

For scenarios requiring stateful behavior, the CLI supports managing scenarios, allowing users to set and reset states as needed. Moreover, the recording feature enables capturing real backend traffic, which can then be converted into stubs for future testing. This is particularly beneficial for teams looking to build comprehensive test suites that reflect real-world interactions with their APIs. Overall, cli-anything-wiremock is a powerful tool for developers looking to enhance their testing workflows by leveraging the capabilities of WireMock directly from the terminal.

This skill is ideal for developers and QA engineers who frequently work with APIs and need a reliable way to simulate backend services. It streamlines the process of setting up tests and provides immediate feedback on how the application interacts with its environment, ultimately leading to more robust and reliable software development.

When to use it

Use this tool when you need to create, manage, or inspect HTTP mocks in a testing environment, especially when working with APIs.

When not to use it

This is not suitable for users who prefer graphical interfaces or need to manage non-HTTP services.

What you can build with it

Setting Up Mocks for Testing

Quickly create HTTP stubs for your API endpoints to simulate responses during integration tests.

Inspecting API Interactions

Use the CLI to analyze how your application interacts with the mock server by inspecting served requests.

Recording Real Backend Traffic

Capture real API interactions and convert them into stubs for future testing scenarios.

How to install CLI for WireMock

View source

1. Install with the skills CLI

npx skills add hkuds/cli-anything/cli-anything-wiremock --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by hkuds

Overview

cli-anything-wiremock is a command-line interface that wraps the WireMock Admin REST API (/__admin/). It allows agents and developers to manage HTTP stub mappings, inspect served requests, control stateful scenarios, and record real backend traffic — all from the terminal or from agent tool calls.

WireMock is commonly used in integration testing environments to replace real HTTP backends with controllable mock responses.

Command Groups

stub — Manage HTTP stub mappings

CommandDescription
stub listList all registered stubs
stub get <id>Get details of a specific stub by UUID
stub create <json>Create a stub from a JSON string
stub quick M URL SQuickly create a stub: METHOD URL STATUS_CODE
stub delete <id>Delete a stub by UUID
stub resetReset all stubs to the defaults on disk
stub savePersist in-memory stubs to disk
stub import <file>Import stubs from a JSON file

request — Inspect served requests

CommandDescription
request listList recent served requests
request find <pattern>Find requests matching a JSON pattern
request count <pattern>Count requests matching a JSON pattern
request unmatchedList requests that matched no stub (404s)
request resetClear the request journal

scenario — Stateful scenario management

CommandDescription
scenario listList all scenarios and current states
scenario set N SSet scenario NAME to STATE
scenario resetReset all scenarios to their initial state

record — Record traffic from a real backend

CommandDescription
record start <url>Start proxying + recording to TARGET_URL
record stopStop recording, return captured stubs
record statusCheck if currently recording
record snapshotSnapshot in-memory requests as stubs

settings — Global server settings

CommandDescription
settings getGet current global WireMock settings
settings versionShow WireMock server version

Top-level commands

CommandDescription
statusCheck if WireMock is running
resetFull reset: stubs + requests + scenarios
shutdownGracefully shut down the WireMock server

Key Examples

# Check connectivity
cli-anything-wiremock status

# Create a stub using quick form
cli-anything-wiremock stub quick GET /api/users 200 --body '[{"id":1}]'

# Create a stub using full JSON
cli-anything-wiremock stub create '{
  "request": {"method": "POST", "url": "/api/orders"},
  "response": {"status": 201, "body": "{\"id\":99}"}
}'

# Verify a POST was made exactly once
cli-anything-wiremock --json request count '{"method":"POST","url":"/api/orders"}'
# → {"count": 1}

# Scenario: advance state
cli-anything-wiremock scenario set "cart-flow" "item-added"

# Record a real backend
cli-anything-wiremock record start https://api.example.com
# ... make requests ...
cli-anything-wiremock record stop

Agent Guidance

Always use --json in agent contexts

Use --json for all invocations in scripts or agent tool calls. JSON output varies by command type (these are distinct response types, not an envelope wrapping all responses):

# Data commands return raw WireMock API JSON directly:
cli-anything-wiremock --json stub quick GET /api/hello 200 --body '{"hello":"world"}'
# → {"id": "abc-123", "request": {...}, "response": {...}, ...}

cli-anything-wiremock --json stub list
# → {"mappings": [...], "total": N}

# Void commands (delete, reset, save) return:
# → {"status": "ok"}

# Errors return:
# → {"status": "error", "message": "Connection refused"}

Connection via environment

Set connection params via environment variables before calling any command:

export WIREMOCK_HOST=localhost
export WIREMOCK_PORT=8080

Workflow pattern for test verification

  1. Set up stubs before running the system under test:
    cli-anything-wiremock --json stub quick POST /api/payment 200 --body '{"success":true}'
    
  2. Run the system under test.
  3. Verify interactions:
    cli-anything-wiremock --json request count '{"method":"POST","url":"/api/payment"}'
    
  4. Clean up:
    cli-anything-wiremock reset
    

Error handling

Non-zero exit code on all errors. In --json mode, errors return {"status": "error", "message": "..."}. Success returns the raw WireMock API response.

Frequently asked questions about CLI for WireMock

Similar skills