specs version 1.0.0
Tech specs
Everything Tabulay opens, how fast, and what it asks of your Mac. Nothing here is rounded up.
Requirements
| macOS | macOS 14 Sonoma or later |
|---|---|
| Distribution | Mac App Store only |
| App language | English. The App Store page is in English and French. |
| Account | None |
| Network | None. The app has no permission to connect to the internet. |
Files
| Opens | CSV, TSV and delimited text (comma, semicolon, tab, pipe). Microsoft Excel workbooks (.xlsx), one sheet at a time, with Tabulay Pro. |
|---|---|
| Encodings | UTF-8, with or without a byte order mark, and Windows-1252. UTF-16 files with a byte order mark are refused with a clear message. |
| Detected on open | Delimiter, encoding, header row, decimal separator and date format, with a live preview (File ▸ Open with Options, ⇧⌘O). |
| Decimals | A decimal point (-1234.50) or a decimal comma (-1.234,50, -12 480,00, thousands grouped by a dot or a space), detected per column. Decimal-comma amounts are numbers everywhere: totals, number filters, sorting, the inspector and SQL. Saving keeps every amount as written. |
| Size | Up to 2 GB for editing. Larger files open read-only. Every file is memory-mapped and indexed in one pass; rows are parsed only when shown or queried. |
| Line endings | CRLF, LF, lone CR and mixed, each kept as it was on save. |
| Also handled | Quoted fields with delimiters and line breaks inside, escaped quotes, blank lines, rows with too few or too many fields, a missing final newline. |
| Saves | In the file’s own format. Untouched rows are copied byte for byte; edited rows are written with the file’s delimiter, encoding and line endings, quoted only where needed. Adding, deleting, splitting, merging or computing a column rewrites every row that way. A value that can’t be encoded stops the save and names the value and its column. |
| Exports | Export View as CSV (⇧⌘E): the rows in the current view, after filters or a query. Compare differences as CSV. |
| Workbooks | Never written to. Open with Options picks the sheet and whether its first row is the header; Open takes the first visible sheet. Values come out plainly: numbers without grouping or currency symbols, dates as ISO, from both the 1900 and 1904 systems. Save writes a CSV. |
| Not supported | .xls (Excel 97 to 2003), Numbers documents, JSON, Parquet. Export them as CSV or .xlsx first. |
Performance
| On a 207 MB CSV file of 1.3 million rows | Time1 |
|---|---|
| Index the file, ready to scroll | 0.35 s |
| Show the first rows | 0.2 ms |
| Check the type of every value | 1.5 s |
| Save after an edit | 0.5 s |
1. Measured on a 207 MB, 1.3-million-row CSV file with a release build of Tabulay’s core engine, September 2026. Actual times vary with the file and the Mac.
Features
| Area | Free, forever | Tabulay Pro and the 14-day trial |
|---|---|---|
| Open | Files up to 2 GB, indexed; Open with Options | Excel workbooks (.xlsx) |
| Types | Every column typed; values that don’t fit are counted in the header, never converted | Normalize the few values written the other way in a number column (a stray decimal comma, or a point in a decimal-comma column) and dd/MM/yyyy dates in a date column, with a preview |
| Find and filter | Filter chips, Show Only and Hide from a cell, header sort, Find (⌘F), Matching Rows Only (⇧⌘F) | SQL editor, Examples, saved queries, Explain |
| Edit | Cells, rows and columns; paste from Numbers or Excel; Fill Down | Find & replace with regular expressions, split, merge, derived columns |
| Clean | Mask Card Numbers | Remove Duplicates, with the groups shown first |
| Compare | Compare with another file, on an ID column or by position; export the differences | |
| History | Every change a named step; undo, redo, jump back; the History as a pipeline | |
| Totals | Sum, average and count of a selected number column, decimal commas included, in exact decimals, over up to 200,000 rows (labelled when capped); a warning when currencies are mixed | SQL totals the whole file |
| Inspect | Column profile over the rows in view (the first 100,000 at most): type, conformity, figures, histogram or top values, issues | Column insights over the same rows, computed on the Mac: a box plot from P5 to P95 with P25, median, P75, mean, standard deviation and outliers; average or sum per category and per day, month or year; rows per value and top values over time; a date column’s timeline, stacked by a category, and rows per weekday. Click a category’s bar to filter |
SQL
- A full analytical SQL engine, built in: joins, GROUP BY with ROLLUP, window functions, QUALIFY, CTEs, PIVOT, subqueries, percentiles and medians, date and text functions, list functions and lambdas.
- Your file is a table named after the file (
shop_orders), or simplythis. Columns are typed from the file’s schema, soamount < -1000compares numbers, decimal-comma amounts included. A_rawview keeps the original text. ~and!~match regular expressions, case-insensitively.- Queries that return the file’s own rows keep the grid editable. Aggregates show as a read-only result.
- Explain (⌥⌘E) shows the real query plan, with timings on request.
- Once a file is loaded, the engine can’t read or write any other file, load extensions or change its own settings, and each query runs as a single statement.
Privacy and security
- App Sandbox, user-selected files only. Hardened Runtime. Distributed through the Mac App Store.
- No network entitlement: macOS blocks any connection. App Store privacy label, from launch: Data Not Collected.
- Card numbers detected (13 to 19 digits, Luhn checksum, network prefixes) and masked in the grid. Grid copies that hold them are kept off clipboard history. Columns of card numbers are flagged before a save or export writes them in full.
- Working copies for files over 64 MB live in the app’s container and are deleted on close, or at the next launch after a crash. They can be kept in memory only.
- Security settings can be enforced by MDM for the preference domain
me.expertiseby.tabulay. See Security and compliance.
Accessibility and the Mac
- Dark Mode and Increase Contrast, with colors defined for each. The Find highlight and the brief notices don’t have high-contrast versions yet.
- VoiceOver. Every command is in a menu and in the command palette (⌘K), and the common ones have shortcuts.
- Native tabs, Duplicate, Rename, Move To and Revert to Saved, from the Mac’s own document system.
- Can become the default app for .csv, .tsv and .xlsx files.
Keyboard shortcuts
Also in the app under Help ▸ Keyboard Shortcuts (⌘/).
| Shortcut | Command | Menu |
|---|---|---|
| ⌘K | Command Palette | View |
| ⌘O ⇧⌘O | Open, Open with Options | File |
| ⌘S ⇧⌘S ⌥⇧⌘S | Save, Duplicate, Save As | File |
| ⇧⌘E | Export View as CSV | File |
| ⌘Z ⇧⌘Z | Undo, Redo (named after the step) | Edit |
| ⌘C ⌘V ⌘X | Copy, Paste, Cut, as tab-separated text | Edit |
| ⌘F ⌘G ⇧⌘G | Find, Find Next, Find Previous | Edit ▸ Find |
| ⇧⌘F | Matching Rows Only | Edit ▸ Find |
| ⌥⌘F | Find & Replace | Edit ▸ Find |
| ⌘D | Fill Down | Table |
| ⌥↑ ⌥↓ | Insert Row Above, Below | Table |
| ⌥← ⌥→ | Insert Column Before, After | Table |
| ⌘⌫ | Delete Rows | Table |
| ⌘1 ⌘2 | Filter Chips, SQL Editor | View |
| ⌃⌘S ⌥⌘I | Toggle Sidebar, Toggle Inspector | View |
| ⌥⌘Y | Show History | View |
| ⌘↩ ⌥⌘E | Run Query, Explain Query | Data |
| ⇧⌘D | Remove Duplicates | Data |
| ⌥⌘C | Compare With | Data |
| ↩ or type | Edit a cell; ↩ commits and moves down, ⇥ moves right, esc cancels | Grid |
| ⌘↑ ⌘↓ | First row, last row (add ⇧ to extend the selection) | Grid |
| ⇧Space ⌃Space | Select the row, select the column | Grid |
| :N in ⌘K | Go to row N | Palette |