個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證TableSkim is a lightweight, fast viewer for tabular files. Open a large CSV, an Excel workbook, a Parquet or JSON file or a DuckDB / SQLite database and start scrolling immediately: rows are loaded in the background while the window stays responsive.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗TableSkim is a lightweight, fast viewer for tabular files. Open a large CSV, an Excel workbook, a Parquet or JSON file or a DuckDB / SQLite database and start scrolling immediately: rows are loaded in the background while the window stays responsive.
.xlsx, .xlsm) files, including workbooks
with multiple sheetsdata.csv.gz)
are decompressed on the fly.ndjson, .jsonl), also gzip- or zstd-compressed; object
keys become columns, and nested objects and arrays are shown as text: in
the terminal UI); a query is shown as a sheet. SQL that was run is kept
in a history shared by all windows and sessions (History,
Ctrl+Up / Ctrl+Down; Up / Down), and Tab completes table and
column names and keywordsf in the
terminal UI) that compare by type: numbers numerically, dates by day or
time (= 2024-01-31 matches any time that day, also in date text), and
booleans as TRUE / FALSE; matches takes a regular expressionS in the terminal UI): row, empty and distinct counts,
min / max, sum, mean and standard deviation, and the most frequent
values, over the filtered rows; double-click a value to filter by itB in the
terminal UI) of numbers and dates in bins of round widths (whole days,
months, years, ...), or of the most frequent values of other columns, in
a window of their own; double-click a bar (Enter) to filter the sheet
to its rows, and the histogram followsM in the terminal UI), with the correlation
coefficient and the least-squares line; with text on X, box plots of each
category. Histograms and plots can be saved as PNG or SVG imagesA in the terminal UI): count the rows
by the values of some columns, with the sum, mean, min, max, ... of
others, into a sheet of its own# numbers, @ dates, ? booleans)
and per-column display formats: thousands separators, decimal places and
date formats (right-click a column header → Format; %)tail -f (File → Follow End of File; T):
appended lines of CSV / TSV files are read on their own, and the view
stays at the last row; File → Open Recent lists the last files openedB12 or R12C2) or a column by its name or
letter (Edit → Go To..., Ctrl+G in both UIs)x in the terminal UI) and
show them all again (View → Show All Columns; X)|)I in the terminal UI), with undo, paste of tab-separated text
and saving that rewrites only the edited lines or cells, keeping the
encoding, compression and everything else of the file; nothing can change
a file outside edit mode.xlsx) or Parquet (File → Export View...; w);
Excel and Parquet keep numbers, booleans and dates typed, also when they
come from CSV textF1) and installed as HTML for web browsers; see also docs/tableskim commandSee the user manual (日本語) for a full guide with screenshots. The manual is also online on the TableSkim website.
tableskim [options] [files...]
tableskim opens the GUI when a graphical display is available and the
terminal UI otherwise: on Linux when neither DISPLAY nor WAYLAND_DISPLAY
is set, and on macOS in an SSH session. Each file opens in its own window.
The terminal UI shows exactly one file, which must be given on the command
line (it exits with an error otherwise).
| Option | Description |
|---|---|
-t, --tui | Use the terminal UI even if a graphical display is available |
--log <file> | Write log messages to a file |
--encoding <name> | Encoding of CSV / TSV files: auto (default), utf-8, utf-16le, utf-16be or cp932 (shift_jis) |
-v, --verbose | Enable verbose (debug) logging |
-V, --version | Show version information and exit |
--summary and --head N print each file's columns with their types (and,
with --summary, statistics) and its first rows to standard output as
Markdown or JSON (--format json), and exit without a UI: a quick look at
any table file from a script or an AI agent. See
Printing a summary.
tableskim --summary data.xlsx
tableskim --head 20 --format json data.csv.gz
Files can also be opened from File → Open... (Ctrl+O).
On macOS the command is the executable inside the app bundle; to put it on
the PATH:
ln -s /Applications/TableSkim.app/Contents/MacOS/TableSkim /usr/local/bin/tableskim
On Windows, TableSkim.exe is a GUI application (without a console) for the GUI.
Use tableskim-tui.exe, installed next to it, for the terminal UI: it is a
console application, so it runs in the terminal it is started from.
Log messages are written only with --log <file> (they would otherwise be
drawn over the screen). Press ? for the key list. Main keys: arrows or
hjkl to move, Ctrl+G to go to a row, cell or column, Shift+arrows or
v to select, x / X to hide the column / show all columns, | to
freeze the columns up to the cursor, Enter to show a whole cell in the
sidebar, S for the statistics of the cursor's column, B for its
histogram, y to copy the
selection as TSV, w to export the sheet as shown, Tab to switch sheets, s for the sidebar, H to switch
the first row between the guess and header / data (CSV / TSV and Excel), E to switch the text
encoding, r to revert, q to quit.
Copying uses the OSC 52 escape sequence, so it works over SSH; the terminal
must allow it (inside tmux, enable set-clipboard).
Requirements:
All other dependencies (FLTK, DuckDB, SQLite, OpenXLSX, csv-parser, CLI11,
spdlog, zlib, bzip2, xz, zstd, RE2, Abseil, Catch2, FTXUI) are downloaded with CMake's
FetchContent during the first configure. The first build compiles DuckDB
and therefore takes a while.
./build.sh # release build + tests
./build.sh debug # debug build + tests
The build output goes to build/<preset>/. The steps can also be run
manually:
cmake --preset release
cmake --build --preset release
ctest --preset release
The asan preset builds and tests a Debug build with AddressSanitizer and
UndefinedBehaviorSanitizer (cmake --preset asan, cmake --build --preset asan, ctest --preset asan).
macOS builds run on macOS 12 or later (CMAKE_OSX_DEPLOYMENT_TARGET). The
macos-x86_64-release and macos-x86_64-debug presets build for Intel
Macs, also on Apple silicon, where the tests run under Rosetta 2;
TABLESKIM_PRESET=macos-x86_64-release ./package.sh dmg packages it.
To build only the terminal UI (no FLTK, X11 or fontconfig needed, e.g. for
a headless server), configure with -DTABLESKIM_BUILD_GUI=OFF; tableskim
then always starts the terminal UI.
On Linux, system libraries can be used instead of the bundled ones:
| CMake option | Uses system copy of |
|---|---|
-DTABLESKIM_USE_SYSTEM_FLTK=ON | FLTK (1.4 or newer) |
-DTABLESKIM_USE_SYSTEM_SQLITE=ON | SQLite |
-DTABLESKIM_USE_SYSTEM_COMPRESSION=ON | zlib, bzip2, liblzma, zstd |
The core also builds as WebAssembly for a browser-only app (web/), which
reads the file in the browser without uploading it. With the
Emscripten SDK
(in ~/emsdk, or sourced with emsdk_env.sh) and Node.js with npm:
./web.sh # build, then serve at http://127.0.0.1:8765/
./web.sh --dev # Vite's development server, reloading as web/src changes
./web.sh --pages # serve without the isolation headers, as GitHub Pages does
./web.sh --help # --debug, --port, --open, --no-build
See src/wasm/README.md for the details and its tests.
Use the Visual Studio 2026 presets:
cmake --preset vs-release
cmake --build --preset vs-release
or, from a Developer Command Prompt, the Ninja presets (which also use ccache when it is installed):
cmake --preset msvc-release
cmake --build --preset msvc-release
./package.sh [deb|rpm|dmg|zip|all] # Linux / macOS
package.bat [exe|zip|msix|all] # Windows
Packages are written to the release build directory. Pushing a tag such as
v0.1.0 builds packages for every platform with GitHub Actions and attaches
them to a GitHub release:
.deb (built on Ubuntu 24.04), .rpm (built on Rocky Linux 10),
and three ZIPs built on Rocky Linux 8 (glibc 2.28) for older
distributions: the GUI with Wayland, the GUI for X11 only (-x11), and
the terminal UI only (tableskim-tui).dmg and .zip.exe) and .zip; package.bat msix is not part of
the releasesrc/common/ — core library: data model, file backends, threadingsrc/gui/ — FLTK GUI (layout in gui.fl)src/tui/ — FTXUI terminal UIsrc/main.cxx — the tableskim entry point, which picks the GUI or TUItests/ — Catch2 unit testsdemo/ — script that generates the sample files in demo/data/See AGENTS.md for architecture notes, coding conventions and instructions for adding a new file format.
TableSkim is licensed under the GNU Affero General Public License v3.0.
The bundled fonts, BIZ UDPGothic and M PLUS 1 Code, are distributed under
the SIL Open Font License 1.1 (src/fonts/). The license texts
of the fonts and of all bundled libraries are shown in Help → About...
(at the end of the ? help in the terminal UI) and installed as
THIRD_PARTY_LICENSES.txt.