Public | Automated Build

Last pushed: 2 years ago
Short Description
Daemon that records all incoming HTTP request and allow to fetch them and put expectations on them.
Full Description


Simple application that records all incoming HTTP requests and writes them down
to a filesystem in a conventional directory structure. Intended to be used in


Via binary release

Go to releases page and
download binary for your platform. Linux and Mac OS X are supported.

Optionally put this binary on your path (or use absolute/relative path to run
it). All examples in usage section assume, that binary recorder is
available on the path.

Via go get tool

If you have properly configured Golang development environment, you can install
recorder via:

go get -u

Via docker

recorder is available as an automated build from
docker hub.

It is recommended to use a runner script as a
recorder on your path. Assuming ~/bin is on your path:

curl -L > ~/bin/recorder
chmod a+x ~/bin/recorder

Then all examples from usage section should still work without


Start the recorder daemon

recorder daemon

By default it uses port 9977 and binds to

This can be changed by providing -l, --listen option, e.g.:

recorder daemon -l   # or --listen=

Get last recorded data by method & URL

recorder get POST /api/v2/user

Get specific recorded data by method, URL & index

Use -i, --index option for that:

recorder get -i 2 POST /api/v2/user    # or --index=2

Reset recorder

recorder reset

Terminating daemon

It is enough to send _TERMINATE request to a server:

curl -X_TERMINATE localhost:9977

This command may fail with curl: (52) Empty reply from server, which should
not be a problem, and typically should be ignored:

curl -X_TERMINATE localhost:9977 || true


Expect equal last recorded data

recorder is POST /api/v2/user = ""

is supports -i, --index option.

When expectation succeeds, is command returns exit code 0.

When expectation fails, is command returns exit code 1.

Expect JSON path to be equal

recorder is --json-path=user/email POST /api/v2/user = ""

Usage design TODO

  • Design header manipulation commands/options.


  1. Fork it ( )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request


  • waterlink Oleksii Fedorov - creator,


MIT license. Read here.

Docker Pull Command
Source Repository