Getting started
What CSV Studio is, and the fastest path from a file to a result.
What CSV Studio does
CSV Studio opens a CSV or TSV file, lets you inspect and fix it, and converts it to whatever format you need — JSON, Excel, SQL, and more. Everything runs locally: nothing is uploaded anywhere.
The typical path through the app follows the nav bar top to bottom: Import → Inspect → Clean → Validate → Transform → Convert → Export. You don't have to use every step — for a quick conversion, Import then jump straight to Convert or Export.
Free vs Pro at a glance
Import, inspect, clean, and the core of validate/transform/convert/export are free. Pro adds the heavier-duty column mappings, extra output formats, batch conversion, saved workflows, and custom validation rules — see Free vs Pro for the full breakdown.
Where your data lives
Files are only ever read from and written to disk on your machine (or downloaded, in a browser build). CSV Studio doesn't send your data to a server. Settings, saved workflows, and export presets are stored locally too.
Install & activate
A few clicks to install, no account, and one paste to unlock Pro.
1. Run the installer
Download from the pricing section, run CSV Studio Setup.exe, and follow the prompts. Free and Pro are the same download — a license key unlocks the rest, no reinstall.
2. Launch the app
Open CSV Studio from the Start Menu or the desktop shortcut. It runs offline once installed.
3. Import a file
Open a CSV or TSV file to begin. Everything on the Free tier works immediately with no sign-in.
Activating Pro
Your license key arrives by email right after checkout, with an Activate button that unlocks the app automatically if it's already installed. To do it by hand, paste the key into Settings → License and click Activate — the app reloads once activation succeeds. There's no separate account or activation server.
Import
Bring a CSV, TSV, or pasted table into the app.
Ways to bring in data
- Browse / Drop — drag a file onto the drop zone, or click to open a native file picker. Accepts .csv, .tsv, and .txt up to 2 GB.
- Paste CSV — switch to the Paste tab and paste table text directly; useful for data copied from a spreadsheet or email.
Delimiter & headers
The delimiter (comma, tab, semicolon, or pipe) is auto-detected from the first line — a .tsv file always forces tab regardless of content. Override it manually if detection guesses wrong.
First row is headers is on by default; turn it off if your file has no header row and you want generic column names instead.
Before you import
The raw preview panel shows what will be parsed as you adjust delimiter/header settings. A background scan also flags a rough issue count (empty cells, duplicate IDs, inconsistent values) in the first 500 rows — a preview of what Validate will find later. Click Import and Preview to load the file and land on the Inspect table.
Inspect (table view)
Browse, search, sort, and hand-edit the loaded data.
Working the grid
- Click a column header to sort ascending, click again for descending, a third click clears the sort.
- Double-click a cell to edit its value in place.
- Click a row number to select/highlight that row.
- Use the search box to fuzzy-filter rows across every column.
Column inspector
Selecting a column (click its header) opens the right-hand panel with its detected type, total/unique/empty/invalid counts, example values, and one-click cleanup suggestions that jump straight to Clean pre-scoped to that column.
Pagination
Large files are paged (rows-per-page is adjustable, including "show all"). Row highlighting in the left margin flags invalid (red), warning (amber), and empty (pale amber) cells — the same colors used throughout Validate.
Clean
Fix whitespace, duplicates, headers, dates, casing, and more.
Scope: file vs. one column
Every clean operation applies either to the whole file or to just the selected column (pick a column on the Inspect screen first, then switch scope here). Each toggle shows a live count of how many cells/rows it will touch before you apply anything.
Operations
| Operation | What it does |
|---|---|
| Trim whitespace | Strips leading/trailing spaces from every cell. |
| Remove blank rows | Drops rows that are entirely empty. |
| Remove duplicate rows | Collapses exact row matches. |
| Normalize headers | Rewrites column names using the Header case setting below. |
| Remove invisible characters | Strips zero-width and control characters that don't show up visually but break matching. |
| Normalize quotes | Straightens curly "smart" quotes into plain straight quotes. |
| Empty strings → null | Treats "" as a true missing value rather than an empty string. |
| Standardize dates | Reformats every value in Date-typed columns to your Settings date format. |
| Fix inconsistent casing | Title-cases values in Enum-typed columns (e.g. status fields). |
| Re-quote fields | Quotes fields that contain commas so they survive re-export as CSV. |
Header case
Only used when Normalize headers is on. Choices: camelCase, snake_case (default), kebab-case, PascalCase. Non-word characters are converted to underscores and collisions are de-duplicated automatically.
Applying
Apply Cleaning runs the checked operations in a fixed, safe order (per-cell fixes first, then row removal, then header renaming), then shows a summary with counts and an Undo cleaning button. You can always undo/redo from the toolbar afterward too.
Validate
Find missing values, duplicates, bad emails, dates, and enum outliers.
Built-in rules
| Rule | Flags |
|---|---|
| Required fields | Empty cells in columns where almost every row is filled in (inferred as "required"). |
| Unique columns | Duplicate values in an id column or any column ending in _id. |
| Email validation | Whitespace around an email (auto-fixable) and invalid email formats. |
| Date format | Dates not in ISO YYYY-MM-DD form — flagged as ambiguous or non-ISO, with a suggested ISO fix when derivable. |
| Allowed values | Values in an Enum-typed column that appear in less than 1% of rows — likely typos of the common value. |
Every rule can be switched off individually in the sidebar.
Fixing issues
- Open jumps you to the exact cell in the table.
- Fix applies the suggested correction to that one row (only shown when a fix exists).
- Fix all applies the same fix to every row with the identical current-value → fix-value pair.
- Ignore / Ignore all hide an issue (or every issue of that type in that column) without changing the data.
- Filter tabs (All / Errors / Warnings / Missing / Duplicates / Emails) and a page size selector help you work through large issue lists.
Custom rules PRO
Define a column (or leave blank for all columns), a regex pattern, an error/warning message, and severity. A row fails the rule when its value does not match the pattern. Rules can also be loaded automatically from a JSON file — set the path in Settings → Custom rules path.
Exporting results
Pro users can export a validation_errors.csv report (row, column, severity, issue, current value, suggested fix) via Export Error Report.
Transform
Rename, reshape, merge, and compute columns.
Free transforms
- Rename — change a column's name.
- Remove — delete a column.
- Reorder — set an explicit column order (anything left out is appended at the end).
Pro transforms PRO
| Type | What it does |
|---|---|
| Merge | Joins two or more columns into one, with a separator you choose. |
| Split | Splits one column into name_1, name_2, … by a separator. |
| Computed | Adds a new column from a JS expression that can reference other column values by name. |
| Extract | Pulls a regex match (or capture group) out of a column into a new column. |
| Nest | Turns a column key into a dot-path (e.g. address.city) so it nests when converted to JSON. |
| Group | Collapses rows into one per distinct value of a chosen column, adding a _count column. |
Building a mapping list
Add one or more mapping steps, reorder them by drag, preview the resulting first row as JSON, then Apply to commit — this pushes an undo checkpoint first, so you can always step back.
Convert
Preview your data reshaped into another format before exporting.
Formats
Free: JSON, CSV. Pro adds: JSON Lines (NDJSON), Excel (.xlsx), SQL INSERT statements, Markdown tables, YAML, and XML.
JSON structures
| Structure | Result |
|---|---|
| Array of objects | [ {…}, {…} ] — the default, available on Free. |
| Keyed by column PRO | An object keyed by a chosen column's value instead of an array. |
| Nested (dot notation) PRO | Column names containing "." become nested objects. |
| Grouped PRO | An object keyed by a column's value, each holding an array of matching rows. |
Output options
- Pretty formatted — indented, human-readable.
- Minified — smallest possible size, one line.
- Auto-detect types — numbers and booleans are kept as real types rather than quoted strings.
- Keep all as strings — forces every value to a quoted string.
- Omit empty fields — drops null/blank/empty-array keys entirely.
Use Copy to grab the preview text directly, or continue to Export to save it as a file.
Export
Write the converted data to disk (or download it).
Basics
Set a file name and format (same list as Convert), then either pick a save location via the native dialog (desktop app) or let it download to your browser's download folder.
Options
- Export all rows — free, always available.
- Export filtered rows only PRO — exports just what's currently filtered in the table.
- Split into chunks PRO — one file per 1,000 rows, zipped together.
- Compress as ZIP PRO — wraps a single output file in a .zip.
Presets
Save your current format + options as a named preset to reapply later — handy if you export the same shape of file repeatedly.
Before you export
A banner warns you if validation errors remain, with a shortcut back to Validate. It's not required to fix everything before exporting — just a heads-up.
Batch convert
PROConvert many files at once with one shared set of settings.
How it works
Add multiple CSV/TSV files (drag-drop or picker), choose an output format and a naming pattern ({name} becomes each file's base name), and optionally run one of your saved workflows against every file before conversion.
Options
- Save beside source — write each output next to its original file (desktop app only).
- Bundle as one ZIP — package every output into a single
batch_output.zip(on by default). - Skip files that fail validation — files with detected issues are marked failed and not written, instead of exporting something dirty.
- Write a batch report — adds a
batch_report.csvsummarizing rows, columns, status, and issues per file.
Each file gets a live status — Queued, Converting, Converted, or Failed — and you can filter the list by status while a run is in progress.
Workflows
PROSave a repeatable pipeline of steps and run it on demand or in Batch.
What a workflow is
A named, ordered list of steps — any mix of Clean → Validate → Transform → Convert → Export — each configured exactly like its standalone screen. Running a workflow feeds each step's output into the next.
Building one
Open Workflows, create or select a workflow, then + Add step to append a step and configure it inline. Reorder or remove steps as needed, then Run to execute the whole pipeline against the currently loaded file — a progress view shows which step is active.
Managing workflows
Workflows are saved locally and persist between sessions. Duplicate clones one for tweaking; deleting the last remaining workflow resets you back to the built-in starter templates.
Built-in starter templates
| Template | Steps |
|---|---|
| Product Catalog Cleanup | Clean (full pass) → Validate (all rules) → Export as Excel |
| CSV to JSON API Export | Validate → Transform (rename + merge name fields) → Convert to JSON → Export |
| Contact List Cleaner | Clean (contact-focused) → Validate → Export as JSON |
Using workflows in Batch
Any saved workflow can be selected in Batch convert to apply its clean/validate/transform steps to every file in the batch — the batch screen handles import and export itself, so a workflow's own import/export steps are ignored there.
Settings
App-wide preferences — theme, defaults, validation, and export behavior.
License
Paste the license key from your purchase email and click Activate to unlock Pro. The app reloads once activation succeeds.
Appearance
Dark, Light, or System (follows your OS theme).
General
- Default delimiter — used for new imports until overridden.
- Date format — ISO 8601 (YYYY-MM-DD), DD/MM/YYYY, or YYYY/MM/DD; used by Clean's date standardization.
- Max preview rows — how many rows load per page in the table view.
- Large file threshold (MB) — the size at which the app treats a file as "large" for performance purposes.
Validation
- Strict mode — treat warnings as errors where possible.
- Auto-validate on import — run Validate automatically right after a file loads.
- Custom rules path PRO — a JSON file of custom regex rules, auto-loaded into every Validate run.
Export
- Default output folder — where Export suggests saving to.
- Include BOM — prepend a byte-order mark to exported CSV files, useful for opening non-ASCII CSVs correctly in some spreadsheet apps.
Free vs Pro
Exactly what unlocking Pro adds.
Entirely Pro-gated screens
- Batch convert
- Workflows
Pro upgrades inside free screens
| Area | Free | Pro adds |
|---|---|---|
| Convert / Export formats | JSON, CSV | NDJSON, Excel, SQL, Markdown, YAML, XML |
| JSON structure | Array of objects | Keyed, Nested, Grouped |
| Transform | Rename, Remove, Reorder | Merge, Split, Computed, Extract, Nest, Group |
| Export options | Export all rows | Filtered-only, Split into chunks, ZIP |
| Validate | All 5 built-in rules | Custom regex rules, Export Error Report |
| Settings | — | Custom rules path |
Everything not listed above — Import, Inspect, Clean, and the core of Validate/Transform/Convert/Export — is free with no limits. See the pricing section for how to unlock Pro.
MCP server
Drive CSV Studio's engine from Claude Code or any MCP-compatible AI agent.
What it is
CSV Studio ships an MCP (Model Context Protocol) server that exposes the same clean/validate/transform/convert engine as the desktop app, as tools an AI agent can call directly — no GUI required. Useful for scripting bulk cleanups or wiring CSV work into an agent-driven workflow.
Setting it up with Claude Code
To use Pro-only tools without the desktop app installed, pass your license key as an environment variable:
Without that variable, the server checks the same license the desktop app uses if it's installed on the same machine.
Tools it exposes
| Tool | What it does |
|---|---|
csv_inspect | Parses a CSV/TSV and returns inferred column types, row count, and a preview. |
csv_convert | Converts to json/csv (free) or ndjson/sql/markdown/yaml/xml (Pro), with array/keyed/nested/grouped structures. |
csv_clean | Runs the same cleaning operations as the Clean screen. |
csv_validate | Runs the built-in rules (plus custom rules on Pro) and returns an issue list. |
csv_transform | Applies an ordered list of column mappings, free and Pro types alike. |
csv_batch PRO | Converts several files by path to one output format in a single call. |
csv_workflow_list | Lists the desktop app's saved workflows. |
csv_workflow_run PRO | Runs a saved workflow, or an ad-hoc list of steps, end to end. |
csv_diff | Compares two CSV/TSV files, matching rows by a key column (or reporting whole rows added/removed). |
csv_license_status | Reports whether a Pro license is active for the server. |
Resources
csvstudio://recent-files— the desktop app's recent-files list.csvstudio://workflows— the desktop app's saved workflows.
Support & troubleshooting
What to include when something's wrong, and where billing questions go.
Reporting an issue
Reply to your Paddle order confirmation email. Include your operating system, the CSV Studio version shown in Settings, and a short description of what you did and what happened — that's usually enough to reproduce it on our end.
Billing & purchases
Refunds, receipts, failed charges, and VAT questions are handled by Paddle, the merchant of record for every CSV Studio Pro purchase — reply to your Paddle order confirmation email. You can also check an order from the order status page.
Lost your license key
Go to Recover your license and enter the email you paid with plus the transaction ID from your Paddle receipt — we'll re-send the license email straight away.
Common questions
- Pro didn't unlock after activating — confirm the key was pasted with no leading/trailing spaces, then restart the app. The key format starts with
CSVP1. - A large file is slow — raise the Large file threshold in Settings and lower Max preview rows; CSV Studio streams big files rather than loading them whole.
- Exported CSV opens with garbled accents in Excel — turn on Include BOM in Settings → Export.