Skip to content
Back to skills

Distil Pii Redactor

ASecurity

Redact, anonymize, sanitize, or remove PII locally with Distil-PII and llama.cpp; keep personal data and secret values out of model context, logs, and chat.

  • 157 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added May 27, 2026
data-aipythonrustgoshellbashtestingdebuggingapisecurity

Works with

  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add HybridAIOne/hybridclaw --skill distil-pii-redactor --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Distil Pii Redactor?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Distil Pii Redactor
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hybridaione-distil-pii-redactor/badge)](https://www.skillsdirectory.com/skills/hybridaione-distil-pii-redactor)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: distil-pii-redactor
description: Redact, anonymize, sanitize, or remove PII locally with Distil-PII and llama.cpp; keep personal data and secret values out of model context, logs, and chat.
user-invocable: true
requires:
  bins:
    - python3
    - bash
    - curl
    - llama-server
metadata:
  hybridclaw:
    category: security
    short_description: "Local Distil-PII redaction."
    tags:
      - pii
      - redaction
      - privacy
      - local-model
      - security
    install:
      - id: llama-server
        kind: brew
        formula: llama.cpp
        bins: ["llama-server"]
        label: Install llama.cpp server (brew)
    capabilities:
      - pii.redact.local
      - pii.sanitize.text
---

# Distil PII Redactor

Use this skill when the user asks to redact, anonymize, sanitize, or remove PII
or personal data from text. It runs a local Distil-PII GGUF model through
`llama-server`; raw text must not be sent to external APIs.

## Privacy Rules

- Do not quote, summarize, or repeat raw PII in chat.
- Prefer file-based input and output when the sensitive text is already in a
  file or attachment.
- Return only the redacted text unless the user is explicitly debugging the
  redactor itself.
- If the user asks for only the LLM or redaction output, do not narrate setup,
  server status, tool use, or validation details in the final response.
- Do not use `--show-entities` in normal workflows. It emits original values.
- Do not store raw PII in tracked files, shell history, long-lived notes, or
  logs.
- This skill declares no external credentials. If a downstream tool needs
  authentication, use that tool's HybridClaw `secret_ref` or gateway secret
  injection and pass only redacted text downstream.
- Do not convert raw PII into HybridClaw secrets. Secret refs are for
  credentials and auth material, not a transport for user data.

## Setup

If `llama-server` is missing, install it with:

```bash
hybridclaw skill install distil-pii-redactor llama-server
```

or install `llama.cpp` manually. This skill intentionally has no
`credentials:` frontmatter because local inference does not need API keys; any
future remote-provider variant must declare `secret_ref` credentials instead of
reading raw environment variables.

Start the local server:

```bash
bash skills/distil-pii-redactor/scripts/setup.sh
```

The setup script stores the model under `~/.hybridclaw/distil-pii` by default,
downloads the public Distil-PII 1B GGUF model if missing, and starts
`llama-server` on `127.0.0.1:8712`.

Stop the server:

```bash
bash skills/distil-pii-redactor/scripts/stop.sh
```

## Redaction Workflow

For files, keep raw input and redacted output on disk:

```bash
python3 skills/distil-pii-redactor/scripts/redact.py \
  --input-file sensitive.txt \
  --output-file redacted.txt
```

For stdin:

```bash
python3 skills/distil-pii-redactor/scripts/redact.py < sensitive.txt
```

For short text that is already in the conversation, pass it directly only when
there is no lower-exposure path:

```bash
python3 skills/distil-pii-redactor/scripts/redact.py "text to redact"
```

The default output is only `redacted_text`, with sensitive spans replaced by
tokens such as `[PERSON]`, `[EMAIL]`, `[PHONE]`, `[ADDRESS]`, `[SSN]`,
`[CARD_LAST4:1234]`, and `[IBAN_LAST4:1234]`.

The redactor refuses non-loopback `--server-url` values by default. Use
`--unsafe-allow-remote` only for an explicitly trusted endpoint after the user
accepts that raw text will leave the local machine.

## Debug Output

Use `--show-entities` only while testing the redactor, because it includes the
original sensitive values:

```bash
python3 skills/distil-pii-redactor/scripts/redact.py --show-entities \
  --input-file fixture.txt
```

Do not paste debug JSON back to the user unless they explicitly requested it
and understand that it contains original PII.

## Validation

Run:

```bash
python3 skills/skill-creator/scripts/quick_validate.py skills/distil-pii-redactor
python3 skills/distil-pii-redactor/scripts/redact.py --help
bash -n skills/distil-pii-redactor/scripts/setup.sh
bash -n skills/distil-pii-redactor/scripts/stop.sh
```

Files in this skill

  • SKILL.md4.1 KB
  • scripts/redact.py11.5 KB
  • scripts/setup.sh2.7 KB
  • scripts/stop.sh945 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.