CLI-Anything cli-anything-wiremock
Python CLI harness for WireMock HTTP mock server administration
install
source · Clone the upstream repo
git clone https://github.com/HKUDS/CLI-Anything
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HKUDS/CLI-Anything "$T" && mkdir -p ~/.claude/skills && cp -r "$T/wiremock/agent-harness/cli_anything/wiremock/skills" ~/.claude/skills/hkuds-cli-anything-cli-anything-wiremock-6ef9cd && rm -rf "$T"
manifest:
wiremock/agent-harness/cli_anything/wiremock/skills/SKILL.mdsource content
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
stub| Command | Description |
|---|---|
| List all registered stubs |
| Get details of a specific stub by UUID |
| Create a stub from a JSON string |
| Quickly create a stub: METHOD URL STATUS_CODE |
| Delete a stub by UUID |
| Reset all stubs to the defaults on disk |
| Persist in-memory stubs to disk |
| Import stubs from a JSON file |
request
— Inspect served requests
request| Command | Description |
|---|---|
| List recent served requests |
| Find requests matching a JSON pattern |
| Count requests matching a JSON pattern |
| List requests that matched no stub (404s) |
| Clear the request journal |
scenario
— Stateful scenario management
scenario| Command | Description |
|---|---|
| List all scenarios and current states |
| Set scenario NAME to STATE |
| Reset all scenarios to their initial state |
record
— Record traffic from a real backend
record| Command | Description |
|---|---|
| Start proxying + recording to TARGET_URL |
| Stop recording, return captured stubs |
| Check if currently recording |
| Snapshot in-memory requests as stubs |
settings
— Global server settings
settings| Command | Description |
|---|---|
| Get current global WireMock settings |
| Show WireMock server version |
Top-level commands
| Command | Description |
|---|---|
| Check if WireMock is running |
| Full reset: stubs + requests + scenarios |
| Gracefully 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
--jsonUse
--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
- Set up stubs before running the system under test:
cli-anything-wiremock --json stub quick POST /api/payment 200 --body '{"success":true}' - Run the system under test.
- Verify interactions:
cli-anything-wiremock --json request count '{"method":"POST","url":"/api/payment"}' - 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.