LOCAL-FIRST CSV EDITOR

Edit the values. Leave the file alone.

Browser-only, format-preserving CSV editor with Shift_JIS support

Refrain Sheet is a format-preserving CSV and spreadsheet editor that runs entirely in your browser. You edit field values; delimiters, quoting, surrounding whitespace, line endings, encodings, BOMs, undecodable bytes and malformed regions all stay exactly as they were.

Open and save with no edits, and the output is byte-for-byte identical.

Fully offline No server, no account Shift_JIS / CP932 ready MIT licensed
Refrain Sheet showing a Shift_JIS CSV file with only the edited cell highlighted in amber
A Shift_JIS ledger opened in the app. Only the edited cell is tinted, and the status bar always reports encoding, delimiter and line endings.
0 bytes
changed on an unedited save — the original bytes are written back
0 requests
at runtime. No CDN, no analytics, no telemetry
55 functions
in RSF spreadsheets, including XLOOKUP, SUMIFS and FILTER
1 dependency
in production, with zero transitive dependencies

THE PROBLEM

Most editors damage a CSV just by opening it.

Open a CSV in a normal spreadsheet app and the encoding shifts, quotes appear and disappear, line endings get unified, leading zeros and dates turn into something else. A one-cell change becomes a whole-file diff. Refrain Sheet does the opposite.

What a normal save never does

  • unify line-ending styles or delimiters
  • alter the header layout
  • add or remove whitespace
  • add or remove quotes unnecessarily
  • add or remove BOMs
  • repair malformed CSV
  • replace undecodable bytes in unmodified fields

An edit touches one field's byte range

Change a cell and only that field is reserialized. Every other byte is left alone. A quoted field stays quoted, and an unquoted one gains quotes only when the new value truly needs them.

sales.csv — Shift_JIS / CRLF ◆ minimal diff
B-2002,抹茶 セレモニアル,12,4800,在庫僅少
+B-2002,抹茶 セレモニアル,12,4800,残り12点・要発注
CRLF kept · CP932 kept · quotes kept · BOM kept
Only the edited field's byte range is rewritten — the rest is identical

FEATURES

Built for the messy CSVs people actually get.

Encoding detection, honest diagnostics for malformed files, IME-safe editing — the parts that usually go wrong, handled deliberately.

Encodings and save options

UTF-8 (with or without BOM), Shift_JIS / CP932 and EUC-JP are supported, detected automatically, and reinterpretable at any time via Reopen with Encoding — which never alters the original bytes. On save you choose encoding, BOM and line endings independently.

  • Characters the target encoding can't represent cancel the save by default, with a per-cell report
  • Line-ending conversion rewrites terminators only — a missing final newline is never added
  • The status bar always shows encoding, delimiter, line endings and file size
The Save with Options dialog, offering character encoding, BOM and line-ending choices
Save with Options, including an explicit CSV-injection warning.

Malformed CSV opens — unrepaired

Unclosed quotes, invalid text after a closing quote, inconsistent field counts — every problem is listed with its row, column and a plain explanation. Nothing is normalized. Choose Open Anyway and malformed regions are preserved byte-for-byte as long as you don't edit them.

The CSV validation dialog listing unbalanced quotes and field-count mismatches with row and column numbers
The CSV Validation Results dialog explains the damage and leaves the decision to you.

Menu-first UI, IME-safe editing

A desktop-style menu bar is the single visible set of commands, and every one of them is reachable from the keyboard. Japanese and CJK input is safe from the very first keystroke — the first Romaji character joins the composition instead of leaking as a Latin letter.

  • While composing, Enter / Esc / arrows belong to the IME, never to the cell
  • Browser-reserved keys (Ctrl+W, Ctrl+F, Ctrl+T, reload, zoom) are never intercepted
  • Alt+Enter inserts a line break; multi-line values round-trip through CSV, RSF and the clipboard
The File menu open, showing New spreadsheet, Reopen with encoding and Save with options
The File menu. Shortcuts are accelerators only — nothing depends on them.

RSF SPREADSHEET

When you need a spreadsheet, there's RSF

Plain CSV can't hold formulas, structural edits or metadata without breaking the guarantee. So those live in a separate .rsf document, created only by an explicit conversion that never touches the original .csv.

FORMULAS

55 functions: SUM, XLOOKUP, SUMIFS, TEXT, FILTER, UNIQUE and more

WORKBOOKS

Multiple worksheets, cross-sheet references, absolute/relative refs, cycle detection

DATA TOOLS

Filtering, auto-fit, selection statistics, CSV and XLSX export

NO EVAL

A hand-written formula engine — no eval, no new Function, no macros

DETAILS

English UI and dark theme, built in.

Japanese and English are both first-class UI languages. The theme follows your system by default and can be pinned to light or dark. Display state never changes CSV bytes, RSF data or formula results.

Refrain Sheet with the English UI and dark theme, showing the same CSV file
English UI, dark theme. Same file, same bytes.

COMPARISON

How it differs from a normal spreadsheet app.

Refrain Sheet is not an Excel replacement. It is a tool for fixing a CSV without damaging the file it lives in.

  Excel / typical spreadsheet apps Online CSV editors Refrain Sheet
Open and save, no edits Encoding, quoting and line endings may all change Usually reserialized in full Byte-for-byte identical
Editing a single cell The whole file is rewritten The whole file is rewritten Only that field's byte range
Shift_JIS / CP932 Environment-dependent; mojibake and silent conversion are common Often unsupported Detected, reinterpretable, and selectable on save
Malformed CSV Silently repaired and normalized Frequently fails to load Diagnosed, then opened with the damage preserved
Leading zeros, dates, long numbers Type inference can rewrite them Varies by implementation Values stay as written — no inference
Where your data goes Local (server for cloud editions) Uploaded to a server Nowhere. Zero network access
Setup License and installation Sometimes an account One HTML file — works over file://

Comparisons describe typical behaviour in common setups. Refrain Sheet's own guarantees are defined by its README and test suite.

SECURITY

Designed so nothing leaves the page.

Built on the assumption that your CSV is confidential. There are no runtime network connections at all.

Zero network access

The CSP sets default-src 'none' and connect-src 'none'. No CDN, external fonts, APIs, analytics or telemetry.

Nothing is executed

Cell content is never interpreted as HTML; there is no innerHTML, eval, new Function or macro anywhere. Formulas run in a sandboxed engine.

Supply chain discipline

One production dependency, enforced lockfiles, install scripts disabled, and releases shipped with SHA-256 checksums, an SBOM and signed build provenance.

GET STARTED

Three steps.

01

Open it in a browser

Just open the hosted web app. No installation, no account, no setup.

02

Drag and drop a CSV

Drop files anywhere in the window; each one opens in its own tab.

03

Or run it offline

Download a release ZIP, extract it, and double-click index.html. It works over file://.

Questions

Where does my data go?

Nowhere. Files are read inside the browser and saved back to your own device. Runtime network access is blocked at the CSP level.

Is this an Excel replacement?

No — different purpose. Refrain Sheet fixes CSV files without damaging them; formulas and structural edits require an explicit conversion to an .rsf spreadsheet. Excel compatibility is not claimed.

How large a file can it open?

The default limit is 512 MiB (adjustable from 16 MiB to 2 GiB) and oversized files are refused before their bytes are read. Rendering is virtualized, but hundred-megabyte files can still feel slow.

Which encodings are unsupported?

UTF-16 and ISO-2022-JP are not supported in this release. Such files still open with a best-effort interpretation and a warning, and their bytes remain untouched.

Can it always overwrite the original file?

In Chromium-based browsers, yes, via the File System Access API. Firefox and Safari fall back to a download save, and the app tells you which kind of save happened.

Open one of your own CSVs.

No install. In a few seconds you can confirm that saving produces no diff at all.