Regixo docs
🔧 For the engineer·Step 1 of 7 — Install & first run·see the whole journey ↗
Data catalog · engineer

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.

The only prerequisite Node.js 22.18 or newer — the version where Node runs TypeScript directly. Nothing else installs first. If yours is older, Regixo stops with a plain 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.

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:

StepWhat you doWhat happens, and what you decide
1 · Opencd to the folder with your .env.DATABASE_URL is already in that file — nothing to set up.
2 · Runnpx regixo startnpx 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 · Checkregixo statusThe 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:

say

“Set Regixo up in this project — scan my sources and build the data map.”

Show the commandHide the commandShow the sentenceHide the sentence
run
$ npx regixo start
then

Your 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:

example output
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:

example output
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 -v
example output
v22.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 start
First time only npx downloads Regixo and asks Need 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.

“No database connected” is expected — not an error It is the usual state on a brand-new run in an empty folder. Connect one (below) or hand it off — nothing broke.

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.

Answered it wrong, or your status changes later? Flip it any time — 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.

say

“Summarise what Regixo has connected and scanned, and what’s still missing.”

Show the commandHide the commandShow the sentenceHide the sentence
run
$ regixo status
then

Your 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
example output
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:

example output
  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

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:

What's left is the data catalog: the map, search, lineage and descriptions.

say

“Show me Regixo’s current settings.”

Show the commandHide the commandShow the sentenceHide the sentence
run
$ regixo config
then

Your 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
example output
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 .env yourself.

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 postgres runs a short wizard. Paste your connection string and it offers to save it to a local .env (git-ignored) so it just works — no manual export. regixo.yml keeps 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.

Remove a source, or start over Configured the wrong source, or one won’t connect? List what’s set with 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.

Two commands that change nothing on your sources

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 →

New to working this way? Your job changes when an agent runs Regixo: you say what you want, and you check the result. Work with your agent covers what to check, the two lines your agent must never cross, and why there is no plugin to install.

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).