Every feature, at ten-gigabyte scale.
Caxton isn't a fast editor with a large-file mode bolted on. The huge file IS the design target. Everything below runs on memory-mapped I/O, a piece-table document model, and a tiered line index, and every number is measured and archived.
Open anything, instantly
Drag a 10 GB production log onto the Dock and it's scrollable, searchable, and editable before you let go of the mouse. Indexing streams in the background (80.6 million lines in 19.5 s) and nothing waits for it. Memory footprint stays under 200 MB no matter the file size.
The real 10 GB benchmark log: 80,610,954 lines, syntax-colored, fully indexed.
- Open modes for the truly enormous: whole-file by default, byte-range slice and tail modes when you want them.
- Follow-tail: pin the view to a growing log; appends absorb about once a second with full scrollback, search, and filters.
- Single-line monsters: a 500 MB minified bundle on one line scrolls like a config file; find runs in 0.5 s.
Read the manual: Opening Large Files →
Find & Replace that keeps up
A byte-level scanning engine covers ten gigabytes in about a second: 1.61 million matches found, counted exactly, highlighted live. Replace All is a single pass with a single undo step: all 1.61M replacements in 1.7 s.
1,613,344 matches at 10 GB in 1.3 s. The counter is exact, not an estimate.
- Case, whole-word, ICU regex, and escape sequences (
\n,\t,\xHH,\uHHHH) for cross-line searches. - Live highlights that track your edits: change a found word and its highlight retires instantly.
- Count, Find All, Bookmark All, search history, and named search presets with JSON import/export.
- Batch Replace: hundreds of find/replace pairs in one run, one pass or in order, per-pair results, pair lists as CSV/TSV.
- Find in Files across a folder or every open document: filename patterns, an honest skip report, and replace-across-files with previews, .bak backups, and a report.
- Find All results you can work: group by capture value or CSV column, sort by match text, filter to matches, export to a new document.
- The Advanced Find panel widens the bar into a full form; Find All lists every match in a clickable results panel.
Read the manual: Find & Replace →
Filter: grep you can scroll
Show only matching lines, with original line numbers, full editing, and the rest of the app still working. 80.6M lines filter in 1.3 s. Chain conditions with AND/OR and per-condition negate; save presets; extract every match to a new document.
160,846 ERROR lines out of 8 million, applied in about a quarter second.
Multi-condition chains live in the Filter Lines panel. The bar stays one line tall no matter how many you stack.
A CSV workbench, not a viewer
Delimited files get a real grid: frozen headers, typed columns, in-place editing. Two million rows parse in 2.6 s, and the file never stops being plain text, so saving writes the same CSV back out, no export step.
2,083,723 rows × 50 typed columns. Click a header to sort; double-click a cell to edit.
Spreadsheet editing, at file scale
- Select ranges by drag or ⇧-click; paste blocks straight from Excel or Sheets; clear, delete, or overwrite: each operation is one undo step. The status bar shows count, sum, and average for any selection.
- Drag rows and columns to reorder them, drag header borders to resize (double-click auto-fits), double-click a header to rename it. Hide columns you don't need, freeze the leading ones for wide files, auto-fit everything. The data is never touched.
- Edit any cell in place on a two-million-row file: Return commits, Esc cancels, Tab walks the row. Multiline and long values open in a full-value editor with a Raw mode that shows the stored bytes exactly. ⌘L jumps to any cell (
5000:12).
Sorting that knows what a number is
- Click a header to sort, click again to flip. The Sort Rows dialog goes further: any column compared as Text, case-sensitive bytes, Natural (
file2beforefile10), Numeric, Currency, or Date, ascending or descending, with a secondary “Then by” column for ties, and named presets for the sorts you run every week. - Sorts are stable, keep the header in place, and move rows verbatim; content is never reformatted. Two million rows in 8.2 s, one undo step.
- Type choices stick for the session: a column you sorted as dates stays a date column, and currency columns are detected on their own.
Sorted by a numeric column: stable, rows moved verbatim, one undo step.
Fill and Fill Series
- Drag the fill handle in any direction with a live preview of what will be written. A single number copies, two extend the series, and
Item01counts up without losing its padding. - The Fill Series dialog does the rest: linear and growth series; dates by day, weekday, week, month, quarter, or year with month-ends and leap days handled correctly; text-plus-number patterns; weekday and month name lists, terminated by selection, count, or stop value, optionally filling only empty cells.
- Decimal math is exact:
0.1, 0.2continues0.3, never0.30000000000000004. ⌘D fills down, ⌘R fills right.
Clean and reshape
- Dedupe with real choices: match on all columns or a chosen subset, keep the first or last occurrence (or none), or bookmark duplicates instead of deleting them.
- Frequency counts for any column; an Advanced Row Filter (multiple conditions chained with and/or, each targeting the whole line, any column, or one column, with Contains/Does Not Contain/Equals/Greater/Less Than); Filter by Column Values, the checkbox filter over every distinct value with counts; and one-click filters from any cell's right-click menu.
- Split a column at a separator or character position, combine adjacent columns, extract a column to its own document, transpose rows and columns, and insert sequential numbering.
- Convert the delimiter (CSV, TSV, pipe, semicolon, or custom) and flatten multi-line cells with Remove Embedded Newlines. Rows and columns insert, delete, and move from the menu or by drag. Quote All Cells, Remove Unnecessary Quotes, and Normalize Column Count keep messy exports honest; Convert Fixed-Width to Columns turns column-aligned text into a real delimited file, and classic-Mac CR-only files open in the grid too.
- No header row? A frozen numbered band (1, 2, 3…) keeps column identity: click it to select columns, sort, and resize exactly like a real header, or generate Column1…N placeholder names with one command. Whole-column selection enables every column operation directly, and short rows show their missing cells dimmed until you fill them.
Read the manual: CSV Workbench →
Editing at scale
Keystrokes apply in about a millisecond on a 10 GB document. Multi-cursor editing runs to 1,000 simultaneous carets: a keystroke across all of them lands in under 120 ms, as one undo step. Option-drag sweeps a rectangular selection; Option-Shift-click sweeps one from the caret to the click. Expand Selection grows through word, token, quoted string, brackets, line, and paragraph, and contracts back exactly.
Type once, edit everywhere. Selections merge, overlaps dedupe, undo is a single step.
Read the manual: Editing at Scale →
A full text toolbox
Everyday text surgery without leaving Caxton: every operation one undo step, at engine speed on files of any size.
- Lines: duplicate, delete, move, join, split at a delimiter, shuffle, remove empty, keep duplicates, indent/outdent, number, prefix/suffix, plus sort, reverse, dedupe, and pattern deletes. Byte-exact even around invalid UTF-8.
- Paragraphs: hard wrap to a column, reflow, unwrap, with quote and comment prefixes preserved on every line.
- Case: upper, lower, title, sentence, toggle, and all seven identifier casings (camelCase through CONSTANT_CASE), acronym-aware.
- Whitespace: trims, collapse repeated spaces, non-breaking-space conversion, column-aware tabs ↔ spaces, indentation normalize and detect, configurable tab width, and Show Invisibles with unusual whitespace highlighted.
- Numbers: increment, arithmetic, zero-padding that keeps its width, base conversion (2/8/10/16), sum with count and average.
- Escapes & hashes: HTML, XML, JSON strings, hex, Unicode escapes, ROT13, NFC/NFD/NFKC/NFKD normalization; SHA-256/512, SHA-1, MD5 in a copyable panel.
- Statistics: bytes through reading time, for the document or the selection, with an indentation report.
Soft wrap that survives huge files
⌥⌘W wraps at the window edge or a fixed column (80/100/120, with a guide line), with continuation markers in the gutter and visual indent on wrapped rows. Multi-gigabyte documents wrap responsively; a pathologically long line opts out per line instead of stalling the window. Navigation, selection, syntax color, and every overlay work in visual rows.
Wrap At 80 on a 1 GB log. The guide marks the measure.
Navigation built for millions of lines
Bookmarks persist across sessions and re-anchor by content when the file changed on disk. Markers keep patterns highlighted in six colors. The command palette puts every menu item a few keystrokes away, and a minimap gives a document overview strip for files up to 500 MB.
⇧⌘P: fuzzy-search every command and recent file.
Read the manual: Navigation & Bookmarks →
Split view, two themes, an honest status bar
⌘\ splits the window into two independent viewports of the same document. Dark and Light themes are hand-matched to the product's design, with System following macOS automatically.
One document, two places at once. Highlights and edits mirror, scrolling doesn't.
Read the manual: View & Themes →
Your work survives everything
Atomic saves that can't half-write. A crash-recovery journal every 30 seconds that never touches your original file. Session restore with scroll positions. External-change watching that reloads clean files and protects dirty ones.
Read the manual: Sessions & Recovery →
…and the rest of the toolbox
- Encodings & formatters: Base64 and URL encode/decode, JSON and XML formatters, narrow-to-selection, locale-stable date/time insertion at every cursor.
- File comparison: diff two files side by side at large-file scale.
- 11 encodings: reopen as UTF-8/16, Shift-JIS, EUC-JP, GB18030, Big5, EUC-KR, Windows-1252, ISO-8859-1.
- Workspaces: reopen a named set of files in one step.
- Jobs panel: background work with progress, never a beachball.
- Remappable shortcuts, spelling services, printing: the Mac-standard toolbox, all present.
The menu reference documents every command.
At every size
The scale numbers are the headline; the daily driving is the habit. An ordinary CSV opens into the same typed grid as a warehouse export: numeric, natural, currency, and date sorts, the value browser, fill series, and the full-value cell editor, with Add Column landing in under a second even on a million rows. The text toolbox (case tools, line surgery from dedupe to join and split, document statistics) treats a 40-line config with the same manners as a 10 GB log. Every feature, at ten-kilobyte scale too.
Private and native
AppKit and Swift top to bottom: no Electron, no web view. Your files never leave your Mac: no upload, no cloud processing, no telemetry of any kind. The only network calls are the update check and license activation, both disclosed.