Tabularius

Opens and hosts your .fmp12 files, built for AI. Open source, hosted by you.

How it works

Keep the solution you built. Give it a modern home.

Tabularius opens the .fmp12 files you already have and runs them, layouts, scripts, calculations and all, on a server you control. Nothing to rebuild and no new platform to learn.

1
Drop in your .fmp12

Tables, layouts, scripts, accounts and records are read straight from the file. Your original is never changed.

2
Host it yourself

On a server you already own. One command, or Docker.

3
Work anywhere, with AI

Any browser, any device, and assistants that respect every account's privileges.

Convert

Drop in a .fmp12 and it is hosted.

Tabularius reads the whole file and tells you, in plain English, what won’t work yet and what works differently, along with the built-in replacement.

  • One program hosts the file; no other server software
  • Calculations run live: unstored, stored, auto-enter and validation
  • A report of what works, what differs and what to do
Invoices.fmp12 48.2 MB Tables & fields 42 · 1,318 Layouts & themes 96 Scripts & custom functions 412 · 37 Accounts & privilege sets 12 · 5 Records & container files 184,203 Hosted EXAMPLE FILE · COUNTS ARE ILLUSTRATIVE
Web client

Your layouts, in any browser.

Themes, portals, tab and slide controls, popovers and conditional formatting, drawn the way the original layout draws them. Edit layouts right in the browser.

  • Browse, Find, Layout and Preview modes
  • Form, list and table view
  • Record locking and live updates in every window
Image to come: Layout mode
Image to come: Browse mode
Scripts

Scripts that run, and rewind.

Scripts run on the server from buttons, triggers, the Data API and AI. Record a run on a scratch copy, then step backwards and forwards through every variable and field change.

  • Debugger with breakpoints and a Data Viewer
  • Linter that catches loops that can't end
  • Some BaseElements and MBS functions run as built-in code
Close Invoice · Record run · 37 steps ▶ STEPPING FORWARD ◀ REWINDING 1Set Variable [ $id ; Invoices::ID ] 2Go to Related Record [ Lines ; Show only related ] 3Loop 4Set Field [ Lines::Status ; "Closed" ] 5Set Variable [ $total ; $total + Lines::Amount ] 6Go to Record/Request/Page [ Next ; Exit after last ] 7End Loop 8Set Field [ Invoices::Total ; $total ] step 1 → 37 Variables $idINV-20931 $total 0.00 1,284.50 Found set 1 invoice 6 lines Layout Invoice Lines Field changes Lines::StatusOpen → Closed × 6 records None yet SCRATCH COPY · HOSTED FILE UNCHANGED
AI

AI that knows your whole solution.

A built-in MCP server lets Claude and other assistants explore your schema, find and edit records, and check what a change would break. Every call runs as the signed-in account.

  • Find with AI, and dashboards from a sentence
  • "Why did this script fail?" with the exact step
  • Switch AI off per file; pseudonymize personal data
What breaks if I rename Customers::Email to Email Address? explain_solution · 42 tables, 77 relationships where_used · Customers::Email check_change_impact · rename field explain_related · Data API clients, 30 days RUNS AS: SALES MANAGER · READ ONLY · NOTHING CHANGED 4 things would break ExecuteSQL in Send Statement names it in quotes GetField ( "Email" ) in Mail Merge Privilege set Support keeps it by name 1 Data API client called it this week Fix all 4, then rename
Hosting

Your server. Your data. Your rules.

Run it where you choose. Accounts and privilege sets come with the file, and you can add passkeys, SSO, daily online backups and an access review.

  • One-command install, or Docker
  • Data API and OData for your integrations
  • Nothing leaves your server unless you allow it
Your server self-hosted Browsers Phones & tablets MCPAI assistants { REST }Data API & OData Locked to you
Everything else

Built for every developer of .fmp12 solutions, and every kind of solution.

# the URLs your integrations already call POST /fmi/data/vLatest/databases/Invoices/sessions GET /fmi/data/vLatest/…/layouts/Customers/records

Data API compatible

A conformance suite checks it against Claris's guide, so existing integrations should keep working. The docs list what differs.

5,000 steps

Record a run, then rewind it

Every variable, found set and field change, in either direction.

BE_JSONPathBE_RegularExpressionMBS textMBS paths

Plug-in functions

Some BaseElements and MBS functions run as built-in code.

Live

Record locking

Typing locks a record, so two people never overwrite each other. Changes appear in every window.

PasskeysSSO groupsAccess reviewTest this account

Security that carries over

Accounts and privilege sets come with the file.

Import Records · customers.xlsx "Joined" → Customers::Start Date day-first dates "Spend" → Customers::Lifetime $1,200.00 → 1200 "Status" → Customers::Status value list spelling

Import with matching

Columns matched by name and by their values, with a preview. One Undo takes it all back.

MIT

Open source

Read every line. Take your data out as SQLite, SQL or CSV at any time.

Your solution, your server, and AI that respects every privilege.

Get it

Open a file in a minute.

One command installs a single program on macOS or Linux, with no Node to set up. The demo hosts a sample app on your own computer, and deletes it when you stop.

  • MIT licensed, every line open to read
  • Your original file is left as it was
  • Windows, Docker and package managers are in the quickstart
# install, then try the sample app
curl -fsSL https://github.com/sitotisai/tabularius/releases/latest/download/get.sh | sh
tabularius demo

# host your own .fmp12 file
tabularius
Early software: keep your original file and a backup, and check the conversion report before you rely on a hosted file.