macOS Data Toolbelt
└─ cd ../projects
Csvoir

// native macOS app · swift · [●] live

Csvoir

Минималистичный CSV/TSV-редактор для Mac, который держит файлы на миллион строк и не врёт с разделителями. Открыл — сразу редактируешь, как в таблице, а не в текстовом поле.

macOS 14+1M+ строкRFC 4180без Xcodefree & open source
Csvoir — грид
└─01

БЫСТРО И ПРАВИЛЬНО

Миллион строк — норм. Фильтр и поиск идут на фоновой очереди с отменой устаревших задач; главный поток не залипает, пока печатаешь. NSTableView держит ячейки ленивыми — память и CPU зависят от видимых строк, а не от всех.
RFC 4180 без сюрпризов. Авто-определение разделителя (, ; \t |), кодировки (UTF-8 ±BOM, UTF-16, fallback Latin-1) и переносов (LF/CRLF/CR). Многострочные значения в кавычках — как надо.
Round-trip с Excel/Numbers. Copy/Cut/Paste как TSV — данные чисто ездят в Excel, Numbers и Sheets и обратно, без поломанных ячеек.
Статистика на лету. Выдели диапазон — в статус-баре сразу count, sum, average, min и max, по-локальному отформатированные.
Csvoir — статистика выделения
└─02

РЕДАКТОР

// настоящая таблица, а не текстовое поле
inline-правка

Двойной клик или Enter — правишь ячейку на месте. Многострочные значения в кавычках поддерживаются.

сортировка

Клик по заголовку — сортировка по колонке, числовая или локале-зависимая лексикографическая, определяется автоматически.

фильтр по колонке

Фильтр по конкретной колонке или «по любой», со сканом на фоне и дебаунсом — UI не тормозит.

find & replace

Поиск ⌘F с переходом prev/next ⌘G, замена в одной ячейке или во всех.

строки и колонки

Вставка и удаление строк/колонок до или после выделения, тоггл «первая строка — заголовок» с нумерацией.

ширина и зум

Двойной клик по краю колонки — авто-подгон ширины; зум ячеек ⌘+/⌘−/⌘0, сохраняется между запусками.

документная модель

Несколько окон через DocumentGroup, «Open Recent» из коробки, Reveal in Finder ⇧⌘R.

встроиться в систему

По желанию — предложение стать приложением по умолчанию для .csv и .tsv при первом запуске.

└─03

ПОЧЕМУ ТАК

// один из трёх

Csvoir — средний в линейке нативных дата-инструментов рядом с Squire (SQLite) и JSONEditor (JSON). Общая идея: маленькие быстрые приложения под один формат, SwiftUI + AppKit (NSTableView для грида), без внешних зависимостей и без Xcode — только Command Line Tools и ad-hoc подпись. Никаких аккаунтов, облака и аналитики. Открыл файл — работаешь.

NSTableView, обёрнутый в SwiftUI. Гибридный подход через NSViewRepresentable — производительный грид внутри современного app-shell на DocumentGroup.
Undo-able мутации. CSVDocument держит данные и откатываемые изменения; CSVParser отвечает за RFC 4180 разбор и сериализацию.
└─04

SPEC

platformmacOS 14+ · Swift 6
uiSwiftUI · DocumentGroup · AppKit NSTableView
formatsCSV · TSV · RFC 4180 · авто-детект кодировки/переносов
scaleмлн строк · async-фильтр · lazy-rendering
buildSPM + shell · Command Line Tools · ad-hoc signing
licensefree & open source · alcovegan/csvoir

Брось CSV на иконку — и ты уже в таблице.

$ open file.csv └─ вернуться ко всем проектам