Install & first run
You end up with a local data map — every dataset and column, searchable, with the personal data flagged — in about five minutes. No Docker, no account, no demo wall. (In the EU? The same scan also drafts a compliance record you can hand off — an optional extra.) Tell the coding agent already open in your project what you want, or type the command yourself. It is the same command either way.
All of it is free, and free forever — the map and the draft are a complete product on their own. The only paid step comes later, and only in the EU: the optional compliance unlock. Nothing here asks for a card.
NODE_VERSION_UNSUPPORTED message
instead of failing strangely; upgrading Node is yours to do (nodejs.org,
or a version manager — nvm, fnm, volta). Regixo checks this itself, before it does anything —
whoever ran the command.- Be in the right folder — your project folder, the one that holds your
.envwhereDATABASE_URLlives. A coding agent open in the project is already there. (how ↓) - Get the scan running — say it, or run
npx regixo startyourself. It downloads Regixo the first time, finds your database, and scans it. (how ↓) - Answer the two questions — connect & scan this source? and are you a regulated financial entity? Both are walked below. (the decisions ↓)
- Check it worked — read the one coverage line, and confirm you have a DRAFT record. (how ↓)
Walk one first run all the way through (the worked example)
Before the detail, here is the whole thing done once — a Postgres app hosted in the EU, run by a team that is not a bank:
| Step | What you do | What happens, and what you decide |
|---|---|---|
| 1 · Open | cd to the folder with your .env. | DATABASE_URL is already in that file — nothing to set up. |
| 2 · Run | npx regixo start | npx asks Ok to proceed? once → y. Regixo prints its welcome line and reports “Found a Postgres database (from the DATABASE_URL setting)”. |
| 3 · Connect & scan? | press Enter (yes). | It scans names and types only — never a row value. |
| 3 · Regulated financial entity? | you are a SaaS, not a bank → press Enter (no). | No DORA register is drafted. (A bank answers y, or passes --dora.) |
| 4 · Check | regixo status | The coverage line reads ✓ all 1 source(s) reached; the record says DRAFT. Done — in about five minutes. |
Every first run is that shape. The rest of the page is each step in full, then the branches.
Get your data on the map
The goal: a searchable map of every dataset and column — in about five minutes, with nothing installed but Node. One command scans your sources and builds it. If a coding agent is already open in your project, say the sentence; otherwise run the command yourself — it is the same command either way:
“Set Regixo up in this project — scan my sources and build the data map.”
Show the commandHide the commandShow the sentenceHide the sentence
$ npx regixo startYour agent runs the scan — in your project folder, the one that holds your
.env where DATABASE_URL lives. An agent already open in that project has
nothing to change; if yours is somewhere else, tell it which folder to run in. It reads that file
for a database it can already reach, and reads names and types only — never a row value. It
can take the connect-and-scan default (--yes).
A connection string exported in your shell instead of a file works the same — Regixo reads the environment either way.
The other question is yours to answer, not its: is your organisation a regulated
financial entity? Regixo cannot infer that, and it decides whether a DORA register —
the register of ICT (technology) suppliers that regulated financial firms must keep — is drafted,
so it should stop there and ask you. Give your agent the answer; if it is yes, it passes
--dora for you.
It should report a data map, a count of datasets and of columns that look like personal data, and a DRAFT GDPR record whose legal fields are deliberately blank.
Check it worked: ask for the summary below, or run
regixo status, and read its coverage line. A source it could not reach is
missing from the map — the counts still print, they are just quietly too low — so the
coverage line names it: ⚠ 1 of 2 sources reached — the map EXCLUDES stripe.
regixo doctor then says exactly what to fix.
Show what it prints in the terminalHide the terminal outputShow what your agent reportsHide what your agent reports
① A source is reachable — Regixo asks two quick questions, then scans:
Regixo — free to install and use. It maps your data and drafts your compliance record, right here. The scan stays on this machine. ▸ Looking for your data sources… ✓ Found a Postgres database — ready to map (from the DATABASE_URL setting) ? Connect & scan this source? [Y/n] y ? Is your organisation a regulated financial entity (a bank, payment/e-money institution, investment firm, or insurer)? [y/N] n ▸ scanning your sources — names and types only, never the values inside… ▸ app-db: connecting… ▸ app-db: 63 tables · 398 columns — flagging personal data… ✓ app-db — 63 datasets · 398 columns · 170 with personal data ✓ done in 4s — your data map is ready. To see it, type: regixo open (opens it in your web browser) Regixo keeps its catalog in .regixo/ — it ignores itself in git; your repo stays clean. Optional, any time — fix a flag, draw a data flow, describe a table, define a term. What each changes: regixo open → Guide Working with a coding agent? It can run Regixo for you: regixo skill (regixo skill --write puts the playbook in AGENTS.md, so your agent reads it without being asked)
② Nothing is connected yet — a normal first run. Regixo doesn’t dead-end; it offers to connect one right here:
Regixo — free to install and use. It maps your data and drafts your compliance record, right here. The scan stays on this machine.
No database is connected yet.
? Connect one now? [Y/n]- Press Enter / y (the default) → Regixo launches the connector wizard: pick your database, paste the connection, and it scans it in — one motion, no second command.
- Answer n → it points you at
regixo add postgres. Every path is in No database connected yet?
Prefer the terminal? The full recipe, step by stepHide the terminal recipe
1 · Check Node
Regixo needs Node.js 22.18 or newer. Check yours:
$ node -vv22.18.0
Below 22.18, Regixo stops with NODE_VERSION_UNSUPPORTED and installs
nothing. Upgrade via nodejs.org or a version manager (nvm, fnm, volta).
2 · Open a terminal in the right folder
Run Regixo from the folder that holds your app — the one with your .env, where
DATABASE_URL lives. Regixo reads that file for a database it can already reach, so starting
in the right place is what makes the next step a single command with nothing to configure. (If your
connection string is exported in your shell instead of a file, that works too — Regixo reads the
environment either way.)
3 · Run it
From the folder that holds your app:
$ npx regixo startNeed to install… Ok to proceed? (y) — press y. That
prompt comes from npx, not Regixo, and it appears only once. Skip it with
npx -y regixo start.4 · Answer the two questions
Regixo asks whether to connect and scan what it found, and whether you are a regulated financial firm. Both are walked in Your two answers, below. Then it scans — names and types, never rows.
5 · Check what you got
regixo status prints the counts and ends on a coverage line — and when a
source drops out, that line names it. regixo sources gives the source-by-source view
(reachability, last-scan age). regixo doctor probes one that won’t connect and names
the fix.
Your two answers — and why only one is yours
There are only two, and they appear once, at the start of the scan. A coding agent can take the default on the first; the second is yours to declare — Regixo cannot infer whether you are a regulated financial firm, so it never guesses, and neither should your agent.
Decision A · “Connect & scan this source? [Y/n]”
What it does: nothing until you say yes. On yes, Regixo connects and reads names and types
only — table names, column names, data types — never a value inside a row. Default is yes
(press Enter). Answer n and it stops without touching the source; you can run again later.
Headless, this is the --yes default.
Decision B · “Is your organisation a regulated financial entity? [y/N]”
This decides one thing: whether Regixo also drafts a DORA register — the register of ICT (technology) suppliers that regulated financial firms must keep. To know if it is you, ask, and answer y at the first yes:
| Ask yourself… | Answer |
|---|---|
| Are you a bank or credit institution? | y |
| A payment or e-money institution? | y |
| An investment firm, fund manager, or trading venue? | y |
| An insurer or reinsurer? | y |
| A crypto-asset service provider, or another entity your national financial regulator supervises under DORA? | y |
| None of the above — an ordinary SaaS, retailer, agency, marketplace… | n |
Default is no (press Enter); set it non-interactively with --dora.
Not sure? Answer n for now — nothing is lost, and turning it on later re-uses the same
scan.
regixo start --dora turns the DORA register on, --no-dora
turns it off, or use the toggle in the portal’s Settings. Regixo re-uses your existing map; you never
re-scan just to change this answer.Know it worked
The goal: three signals you read for yourself, so “it worked” is something you saw rather than something you were told. When an agent runs Regixo, your job shifts: you stop being the one who types, and become the one who says what they want and checks the result. Here is the thing to look at.
“Summarise what Regixo has connected and scanned, and what’s still missing.”
Show the commandHide the commandShow the sentenceHide the sentence
$ regixo statusYour agent reads the status and reports back. It should name what is connected, what was
scanned, and what is still missing — it reads regixo status --json to get that. If
its summary and the three signals below ever disagree, believe the signals.
Three things tell you the truth, and none of them requires trusting the agent’s summary:
1 · The coverage line. It is the last thing regixo status prints, and it
does not make you infer anything — the bad case names the source that dropped out.
2 · The counts. Datasets, and columns that look like personal data. If a source went
missing, these are quietly too low — which is why the coverage line exists. 3 · The stamp.
The record says DRAFT. It is not official until a person signs it, and no agent can change
that.
If something looks wrong: regixo doctor probes each source
and names the exact fix. A source on a network your agent isn’t on will never connect from here —
that is not a failure of the agent, and the honest
routes are here.
Show what it prints in the terminalHide the terminal outputShow what to checkHide what to check
Regixo status — /Users/you/app/.regixo
sources: 2 configured · 2 reachable
datasets: 63 mapped · 55 hold personal data
columns: 398 in total · 170 hold personal data
coverage: ✓ all 2 source(s) reached
record: draft RoPA tracks your map — open it anytime: regixo open…and when a source dropped out — the case worth recognising:
sources: 2 configured · 1 reachable · 1 unreachable (stripe)
datasets: 21 mapped · 9 hold personal data
coverage: ⚠ 1 of 2 sources reached — the map EXCLUDES stripe (fix: regixo doctor)regixo status --json is the same facts as data: a top-level
scanned, then each source with its reachability (ok ·
unreachable · unscanned) and lastScannedAt, plus the counts.
That is what your agent reads.
What you end up with
- A local catalog written to
.regixo/in your project (or the path in$REGIXO_DATA). Your row values were never read. Most teams git-ignore.regixo/— it is a local cache (the catalog database and the drafts, rebuilt by any scan) — and commitregixo.ymlat the project root, which holds only env-var names. - If no
regixo.ymlexisted, Regixo wrote one from what it detected — storing only the name of the env var holding each secret, never the secret. - A RoPA — your Record of Processing Activities, the logbook GDPR Article 30 requires — drafted and stamped DRAFT, with its legal fields blank on purpose. Your tables are grouped into a handful of activities (an activity is your tables grouped by the job they serve), so sixty tables become a few entries, not sixty.
To see which columns were flagged — not just how many — open the Map and use the
Personal data filter, or run regixo search <term>. Every flag shows the rule
that matched — how Regixo recognised the column: Read the map →.
The portal leads with the map by default. To make the record lead instead, add
--intent compliance (or follow the quiet hint Regixo prints after the scan). Every
command takes --json for scripts and agents.
Don't need the GDPR/DORA drafts? Use it as a plain data catalog
Regixo drafts GDPR and DORA paperwork because that is what its EU users need. If you don't, turn it
off. catalog-only hides:
- the Record (RoPA) tab
- the DORA tab
- the compliance card
- invite and unlock
- the Article 9/10 legal wording
What's left is the data catalog: the map, search, lineage and descriptions.
“Show me Regixo’s current settings.”
Show the commandHide the commandShow the sentenceHide the sentence
$ regixo configYour saved settings, read from regixo.yml. Flip the mode with
regixo config catalog-only on — or off to bring the compliance surfaces
back. The portal's Settings page writes the same setting, and
regixo start --catalog-only does it at first run.
It hides, it never deletes. The switch is visual and reversible — turn it off and everything is exactly where it was. And personal-data discovery keeps running: the map still flags the columns that look like personal data — it labels them sensitive rather than citing GDPR articles.
Show what it prints in the terminalHide the terminal outputShow what your agent reportsHide what your agent reports
Regixo settings — ./regixo.yml catalog-only off — EU compliance (RoPA + DORA) shown intent compliance dora on Change a setting: regixo config catalog-only on|off
No database connected yet? Connect one
A normal first run. Connecting a source is usually an engineer’s job, so pick what fits:
- Have a Postgres database
- Point Regixo at it with an environment variable — the value stays in your shell and is
never written to config — then run again:
say
“Set Regixo up in this project — scan my sources and build the data map.”
Your agent fills in everything except the token — you put that in
.envyourself.Show the commandHide the commandShow the sentenceHide the sentence
run$ export DATABASE_URL=postgres://user:pass@host:5432/yourdb $ npx regixo start
- Prefer a guided wizard
npx regixo add postgresruns a short wizard. Paste your connection string and it offers to save it to a local.env(git-ignored) so it just works — no manualexport.regixo.ymlkeeps only the variable name, never the secret.- Not the technical person
- Forward the on-screen message to whoever manages your databases. It already names the exact command they need, so there’s nothing for you to translate.
Other sources — MySQL, Redshift, SQL Server, Snowflake, BigQuery, Stripe, a CSV file, or a dbt manifest for lineage — connect the same way. Anything the first scan missed, you add by hand: the full list and the exact env-var names are in Connect your sources.
regixo sources, then
remove one: regixo sources remove <id> --yes. That drops it from regixo.yml
and clears its mapped tables; your .env is left alone. To wipe everything and start fresh:
rm -rf .regixo. Full detail: Remove a source. Stuck
on a connection? regixo doctor names the exact problem and a runnable fix.Running headless / in CI
Off a TTY (or with --non-interactive / CI set) Regixo never prompts
and never blocks. It takes answers from flags, env vars and regixo.yml;
--yes accepts the recommended defaults. A genuinely missing required value is a
coded error naming exactly which flag or env var to supply — it never hangs. Re-running
start is safe (idempotent); an agent reads state with regixo status --json.
regixo open opens the searchable map, regixo status shows what’s connected and
scanned — neither touches your databases. (The portal itself can write notes back: a corrected flag,
a description. Your data is never touched.) Just connected a source? It needs a scan before there is a map
to open — ask your agent to re-scan, or run regixo start.
regixo open is the one to run yourself, in a terminal of its own: it keeps running
until you press Ctrl+C. Don’t hand it to your agent — a portal it starts belongs to its session, and dies
when the agent moves on. Why →
How you know your first run worked
The three signals are up in Know it worked: the coverage line, the counts, and the DRAFT stamp. None of them asks you to trust an agent’s summary — and if the summary and the signals ever disagree, believe the signals.
See it for yourself by opening the map — that is the next page’s first move
(regixo open).