cli-anything-wiremock — скилл для Claude Code: моки WireMock
Скилл даёт агенту терминальную обёртку над Admin API WireMock: ставить заглушки, считать пришедшие запросы, крутить сценарии.
npx skills add HKUDS/CLI-Anything --skill cli-anything-wiremock -a claude-codeЧто делает cli-anything-wiremock
Скилл ставит агенту обёртку над Admin REST API WireMock по пути /__admin/. Агент создаёт заглушки, смотрит, какие запросы реально дошли, и переключает состояния сценариев, не открывая браузер. Пригодится там, где интеграционные тесты ходят в мок вместо живого бэкенда.
Внутри пять групп команд: stub, request, scenario, record, settings. Быстрый вариант — stub quick GET /api/users 200 --body '[{"id":1}]', подробный — stub create с JSON целиком. Ещё есть record start против реального адреса: трафик записывается, из него потом получаются заглушки.
Для агентских вызовов есть флаг --json. Ошибки возвращаются объектом вида {"status": "error", ...} и с ненулевым кодом выхода. Адрес сервера берётся из WIREMOCK_HOST и WIREMOCK_PORT. WireMock должен быть уже поднят: иначе первая же команда отдаст Connection refused. Это повод проверить сервер до того, как агент запустит прогон тестов.
Какие задачи решает
- Создать заглушку на
POST /api/paymentбез похода в веб-интерфейс WireMock - Посчитать, сколько раз система дёрнула конкретный эндпоинт за прогон
- Найти запросы, которые не совпали ни с одной заглушкой и вернули 404
- Перевести сценарий корзины в следующее состояние и повторить тест
- Записать трафик с живого бэкенда и превратить его в набор заглушек
Примеры запросов агенту
- Проверь через
cli-anything-wiremock status, поднят ли WireMock, и скажи, что дальше делать. - Создай заглушку
stub quick POST /api/payment 200с телом{"success":true}и покажи ответ. - Посчитай через
request count, сколько раз пришёлPOST /api/orders, и выведи только число.
Как установить cli-anything-wiremock
1Через Skills CLI (Vercel)
npx skills add HKUDS/CLI-Anything --skill cli-anything-wiremock -a claude-code2Вручную: положить файлы
~/.claude/skills/cli-anything-wiremock/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/cli-anything-wiremock/
1Через Skills CLI (Vercel)
npx skills add HKUDS/CLI-Anything --skill cli-anything-wiremock -a codex2Вручную: положить файлы
.agents/skills/cli-anything-wiremock/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add HKUDS/CLI-Anything --skill cli-anything-wiremock -a cursor2Вручную: положить файлы
.cursor/skills/cli-anything-wiremock/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install HKUDS/CLI-Anything cli-anything-wiremock2Вручную: положить файлы
.github/skills/cli-anything-wiremock/SKILL.md1Через Skills CLI (Vercel)
npx skills add HKUDS/CLI-Anything --skill cli-anything-wiremock -a gemini-cli2Командой платформы
gemini skills install https://github.com/HKUDS/CLI-Anything --path skills/cli-anything-wiremockВручную: положить файлы
.devin/skills/cli-anything-wiremock/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add HKUDS/CLI-Anything --skill cli-anything-wiremock -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о cli-anything-wiremock
Как установить cli-anything-wiremock в Claude Code?
Выполните npx skills add HKUDS/CLI-Anything --skill cli-anything-wiremock -a claude-code. Файл скилла окажется в ~/.claude/skills/cli-anything-wiremock/SKILL.md.
Что делает cli-anything-wiremock?
Это CLI-обёртка над Admin API WireMock. Через неё агент управляет заглушками, смотрит журнал запросов, переключает состояния сценариев и записывает трафик с настоящего бэкенда.
Обязательно ли поднимать WireMock заранее?
Да, скилл только ходит в API работающего сервера, своего мока он не запускает. Хост и порт задаются переменными WIREMOCK_HOST и WIREMOCK_PORT. Без запущенного сервера придёт Connection refused.
Исходный текст
SKILL.md · Apache-2.0
---
name: "cli-anything-wiremock"
description: Python CLI harness for WireMock HTTP mock server administration
version: 0.1.0
entrypoint: cli-anything-wiremock
---
## 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
| Command | Description |
|----------------------|-------------------------------------------------------|
| `stub list` | List 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 S` | Quickly create a stub: METHOD URL STATUS_CODE |
| `stub delete <id>` | Delete a stub by UUID |
| `stub reset` | Reset all stubs to the defaults on disk |
| `stub save` | Persist in-memory stubs to disk |
| `stub import <file>` | Import stubs from a JSON file |
### `request` — Inspect served requests
| Command | Description |
|----------------------------|--------------------------------------------------|
| `request list` | List recent served requests |
| `request find <pattern>` | Find requests matching a JSON pattern |
| `request count <pattern>` | Count requests matching a JSON pattern |
| `request unmatched` | List requests that matched no stub (404s) |
| `request reset` | Clear the request journal |
### `scenario` — Stateful scenario management
| Command | Description |
|-----------------------|---------------------------------------------------|
| `scenario list` | List all scenarios and current states |
| `scenario set N S` | Set scenario NAME to STATE |
| `scenario reset` | Reset all scenarios to their initial state |
### `record` — Record traffic from a real backend
| Command | Description |
|----------------------------|--------------------------------------------------|
| `record start <url>` | Start proxying + recording to TARGET_URL |
| `record stop` | Stop recording, return captured stubs |
| `record status` | Check if currently recording |
| `record snapshot` | Snapshot in-memory requests as stubs |
### `settings` — Global server settings
| Command | Description |
|--------------------|----------------------------------------|
| `settings get` | Get current global WireMock settings |
| `settings version` | Show WireMock server version |
### Top-level commands
| Command | Description |
|------------|--------------------------------------------------|
| `status` | Check if WireMock is running |
| `reset` | Full reset: stubs + requests + scenarios |
| `shutdown` | Gracefully shut down the WireMock server |
## Key Examples
```bash
# 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):
```bash
# 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:
```bash
export WIREMOCK_HOST=localhost
export WIREMOCK_PORT=8080
```
### Workflow pattern for test verification
1. Set up stubs before running the system under test:
```bash
cli-anything-wiremock --json stub quick POST /api/payment 200 --body '{"success":true}'
```
2. Run the system under test.
3. Verify interactions:
```bash
cli-anything-wiremock --json request count '{"method":"POST","url":"/api/payment"}'
```
4. Clean up:
```bash
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.
© HKUDS · Apache-2.0 · HKUDS/CLI-Anything