factcircuit
FactCircuit는 불변 출처와 단계별 검증, 제한된 검색, 재현 가능한 평가를 제공하는 감사 가능한 주장·증거 검증 루프입니다
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.