Getting started

Quick start

One command turns a folder into a ronsel project. Run a demo, write a flow of your own and commit it next to the code it tests.

From nothing to a flow of your own, committed next to the code it tests.

1. Start a project

Everything the tool reads and writes lives in one folder: the context. Flows, applications, environment files, saved views and test runs are all plain files under it, which is why the right place for it is a git repository of yours: a dedicated one, or a folder of the repository that holds the code under test.

Make that folder, and run one command in it. It needs Node.js 24 or newer; nothing else has to be installed.

mkdir e2e && cd e2e
npx ronsel start

That furnishes the folder — four example applications, four example flows, and a tsconfig.json so your editor understands the applications — writes a package.json that depends on the tool and carries the command as a script, runs npm install, and opens the web UI on http://localhost:3001.

From then on, in that folder:

npm run ronsel

which is also what a colleague who clones the repository types, after npm install. Nothing is installed globally, and the version everybody runs is the one the repository pins. The name of the folder in use is always shown in the top bar.

Flows that drive a browser also need Playwright's browsers, which are a separate download. Skip this until you need it:

npx playwright install chromium

2. Run a demo

Open http://localhost:3001. In the top bar, pick the local environment: the example applications declare it, so every demo runs against it.

The home page: the flows and applications of the context, and the environment picked in the top barThe home page: the flows and applications of the context, and the environment picked in the top bar

From the sidebar, open 01 · Welcome and press Run. The steps execute in the order they appear in the document, and the request, response, assertions and timings of each one appear right below its block, like a notebook. The flow works fully offline: the calculator application it calls is a few lines of TypeScript on your disk.

The other examples reach out: 02 · HTTP basics calls httpbin.org, 03 · Posts and memory a fake REST API, and 04 · Browser, scraping and memory drives a browser against a page it serves itself.

3. Write your own

Use the + button next to Flows in the sidebar: a new flow, a folder, or a file to upload. Turn on Create using AI if you would rather describe the scenario in plain words and have the document written for you.

A flow is a Markdown document. Write whatever you want around the steps, and make a step out of a fenced code block tagged step:

```step
application: calculator
method: add
parameters:
  body:
    a: 2
    b: 40
test:
  status: 200
  body:
    result: 42
```

Click any paragraph or step in the Document view to edit it in place; type / for headings, callouts and steps. Changes are saved as you type. See The flow document.

When a step has to call something of yours, create an application for it with the + next to Applications: a folder with documented example methods to replace, and one environment file. See Applications.

4. Commit it

The context folder is yours, so version it like the rest of your code. ronsel start left a .gitignore at its root with node_modules/ and test-runs/ in it; before the first commit, add the rest:

# Secrets: one env file per application per environment.
# Commit the .env.example templates next to them instead.
applications/*/env/*.env
!applications/*/env/*.env.example

# Credentials of the AI and Jira integrations, and the secrets of the
# SharePoint and remote agents ones (their config files are safe to commit)
config/ai.json
config/jira.json
.env

# Regenerated on every start, with paths into this machine's installation
tsconfig.json

Everything else is meant to travel: the flows, the applications with their README and .env.example templates, views.yaml, the config of SharePoint and remote agents, and — so that everybody runs the same version — the package.json and package-lock.json that start wrote.

Then commit and push, from your terminal or from the tool: the sync button next to the folder name in the top bar lists the changed files and offers Pull, Commit and Push. Whoever clones the repository gets the flows and the applications, runs npm install && npm run ronsel in the folder, and only has to fill in the environment files. Environments explains how those values are handed over without ending up in git.

Other ways to start it

npx ronsel start --context ~/projects/shop/e2e does the same thing to another folder, creating it if it is not there. And if you would rather have the command on your PATH than in a package.json:

npm install -g ronsel
cd ~/projects/shop/e2e
ronsel

Told nothing to run, ronsel starts the web UI on the folder you are standing in — it asks first, so a plain ronsel in the wrong terminal never touches anything:

Use /home/you/shop/e2e as the context? It is empty, so the example flows and applications go in it. [Y/n]

Started this way the folder has to exist already, and only an empty one is furnished with the examples: a folder that already holds something is served exactly as it is. start is the command that is allowed to write into a folder of yours, because typing it is how you say so.

Where to go next

  • Concepts: flows, applications and environments, and how they fit together.
  • The context folder: every file in it, and what the git panel does.
  • Command line: the same flows in a CI/CD pipeline.