Caxton
Features Benchmarks Pricing Docs How it works Changelog Support About Download Free
Guides
All guides Large File Text Editors EmEditor for Mac UltraEdit Alternatives Notepad++ Alternatives Notepad for Mac File Too Large for VS Code CSV Editor for Mac Open a CSV File CSV Viewer for Mac Edit CSV Without Auto-Formatting Repair a Malformed CSV Remove Duplicate Rows Validate a CSV Transform a CSV Column Fixed-Width to CSV Sort a Large CSV CSV Too Big for Excel Open a Huge CSV Log Viewer for Mac Open a 10 GB Log Filter Large Log Files Jump to a Time in a Log Find & Replace in Huge Files Find & Replace Across Files Compare Two Text Files Open a SQL Dump Fix Garbled Text & Encoding Convert Line Endings Open a GBK or Big5 File Open a Large JSON File Numbers File Too Large

Your files.
One powerful editor.

Open CSVs as tables, edit text, clean up exports, and explore logs without switching apps. Work directly with your files, with nothing imported or uploaded. From everyday files to multi-gigabyte ones.

Text editing · Spreadsheet-style tables · Powerful data tools

Free to open, search, and filter. Try every Pro feature for 7 days, no credit card required. macOS 13.0 or later.

The same file open as a table in Caxton. A delimited file open as plain text in Caxton
orders-export.csv 20,000 rows, 3.3 MB Same file. Two views. Nothing imported anywhere.

Open. Explore. Change. Save.

Open your file, explore the contents, make changes, and save. Even when you're working with millions of rows.

Below is a guided walk through Caxton 2.2.0, drawn in the page, on customers.csv: a fictional customer export with 412 rows and seven columns. One button takes you through it.

  1. OpenThe file opens as a table, straight from disk. Text is one switch away.
  2. ExploreSort by a header, filter to the rows you need. A filter is a view, not an edit.
  3. ChangeTransform a column, remove duplicates. Every change is counted first and is one undo.
  4. SaveSave writes your changes back to the same file. Nothing else is touched.

customers.csv opens as a table, straight from the file. No import, no workbook, nothing uploaded.

1 of 12

A guided walk through the app's own commands, drawn in the page. Caxton does the same on the file itself, at any size.

The same workflow at fifty million rows.

The steps above, taken in one sitting on benchmark_csv_50m_rows.csv: 50,003,363 rows, 7.7 GB. The grid is on screen 1.6 s after Open and the full record index finishes in 21.1 s.

Filter, then transform. A row filter across all 50 million rows in 40.0 s, then Upper Case on the 24,967 visible cells of one column: 24,943 changed in under 2 s, one undo.

Report before removing. Delete Duplicate Rows… on a three-column key reports 2,867 groups, 2,878 rows, in 73.9 s before anything is written. At this size the removal streams to a new document.

Validate every row. Eight structural rules and an integer rule over the whole file: 1,494 problems in 255.6 s, each one a click away in the Problems panel.

Measured in one take on October 7, 2026, on a MacBook Pro, Apple M1 Max with 64 GB on macOS 27.0, with a warm page cache.

What's new in 2.0

Your CSV doesn't have to be huge.

Your files stay your files: open them directly on your Mac, with no cloud uploads, no proprietary formats, and no import step.

customers.csv Caxton customers.csv
Wherezipaccount_idjoined
In the file0213490071992547409932026-01-12
In Caxton0213490071992547409932026-01-12
After automatic type detection21349.0072E+151/12/2026

In the file

zip
02134
account_id
9007199254740993
joined
2026-01-12

In Caxton

zip
02134
account_id
9007199254740993
joined
2026-01-12

After automatic type detection

zip
2134
account_id
9.0072E+15
joined
1/12/2026
A ZIP code keeps its leading zero, a sixteen-digit ID keeps every digit, and a date-shaped value stays the text it was. Caxton shows the bytes in each cell and re-types nothing. A spreadsheet that detects types on import can rewrite all three on the way in, as the third row shows: how to edit a CSV without Excel changing the data.
  • Open it where it is. Caxton reads the file in place, from any folder on your Mac.
  • Keep its format. A CSV stays a CSV and a log stays a log. There is no workbook or project file to manage.
  • What you typed is what you get. Leading zeros, long IDs and date-shaped text stay exactly as they sit in the file. Only the cells you edit are rewritten, and they are quoted only when they need it.
  • Nothing leaves the Mac. No upload, no cloud processing, no telemetry.
  • Save to the same file. Caxton updates the file in place with a recovery journal when it can, and writes a complete new copy otherwise.
  • Big jobs leave the original alone. Past 256 MB, sort and duplicate removal stream to a new document.

One workspace. Different kinds of work.

Caxton is a text editor for Mac and a CSV editor for Mac in one window, and a log file editor when the file is a log. Each kind of file opens the way it reads best.

1Launch checklist, October
2 
3Shipping the customer export changes on Thursday. Before then:
4 
51. Run the export against last week's file and compare row counts.
62. Confirm the three warehouses in us-east are in the regions list.
73. Ask finance whether the annual plan still shows two months free.
84. Replace the old support address in the notification settings.
95. Spot-check twenty records by hand. Pick them at random, not the first twenty.
10 
11Notes from the call
12 
13- The import step in the old tool took eleven minutes for the full file. We open the same file directly now and work on it in place.
14- Duplicates come from the signup form double-submitting. Dedupe on the whole row, not on email, because a few households share an address.
15- City names arrive in whatever case the form sent. Title Case fixes most of them; the two with trailing spaces need a trim first.
16- Keep the file as CSV. Nobody downstream wants a workbook.
17 
18Open questions
19 
20Who owns the status column after launch?
21Do we keep paused accounts in the weekly digest?
notes.txt stays plain text, with find, multiple cursors and bookmarks.
  • notes.txt stays plain text, with find, multiple cursors and bookmarks.
  • customers.csv opens in the grid, with typed columns and a frozen header.
  • products.tsv opens in the grid too: 301 rows by 7 columns, saved back as tabs.
  • settings.json opens as highlighted, foldable text. As a JSON editor, Caxton adds Format JSON to pretty-print it.
  • app.log opens in Log Mode: severity tint, a severity filter and Go to Time.

Exports, SQL dumps and other large text files open as text, with the same find, filter and bookmarks. See opening a SQL dump.

Structured data tools, and the editor around them.

  • Find and Replace with regular expressions, exact counts and Replace All as one undo step.
  • Multiple cursors and rectangular selection for edits across many lines.
  • Bookmarks on any line, with notes, listed in the sidebar.
  • Filter Rows on the whole line, any column or one column, combined with and/or.
  • Sort by clicking a header, or Sort Rows with a second column to break ties.
  • 48 transforms in Transform Cells: case, whitespace, dates, numbers, regular expressions.
  • Validation with eight structural rules and a schema for each column.
  • Delete Duplicate Rows with a report before anything changes.
  • Column Profile in the sidebar, for a quick read of what a column holds.
  • The Inspector for encoding, line endings, delimiter and a cell's raw value.
  • One search field for files, commands after > and line numbers after :.
  • The sidebar with File Browser, Bookmarks, Search Results, Problems, Operations and Column Profile.
  • Keyboard everything, from ⇧⌘C to ⌃⌘S, listed in Shortcuts.

All features

420 lines or eighty million.

The same Text view, the same Find and Filter with exact counts, the same Log Mode, on a 10 GB log with 80,610,954 lines. Size changes how long a full pass takes, never where you work.

benchmark_ascii_log_10gb.txt, the first lines of 80,610,954, with every ERROR highlighted by Find
1[2024-01-02 13:59:18.730] INFO server-node-07 SessionManager - GET /9pi/v2/reports/daily 200 8372ms sessionId=6d5d0dbafa75
2[2024-01-02 11:10:18.534] INFO server-node-07 SessionManager - GET /api/v2/auth/token 200 5930ms sessionId=33cabf3ad4d7
3[2024-01-02 03:19:18.295] INFO server-node-15 SessionManager - GET /api/v1/legacy/migrate 201 6601ms sessionId=8e3d931319a2
4[2024-01-03 04:59:23.648] INFO server-node-18 RateLimiter - GET /api/v2/reports/daily 204 3920ms sessionId=5a722fd50bd0
5[2024-01-01 09:18:54.474] INFO server-node-17 SessionManager - GET /api/v2/files/4610/download 201 7595ms sessionId=9aa738c365c8
6[2024-01-02 21:32:20.403] INFO server-node-05 RateLimiter - GET /api/v2/webhooks/851201 201 680ms sessionId=ad04f668376d
7[2024-01-02 09:50:55.492] INFO server-node-04 CacheProxy - GET /api/v2/products/569070/details 201 4465ms sessionId=317096a83208
8[2024-01-01 09:39:10.870] INFO server-node-16 CacheProxy - GET /api/v2/analytics/events 204 8679ms sessionId=b0e273f3b86d
9[2024-01-02 11:38:48.590] INFO server-node-20 RequestHandler - GET /api/v2/analytics/events 201 5040ms sessionId=7ae310f5d0ea
10[2024-01-01 03:30:24.945] INFO server-node-05 AuthFilter - PUT /api/v2/webhooks/893239 204 2907ms sessionId=835a685d51e5
11[2024-01-01 12:50:35.733] INFO server-node-04 AuthFilter - GET /api/v2/inventory/check 204 3607ms sessionId=6cadddcb8b03
12[2024-01-01 10:02:18.990] DEBUG server-node-04 CacheProxy - POST /api/v2/health 301 8778ms sessionId=e5d170b620b2
13[2024-01-02 16:10:19.526] INFO server-node-16 CacheProxy - PUT /api/v2/health 200 6211ms sessionId=03c6f998d889
14[2024-01-03 09:07:57.910] INFO server-node-07 SessionManager - GET /api/v2/files/809790/download 200 2022ms sessionId=a9a046ad7d4e
15[2024-01-01 22:50:27.652] INFO server-node-04 AuthFilter - GET /api/v2/config/settings 200 474ms sessionId=ef083b2bb61c
16[2024-01-02 11:04:26.004] INFO server-node-07 AuthFilter - GET /api/v2/search?q=phone 204 6025ms sessionId=0f00ea67740c
17[2024-01-03 11:40:15.256] INFO server-node-07 SessionManager - POST /api/v2/reports/daily 204 9169ms sessionId=c3651c426bdf
18[2024-01-01 06:32:54.926] INFO server-node-20 AuthFilter - GET /api/v2/reports/daily 200 5439ms sessionId=405a4ac556e9
19[2024-01-01 13:41:02.533] INFO server-node-03 RateLimiter - POST /api/v2/reports/daily 200 7656ms sessionId=4a7ab5cb6838
20[2024-01-02 06:14:13.165] ERROR server-node-20 SessionManager - PUT /api/v2/notifications 504 9962ms sessionId=af97c1e43558
21[2024-01-01 21:33:04.475] INFO server-node-04 SessionManager - GET /api/v2/products/822593/details 204 3114ms sessionId=c7d27f1139ba
22[2024-01-03 16:24:40.995] INFO server-node-12 RateLimiter - GET /api/v2/health 204 9632ms sessionId=293bb5a263ed
23[2024-01-03 13:15:37.007] DEBUG server-node-19 AuthFilter - GET /api/v2/config/settings 200 879ms sessionId=2006bd81cc1d
24[2024-01-02 19:47:28.335] INFO server-node-16 AuthFilter - POST /api/v2/payments/992328/status 204 7714ms sessionId=7e64231f43e8
25[2024-01-02 17:59:49.284] INFO server-node-20 DataPipeline - PATCH /api/v2/auth/token 204 901ms sessionId=4e383db85a1e
26[2024-01-03 05:19:48.778] DEBUG server-node-06 RequestHandler - POST /api/v2/health 301 9093ms sessionId=992503ec6582
27[2024-01-02 17:42:35.859] INFO server-node-17 RateLimiter - GET /api/v1/legacy/migrate 200 1237ms sessionId=1b7f5f17170f
28[2024-01-03 04:36:47.675] INFO server-node-11 AuthFilter - GET /api/v2/notifications 204 7135ms sessionId=16facb183653
29[2024-01-03 09:26:43.475] ERROR server-node-06 SessionManager - PUT /api/v2/auth/token 503 9282ms sessionId=e6e9fd9a0282
30[2024-01-01 13:38:46.877] INFO server-node-19 AuthFilter - PATCH /api/v2/orders/855361 201 6370ms sessionId=423391e4ec04
benchmark_ascii_log_10gb.txt · 80,610,954 lines · 10 GB · on screen the moment it opens, the full line index in 3.7 s

Open, then index. The file is on screen the moment it opens. The full line index of 80,610,954 lines finishes in 3.7 s in the background, and the status bar says when.

Find, counted exactly. ERROR across the whole file: 1,613,344 matches in 1.0 s. A regex alternation finds 5,643,688 in 1.8 s.

Filter, replace, save. Filter to the 1,613,344 matching lines in 1.0 s, Replace All at 1,613,344 sites in 1.7 s, Save after scattered edits in 11.3 s.

Measured in Caxton on a MacBook Pro, Apple M1 Max with 64 GB on macOS 27.0; the Replace All and Save rows on macOS 15.7. The same file on an 8 GB MacBook Air returns every count identical.

See the benchmarks

Built for the files other editors can't handle.

Caxton maps a file instead of loading it into memory, which makes it a large-file text editor with no special mode: the window that opens a 20 KB export opens a 50 GB log. Size changes how long a full pass takes. It never decides whether you can work.

  • 3.7sto index a 10 GB log
  • 1,613,344matches found in 1.0 s
  • 50millionrows in one CSV, open in the grid
  • 2,246,521duplicate groups found in 61 seconds
benchmark_csv_50m_rows.csv, first rows
col_00_textcol_01_integercol_02_decimalcol_03_datecol_04_mixedcol_05_textcol_06_integercol_07_decimalcol_08_datecol_09_mixedcol_10_textcol_11_integercol_12_decimalcol_13_datecol_14_mixed
off if old4988949479.81692020-05-0189think hand name and-949350-8082.37412021-12-28knowfrom study other ask-296508-1127.81352023-05-16could them
much before long another380938386.36452023-01-0823name ask oil get-225094-7314.17502021-10-03youthese where about people3558408920.51342022-09-27her
water go man other not such362010-7220.12382021-11-1162of than here-7025246907.35672020-12-2932because-9867731076.56412021-03-0444
on in who two-642781-9258.19882021-10-19call sameare been around see were530083-2900.28812020-08-1544was as-776613-1022.04962021-04-128
tell when thing-2374029899.46842023-04-07went youwater at where other9209441222.16782020-07-17water willwe know read-224770-6696.76482022-11-0582
these little with water large-7911381896.22072024-03-119over so-6415172318.79942020-09-2258you right-8232719614.74562022-09-0193
need know6305245239.07142020-08-07any livegive point time well5318-5171.38022020-04-11backfrom may have-62671-5932.70262023-11-28said went
"name"8246316374.66912023-02-06the butan-8933561432.54862021-09-20long wentthen the6270687565.80142021-09-1350
we his home made play look-239808348.42052020-06-26because samenumber-1923875164.04332022-01-2775then way way only sentence-448512-9686.22062023-11-2763
had must when3038335105.35642021-08-1374she with-1729663826.60442020-02-03twoname that well take many-5882155789.60372023-06-3014
mean20284-3961.39152023-11-2473know who boy he more4121707355.08862021-08-1479"up to point this each"-4441123664.87042021-07-2579
is three day other help down6569402786.33982020-01-27any workonly still why small part still-7882971682.20642020-05-0833place one answer its-9044708323.39912020-11-2927
call from use are5723482758.33762022-09-01oneven-4900862869.84042020-03-22worldis big such just520532-4060.66302022-11-29move
did get425288-4358.99862023-12-10for yearthink way with as-964484-1080.73392021-03-0412point made do-426812-5762.85882021-04-1123
old page its2335752640.53242022-04-1413sound sentence how had788215-2384.28632023-08-0177been as boy still down or-6641099141.85752023-07-30is did
write an-23863-2777.36572020-05-04men"need than line well long"972008-2801.02392021-06-254around565739-2532.74122023-01-1353
A 7.7 GB CSV with 50,003,363 rows opening in Caxton. The grid is on screen in 1.6 s; the index finishes in the background, 21.1 s on the M1 Max.

What the numbers rest on.

The file stays on disk and only what is on screen is read. Edits go into a piece table with full undo, a line index builds in the background while you work, and jobs too large for memory stream to disk.

  • Find counts all 1,613,344 matches in a 10 GB log in 1.0 s.
  • Memory stays under 160 MB through every measured operation on a 50 GB log. That memory figure is the 50 GB text benchmark on macOS 15.7; CSV grids and other macOS versions use more.
  • Sort 10 million CSV rows in 25 s, streamed to a new document.
  • The same 10 GB log on an 8 GB MacBook Air: every count identical, a full search from disk in 15.7 s.

The benchmark method

Headline benchmark results: operation, file, file size, and measured result
operationfilesizeresult
Full background index10 GB log80,610,954 lines3.7 s
Find, 1,613,344 matches, counted exactly10 GB log80,610,954 lines1.0 s
Regex alternation, 5,643,688 matches10 GB log80,610,954 lines1.8 s
Replace All, 1,613,344 sites, one undo10 GB log80,610,954 lines1.7 s
Keystroke apply latency10 GB log80,610,954 linesabout 1 ms
Full background index50 GB log403,046,288 lines22 s
Find, 8,059,509 matches, counted exactly50 GB log403,046,288 lines46 s
Memory footprint, every 50 GB row50 GB log403,046,288 linesunder 160 MB
Parse to a typed grid1 GB CSV2,022,947 rows by 50 columns2.3 s
Sort by a numeric column, streamed to a new document1 GB CSV2,022,947 rows by 50 columns4.4 s
Sort, streamed to a new document5.1 GB CSV10,000,000 rows by 50 columns25 s
Full background index
3.7 s
Find, 1,613,344 matches, counted exactly
1.0 s
Regex alternation, 5,643,688 matches
1.8 s
Replace All, 1,613,344 sites, one undo
1.7 s
Keystroke apply latency
about 1 ms
Full background index
22 s
Find, 8,059,509 matches, counted exactly
46 s
Memory footprint, every 50 GB row
under 160 MB
Parse to a typed grid
2.3 s
Sort by a numeric column, streamed to a new document
4.4 s
Sort, streamed to a new document
25 s

Measured on the same M1 Max across macOS 15.7 and 27.0. Indexing ran from disk, the small-file searches used a warm cache, and the 50 GB search ran from disk. The benchmark table has each row's date, build, and conditions. On an 8 GB MacBook Air with M1 the same 10 GB log opens immediately, every count comes out identical, and a full search runs from disk in 15.7 s.

Full methodology

Will it handle my file?

Two inputs. The answers are arithmetic on the measurements above, not promises.

Opens
immediatelyAt any size, because the file is mapped, not loaded.
Index
about 4 to 20 secondsIn the background. The file is usable the whole time.
Searches
about 1 second per full passFrom the page cache: 10 GB fits comfortably in 32 GB of memory.
Saving
plan for about 20 GB freeA full rewrite needs room for a complete new copy, and indexes and temporary results can need more. Edits that keep the file the same length update it in place instead. See Sessions and Recovery.

Estimates from the published measurements. Index: 10 GB in 3.7 s and 50 GB in 22 s on the M1 Max, 20.9 s for 10 GB on the 8 GB Air. Search: 1.0 s per 10 GB from the page cache; from disk, about 650 MB/s on the Air's SSD to about 1 GB/s on the Pro's. A file counts as cached here when it is at most half of memory: 10 GB on the 64 GB machine ran from cache, while 50 GB on it and 10 GB on the 8 GB Air did not. Your SSD, and whatever else is in memory, move these numbers.

Those numbers run on your files too.

Download Free

Made for Mac.

Caxton is a native Mac app, written in Swift with AppKit from top to bottom. No Electron, no web view, no plugin runtime.

  • Memory-mapped files. The file stays on disk; only what is on screen is read into memory.
  • Under 200 MB through every measured operation on a 50 GB log.
  • Private by default. No upload, no cloud processing, no telemetry. Privacy policy.
  • A real Mac citizen. Tabbed windows, the Services menu, native file dialogs and the system print dialog.
  • One universal download. Apple Silicon and Intel, macOS 13.0 or later, 7 MB.
  • Coming from Windows? EmEditor and UltraEdit users looking for a Mac alternative can start with EmEditor for Mac and UltraEdit alternatives.

The sidebar.

File Browser, Open Documents, Bookmarks, Search Results, Problems, Operations and Column Profile, in one place beside the document. ⌃⌘S shows it.

Two Caxton windows: a log with the File Browser sidebar open, and a CSV grid with the Inspector open on a cell

One search field.

Open a file by name, type > for a command, or : and a number to jump to a line. ⇧⌘P and ⇧⌘O open it.

The search field listing commands after a > is typed The search field listing files by name

The Inspector.

Encoding, detection confidence, line endings and the detected delimiter, and for a cell its parsed value and raw bytes. ⌥⌘I shows it.

The Inspector beside the grid, showing a cell's parsed value and the Raw row with its byte count and flags

Keyboard first.

Every panel, view and common command has a shortcut: ⇧⌘C for the grid, ⌃⌘1 through ⌃⌘7 for the sidebar panels, Back and Forward between places you have been.

Find
⌘F
Find and Replace
⌥⌘F
Filter Lines
⇧⌘L
Go to Line
⌘L
Go to Time
⌥⌘L
CSV Grid View
⇧⌘C
Search Files or Commands
⇧⌘O
Command Palette
⇧⌘P
Show Sidebar
⌃⌘S
Show Inspector
⌥⌘I
Select Next Occurrence
⌘D
Split View
⌘\

The full list is in Shortcuts, and How it works explains the engine underneath.

Eight themes. Every one readable.

Dark and Light, Solarized, One Dark, Gruvbox and two High Contrast themes, each held to minimum contrast for text, syntax and line numbers. Follow the system appearance or pick one under View ▸ Theme.

About the themes

Melvin Hemingway

Meet the developer

I built Caxton because I needed it.

Melvin Hemingway · Founder · Principal Software Engineer

I'm Melvin Hemingway, a Principal Software Engineer and the developer behind Caxton.

When I switched from Windows to Mac, I couldn't find replacements for some of the tools I used every day, especially Notepad++ and EmEditor. I was tired of switching between a text editor, Excel, and SQL just to get my work done.

So I built Caxton.

Read my story

Make it yours.

Try first: download Caxton and a 7-day free trial of Caxton Pro starts on its own, with no credit card or account required. Buy whenever you're convinced.

Caxton Free
$0
forever
  • Open files of any size, as text or in the grid
  • Search, filter, switch views, copy out what you find
Download
Monthly or annual
$9.99
per month, or $99.99 per year
  • The full app while the subscription runs
  • Annual is two months free
  • Cancel anytime

Caxton Free after the Caxton Pro trial, or after a subscription lapses

  • Open files of any size, as text or in the grid
  • Switch between Text and Table
  • Search and filter with exact counts
  • The Inspector, Column Profile and validation
  • Compare two files, without copying changes across
  • Save reports: duplicate groups, problem rows, frequency tables
  • Copy out what you find, with no account and no time limit

The three paid plans unlock the same Caxton Pro, every feature and priority support included. The only difference is how you pay. Caxton Free is the same app for opening, searching, filtering, comparing, and copying, and for saving reports, without editing or saving the files you opened. Buying for a team? Volume licensing with invoice billing is available: hello@caxton.app. Details on the pricing page.

Questions people ask.

Is there a free version?

Yes. After the 7-day Pro trial, Caxton Free keeps opening files, searching, filtering, comparing, and copying, and you can still save reports such as duplicate groups, problem rows, and frequency tables. Editing or saving a file you opened, and extracting its contents to a new document, need Caxton Pro.

Will it work on a base MacBook Air with 8 GB?

Yes. On an 8 GB M1 Air the same 10 GB log opens immediately, keystroke latency stays at about 1 ms, and every match count comes out identical to the 64 GB Pro. Searches that run from cache on a big machine run from disk on a small one, so a full pass over a 10 GB file takes about 15 seconds instead of 1.0. The Air numbers are on the benchmarks page.

Apple Silicon and Intel?

Both, one download, universal binary. macOS 13.0 or later.

Does my data leave my Mac?

No. Files are read in place and never uploaded; there is no cloud processing and no telemetry. License activation sends only what the privacy policy lists.

How is this different from Zed, BBEdit, or VS Code?

Caxton is text editing, CSV tables, and data cleanup in one native Mac app. Choose it when you want to work directly with a file, switch between text and columns, keep values like leading zeros exactly as they are, or open a file your current editor can't. The large-file engine is headroom even when today's file is small.

Is it a spreadsheet?

No. The grid opens delimited files as typed columns you can sort, filter, fill, dedupe, and edit, and it saves back to plain CSV. There are no formulas and no charts, on purpose.

How big is too big?

Caxton does not impose a file-size ceiling of its own. Measured to 50 GB and 403 million lines with memory under 160 MB; past that the limits are your disk (an atomic save needs about twice the file free) and time (searches past the page cache run from disk near the measured rate on the benchmarks page).

What happens if my subscription lapses?

Caxton stays installed and becomes Caxton Free: opening, searching, filtering, comparing, copying, and saving reports keep working. Editing or saving a file you opened, sorting, transforms, removing duplicates, and extracting to a new document need Caxton Pro. Nothing locks and nothing uninstalls. Lifetime licenses never lapse.

More in the documentation, the guides, the changelog and on the support page. The people behind Caxton are on the about page.

The file is already on your disk. Open it.

7 days of Caxton Pro, no credit card required. Apple Silicon and Intel.

7 MB, macOS 13.0 or later, notarized. SHA-256 361f61a8…ba499491

Install with Homebrew: brew tap hwyenigmallc/caxton then brew install --cask caxton

Major releases only. A few emails a year. No email tracking, unsubscribe anytime.