Description

Delimited is a minimalistic CSV and TSV editor for macOS that strictly follows RFC 4180. It's built for speed and simplicity, letting you quickly create or explore tables and save them in either format.

I’ve always thought of Delimited as “TextEdit to Numbers”: lightweight, straightforward and (reasonably) fast, specifically made for working with text-based delimited files. The app is fully native, built in Swift, and has comfortably handled files with 2 million rows on my M2 MacBook Pro. While it’s not focused on excelling in any particular benchmark, it strikes a balance between performance, design and user experience.

I hope you’ll enjoy using it.



Motivation

Every now and then I get presented with a CSV file - sometimes a large dataset that has been generated by a device, other times a smaller one mapping some thing to another thing. Before working with the file, I usually want a quick look at the data to ensure everything looks correct and familiarise myself with the table’s structure. I might need to remove empty rows or discard a column that’s irrelevant. After that, the file typically gets used in a piece of code or gets uploaded somewhere else for further use.

I built Delimited out of frustration with existing options. Text editors are my preferred method to edit CSV files because CSV files are nothing but plain text - and text editors are fast. Unfortunately text editors struggle with table layouts and basic operations like swapping or deleting columns - especially when the table is sufficiently large. Spreadsheet apps like Numbers or Excel can feel too complex for simple tasks and often require converting data into proprietary formats or using the cloud. While there are other CSV editors for macOS available, for various reasons I decided to create my own.

FAQ

I'll expand this list once I get some actual questions.


  • What is Delimited's feature-set?

    Delimited is purposefully limited. You can use it to view and edit CSV and TSV files. Files with the .csv extension will use a comma as the delimiter, while files with the .tsv extension will use a tab. Other delimiters are not supported (by design) as they do not adhere to RFC 4180. You can specify whether to interpret the first line in a file as a header row or not.

    Delimited displays all rows and columns of your table in one scrollable view, allowing you to freely explore the table's contents. You can add, move, and remove rows and columns. Fields containing newlines are rendered within a single cell, expanding the row to accommodate the content. Text clipped by the column width can be viewed by hovering over the cell or by resizing the column. Double-clicking a column's divider fits it to its contents, and you can fit several columns at once by selecting them and choosing "Fit Widths to Content" from the header's context menu.

    You can search your table using the standard macOS find bar (⌘F). Matches are highlighted throughout the table, and you can step through them one by one. Find and replace (⌥⌘F) lets you replace matches individually or all at once. Search covers the table's contents; header titles are not included.

    Additionally, a subtitle can be toggled to display extra information, such as the table's dimensions, the number of selected rows or columns, or details about the currently edited cell.

    Copy/paste is all done in plain-text, making it easy to create a subset of a table.

    For more information, please refer to the helpbook and screenshots.

  • I read the previous question, but can it also do this or that?

    Probably not, sorry.

  • It would be great if Delimited could do...

    I'm open to feature requests, send me an email at . Check out the Roadmap section to read about my intentions with the app and what I've already got planned. Please don't be annoyed if I say "no", I want to be sure I'm OK with maintaining the app and supporting all its features going forward. Relevant xkcd.

  • Any other tips and tricks?

    Use page up and page down to quickly scroll the table (fn ↑ and fn ↓ on a MacBook).

    If you start typing while not editing a cell, the first row with a cell that matches what you typed will be selected.

  • Do you plan on running discounts?

    Not really. I don’t like the uncertainty of waiting for a sale that may never come (like holding out for a Black Friday deal on a favorite app). I don’t want to push that feeling onto others.

  • Does Delimited support other delimiters besides comma and tab?

    Not at the moment - it’s something I’m in two minds about. On the one hand supporting other delimiters, like the semicolon, seems like a no-brainer: it’s easy to implement and adds functionality. On the other hand, the file extensions “comma-separated values” and “tab-separated values” are named like that for a reason. I (personally) find it somewhat annoying to open a ".csv" file and see a semicolon as the delimiter.

    Custom delimiters aren’t mentioned in RFC 4180, whereas commas and tabs are. Allowing other delimiters - whether from a predefined set or as a user-defined character - opens the door to supporting additional non-standard features that have been introduced to the CSV format over time. At the moment I’d prefer not to contribute to the chaos or selectively endorse features outside the RFC.

    I do understand that a standard evolves which is why I don't want to rule it out completely but for now: maybe in the future.

Roadmap

At a certain point, an app does what it set out to do. Apple isn't adding new features to TextEdit anymore, because it already does everything it needs to. For me, Delimited is approaching that point. But Apple hasn't abandoned TextEdit either: it's updated for every new release of macOS so it never looks out of place. I'd like Delimited to age just as well. My focus is on keeping it looking and working its best on the latest versions of macOS, and fixing bugs if and when they arise. If I'm ever unable to do that, I'd rather open-source the app than abandon it.

All that said, there certainly are a couple of features I’d like to add someday. There’s no guarantee if or when they’ll make it into the app, but they’re ideas I would like to see implemented myself.

As with any piece of software: buy it based on what it can do today, not what it promises to be able to do in the future.


  • Search [done]

    Search was added in v1.1. In the future I might expand on it by letting you limit a search to the selected columns or rows.

  • Formatting

    I prefer seeing numbers in a monospaced font and right-aligned, and I'd like to offer options like these for formatting columns. However, CSV and TSV files are plain text, so there's no way to store formatting in the file itself. If you formatted your table neatly, it would all be lost the moment you closed and reopened it. One possible solution is to store this information alongside the file as extended attributes, like how column-width is stored.

  • Sorting

    Delimited files are plain text so the only real sorting you can do is alphabetical. However, for columns existing of numbers, it’s more practical to sort them by their numeric values rather than alphabetically.

    But this raises some questions. If a column contains a mix of positive and negative numbers and empty cells, how should the empty cells be treated? Are they interpreted as 0’s and placed halfway through the table, or should they go at the bottom? And what happens when a column contains mostly numbers, but also some text like "N/A" or "nil"?

  • Summarise

    While I don’t plan to add full-on spreadsheet functionality, being able to select a column and quickly see its total or average would be really useful. However, this raises the same questions as described under “Sorting”.

  • Languages

    I'd like to translate Delimited to other languages. My first language is Dutch so that would be the first translation.

Resources

Helpbook (please note: might not render correctly in browsers other than Safari)

Privacy policy

Presskit

About

Hey, I'm Willem Kempers. I don't usually write macOS apps - my background is in interactive design. Currently I work freelance within the arts as a creative technologist, software engineer and designer. I prefer working on robotic installation art, you can find my portfolio here.

I have a long-running interest in icon and interface design, and after almost a decade of C++ programming, I thought it would be interesting to try a more modern language. Delimited is the result of my curiosity about UI design, a desire to experiment with a new programming language (Swift), and frustration with working with delimited files on macOS.

I'm a bit fed-up with social media. The best way to contact me is through email: , I try to reply the same day.