Documentation Index
Fetch the complete documentation index at: https://docs.ellomas.com/llms.txt
Use this file to discover all available pages before exploring further.
Quickstart
This guide walks through installing Replay and running your first workflow.
Prerequisites
- A working internet connection (for the HTTP example)
- Go 1.25+ or Docker (for installation)
1. Install Replay
go install github.com/replay/replay@latest
Or use Docker:
docker pull ghcr.io/replay/replay:latest
Verify the installation:
2. Create a Workflow
Create a file called hello.yaml:
name: hello-replay
steps:
- name: greet
type: print
message: "Hello, Replay!"
- name: check-http
type: http
request:
method: GET
url: https://httpbin.org/get
extract:
origin: $.data.origin
assert:
- ["$.status", "eq", 200]
- ["$.data.origin", "not_null"]
- name: report
type: print
message: "Request came from IP: {{ origin }}"
3. Run It
You should see:
🚀 Starting workflow: hello-replay
----------------------------------------
• Running greet [print]...
Hello, Replay!
PASS (0ms)
• Running check-http [http]... PASS (843ms)
• Running report [print]...
Request came from IP: 123.456.789.0
PASS (0ms)
----------------------------------------
✨ Workflow hello-replay finished: SUCCESS (total 845ms)
The print steps display their message on an indented line between the step header and the PASS status.
4. Understand What Happened
- Step 1 (
greet): Printed “Hello, Replay!” using the print step type
- Step 2 (
check-http): Made a GET request to httpbin.org, extracted the origin IP into a variable, asserted status 200 and non-null origin
- Step 3 (
report): Reused the extracted {{ origin }} variable in a second print statement
The state bag carried origin from step 2 into step 3 automatically.
5. Run Multiple Workflows
Create slow-a.yaml:
name: Slow Task A
steps:
- name: sleep
type: shell
command: sleep 3
- name: done
type: print
message: "Task A finished"
---
name: Slow Task B
steps:
- name: sleep
type: shell
command: sleep 5
- name: done
type: print
message: "Task B finished"
Run them in parallel:
replay run slow-a.yaml --concurrency 2
Both tasks run concurrently — total time is ~5s instead of ~8s.
What’s Next?