Simple and efficient HTTP mock server with specification written in yaml, edn or OpenAPI.

💾 Download the .jar file with the latest version of moclojer to test on your computer here.

📖 See the complete documentation for moclojer here, if you want to contribute (or complement) the documentation, it is here.

YAML example

# This mock register route: GET /hello/:username
- endpoint:
    # Note: the method could be omitted because GET is the default
    method: GET
    path: /hello/:username
      # Note: the status could be omitted because 200 is the default
      status: 200
        Content-Type: application/json
      # Note: the body will receive the value passed in the url using the
      # :username placeholder
      body: >
          "hello": "{{path-params.username}}!"


  • image:

  • port (default): 8000, if you want to change the port set the environment variable PORT

docker run -it \
  -p 8000:8000 -v $(pwd)/moclojer.yml:/app/moclojer.yml \

we Two available versions:

  • dev: main branch docker image

  • latest: latest stable version image

manual installation

We distribute via the .jar file, you need to have Java installed on your operating system.

bash < <(curl -s

If you are using Linux you maybe need sudo.

CLI Usage

  • clj -M:run [OPTIONS]

  • java -jar moclojer.jar [OPTIONS]

  • moclojer_Linux [OPTIONS]



-c, --config

Config path or the CONFIG environment variable. [default: ~/.config/moclojer.yml]

-m, --mocks

OpenAPI v3 mocks path or the MOCKS environment variable.

-f, --format

Output and logging format. Either println or json.

-h, --help

Show help information

-v, --version

Show version information

sentry: set environment var SENTRY_DSN (sentry doc), automatic send backtrace to <>

Config uses XDG_CONFIG_HOME to fetch the default moclojer configuration file, if you want to set a different directory you must use the -c or environment variable CONFIG

💻 dev environment

moclojer is written in Clojure, to run the commands below we assume you have clojure installed on your operating system.


clj -M:run


clj -M:test

if you want to run a specific test: clj -M:test -n com.moclojer.external-body.excel-test

moclojer.jar generate:

clj -A:dev -M --report stderr -m

framework integrations

We distribute the library via Clojars.

Clojure CLI/deps.edn

com.moclojer/moclojer {:mvn/version "0.3.1"}


[com.moclojer/moclojer "0.3.1"]

git in deps.edn

 {com.moclojer/moclojer {:git/url ""
                         :git/tag "v0.3.1"
                         :git/sha "c4ca0f2cfcfbe47de6eb0c601b26106190e20793"}}}

example of use

(ns my-app.core
  (:require [com.moclojer.adapters :as adapters]
            [com.moclojer.server :as server]))

(def *router
  "create a router from a config map"
     {:method "GET"
      :path "/example"
      :response {:status 200
                 :headers {:Content-Type "application/json"}
                 :body {:id 123}}}}]))

(defn -main
  "start the server"
  [& args]
  (server/start-server! *router))

Last updated