Scrubkit.Tool 1.5.0

Prefix Reserved
dotnet tool install --global Scrubkit.Tool --version 1.5.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Scrubkit.Tool --version 1.5.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Scrubkit.Tool&version=1.5.0
                    
nuke :add-package Scrubkit.Tool --version 1.5.0
                    

Scrubkit.Tool

The scrubkit command-line tool — run Scrubkit from any shell or CI, no code required. Point it at a folder and it extracts text + metadata from PDFs, Office / OpenDocument, email, EPUB, and text / image files, optionally redacts PII and secrets, and writes a CSV / JSON / JSON Lines / Parquet table. Everything runs on your machine — no network calls.

Install

dotnet tool install --global Scrubkit.Tool

Use

scrubkit scan <folder> [options]
# Extract a folder to CSV on stdout
scrubkit scan ./docs

# Redact PII + secrets and write JSON Lines for a RAG / embedding pipeline
scrubkit scan ./docs --redact --format jsonl --out docs.jsonl

# Aggressive redaction, only PDFs and email, with a content hash per file
scrubkit scan ./docs --redact=aggressive --include .pdf,.eml --hash

# Columnar output for analytics
scrubkit scan ./data --format parquet --out data.parquet

Options

Option Description
--format <fmt> csv, json, jsonl, or parquet. Default: inferred from --out's extension, else csv.
--out <file> Write to a file instead of stdout. Required for parquet.
--redact[=<level>] Redact PII + secrets. Level standard (default) or aggressive. Omit to extract without redacting.
--no-recurse Only the top folder (default: recurse all nested).
--hash Compute a SHA-256 content hash per file.
--include <exts> Comma-separated extension filter, e.g. --include .pdf,.docx.
--max-files <n> Stop after n files (0 = no limit).
--max-bytes <n> Skip files larger than n bytes (0 = no limit).
--max-text <n> Clip extracted text to n characters (0 = no clip).
--local-time Emit local-time timestamps (with offset) instead of UTC.
-h, --help Show help.
-v, --version Show the version.

The table goes to stdout (or --out); progress and a summary go to stderr, so you can pipe the output cleanly. Exit code is 0 on success, 1 on a usage or I/O error.

Scrubbing is best-effort, not a compliance tool.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.5.0 0 7/21/2026

1.4.0 — Output: zero-dep CSV/JSON writers (TableWriter) with UTC-by-default timestamps and an opt-in utc:false local-time mode, plus a new Scrubkit.Parquet package (Apache Parquet via Parquet.Net, net8.0). Diagnostics: ReadOptions.OnDiagnostic hook bridged to ILogger by AddScrubkit. Opt-in SHA-256 content hashing (FileRecord.ContentHash). New Scrubkit.All meta-package bundles the whole family. Default MaxBytesPerFile lowered to 10 MB; FileRecord.Modified is now UTC. Fix: redaction no longer drops a match overlapping a higher-priority span. Full changelog: https://github.com/jjopensoftworks-blip/Scrubkit/blob/main/CHANGELOG.md