Simple CLI for interacting with Microcks server APIs. It allows launching tests or import API artifacts with minimal dependencies.
Latest release is 1.0.2.
Current development version is 1.0.3. It is available as a container image named quay.io/microcks/microcks-cli:nightly.
- Documentation
- Microcks Community and community meeting
- Join us on Discord, on GitHub Discussions or CNCF Slack #microcks channel
To get involved with our community, please make sure you are familiar with the project's Code of Conduct.
Visit the Release page, browse the Assets and download the one matching your platform
OR you can use the Homebrew package manager on Linux and MacOS that way:
brew tap microcks/tap
brew install microcks/tap/microcksmicrocks [command] [flags]| Command | Description | Documentation |
|---|---|---|
login |
Log in to a Microcks instance using Keycloak credentials | login |
logout |
Log out and remove authentication from a given context | logout |
context |
Manage CLI contexts (list, use, delete) | context |
start |
Start a local Microcks instance via Docker/Podman | start |
stop |
Stop a local Microcks instance | stop |
import |
Import API spec files from local filesystem | import |
import-dir |
Scan a directory and import API spec files. | import-dir |
import-url |
Import API spec files directly from a remote URL | import-url |
test |
Run tests against a deployed API using selected runner | test |
version |
Print Microcks CLI version | version |
| Flag | Description |
|---|---|
-h, --help |
help for microcks command |
--config |
Path to Microcks config file |
--microcks-context |
Name of the Microcks context to use |
--verbose |
Produce dumps of HTTP exchanges |
--insecure-tls |
Allow insecure HTTPS connections |
--caCerts |
Comma-separated paths of CA cert files |
--keycloakClientId |
Keycloak Realm Service Account ClientId |
--keycloakClientSecret |
Keycloak Realm Service Account ClientSecret |
--microcksURL |
Microcks API URL |
microcks test --dry-run runs a contract test with zero infrastructure: no running Microcks server, no Keycloak credentials, no upfront import. The CLI spins up an ephemeral Microcks container (via Testcontainers), imports your spec, runs the test against your endpoint, prints the result and tears the container down.
# One-shot: run once, tear down, exit (exit code 0/1 reflects the test result)
microcks test --dry-run \
--artifact ./openapi.yaml \
"Pastry API:1.0.0" \
http://localhost:3000 \
OPEN_API_SCHEMA
# Watch mode: keep the container alive, re-import + re-run on every save (TDD loop)
microcks test --dry-run --watch \
--artifact ./openapi.yaml \
"Pastry API:1.0.0" \
http://localhost:3000 \
OPEN_API_SCHEMA| Flag | Default | Description |
|---|---|---|
--dry-run |
false |
Activate the ephemeral-container path |
--artifact |
(required with --dry-run) |
Local spec file imported as main artifact |
--image |
quay.io/microcks/microcks-uber:latest-native |
Uber image override (must be a *-native tag) |
--ready-timeout |
90s |
How long to wait for the container to be ready |
--watch |
false |
Re-run the test when the artifact file changes |
Notes:
- A
localhost/127.0.0.1test endpoint is automatically reachable from inside the container — the CLI exposes the port and rewrites the endpoint for you. - The container is removed on every exit path, including
Ctrl+Cmid-test. - Docker is the primary runtime; Podman works through its Docker-compatible socket (
DOCKER_HOST).
To build the CLI locally:
make build-localThe resulting binary will be available at:
/build/dist/microcksYou can move it to a location in your $PATH for global usage, for example:
sudo mv build/dist/microcks /usr/local/bin/microcksBinary releases for Linux, MacOS or Windows platform are available on the GitHub releases page. Just download the binary corresponding to your system and put the binary into the PATH somewhere ;-)
The microcks-cli is available as a container image. So that you'd be able to easily use it from a GitLab CI or a Tekton pipeline. The hosting repository is on Quay.io here.
Below a sample on how to use the image without getting the CLI binary:
$ docker run -it quay.io/microcks/microcks-cli:latest microcks test 'Beer Catalog API:0.9' http://beer-catalog-impl-beer-catalog-dev.apps.144.76.24.92.nip.io/api/ POSTMAN --microcksURL=http://microcks.apps.144.76.24.92.nip.io/api/ --keycloakClientId=microcks-serviceaccount --keycloakClientSecret=7deb71e8-8c80-4376-95ad-00a399ee3ca1 --waitFor=8sec --operationsHeaders='{"globals": [{"name": "x-api-key", "values": "my-values"}], "GET /beer": [{"name": "x-trace-id", "values": "xcvbnsdfghjklm"}]}'
This repository also contains different Tekton tasks definitions and sample pipelines. You'll find under the /tekton folder the resource for current v1beta1 Tekton API version and the older v1alpha1 under tekton/v1alpha1.