Skip to content

jev-pii-checker

CLI that sends text to Jev for 13 PII-category yes/no checks and a sensitivity score, then locates spans with regex and segmentation.

CLIbetaMIT

Overview

jev-pii-checker is a command-line tool for scanning text and files for personal data in three layers. First, a gate sends the text to TypeSafe's Jev with 13 PII category Nouls (person name, email or phone, postal address, date of birth, government ID, financial account, health, biometric, IP address, social handle, employment, race or religion) plus a three-level sensitivity score based on an IBM taxonomy. Second, regexes extract emails, Japanese and international phone numbers and digit strings, filtering corporate addresses. Third, word segmentation generates person-name candidates that Jev judges, and overlapping spans are assembled.

Output is JSON or a human-readable table, values are masked by default, and exit codes allow failing a pipeline when sensitivity crosses a threshold. The README reports 100% gate accuracy on name, email and phone presence on an IBM corpus and 22 of 24 correct sensitivity levels. It warns clearly that scanned text is sent to TypeSafe and points to a local-only alternative.

What the decision model decides

TypeQuestionAnswers
Yes / noDoes the text contain a person name / email or phone / government ID / health info (13 categories)?yes · no
ScoreHow sensitive is the personal data in this text?none · low · high
Yes / noIs this candidate a person's name?yes · no

How it works

  1. Send text to Jev with 13 category Nouls and a sensitivity score
  2. Extract emails, phones and digit strings with regex
  3. Generate name candidates with Intl.Segmenter and ask Jev about each
  4. Assemble spans, mask values and output JSON or a table
  5. Exit with code 2 if sensitivity meets the fail-on level

Strengths

  • Combines model judgment with deterministic span location
  • Masked output by default
  • CI-friendly exit codes
  • Handles Japanese text

Caveats

  • All scanned text is sent to TypeSafe's API
  • Small reported evaluation sets
  • Requires Node 20+ or Bun and a TypeSafe key

Getting started

bun install -g @coo-quack/jev-pii-checker, export TYPESAFE_API_KEY, then jev-pii-checker file.txt --json

At a glance

Type
CLI
Status
beta
Language
TypeScript
Runtime
CLI (Node or Bun)
Has code
yes
Has tests
yes
License
MIT

Use cases and integrations

How curated lists describe it

Frequently asked questions

What does Jev decide?

Which of 13 PII categories are present, how sensitive the text is, and whether name candidates are real names.

Is it local-only?

No. Text is sent to TypeSafe; the README points to sensitive-canary for a local-only guard.

Can it fail a CI job?

Yes. --fail-on sets a sensitivity level that returns exit code 2.

Related projects

  • Streaming PII redaction library for TypeScript with 155 regex detectors, optional NER, and opt-in Jev confirmation before redacting names.

    ProjectbetaTypeScript
  • Fills Japanese government PDF forms by asking Jev which profile item each unlabeled field is; personal values stay in the browser.

    ServicebetaJavaScript
  • Python re-style library that finds, replaces, splits and extracts text by meaning, with Jev judging each candidate span.

    DemobetaPython
  • Zero-dependency library that numbers a text's words so Jev can pick them, returning exact substrings for extraction and PII.

    DemoprototypeTypeScript
  • Zero-shot named entity recognition that turns Jev's Choice answers into entity spans via nominate, verify and boundary questions.

    LibrarybetaPython
  • Python/TypeScript/Go chatbot safety library checking user input and bot replies with Jev and returning one actionable verdict per message.

    LibraryproductionPython