Skip to main content

unslop CLI

Humanize Markdown and text files from the command line. unslop removes common AI tells, varies rhythm, and preserves code, URLs, headings, tables, blockquotes, and YAML frontmatter.

Use it for docs, memory files, posts, bios, cover letters, and other prose where voice matters. Do not use it for secrets, legal text, medical advice, runbooks, or anything where exact wording matters more than readability.

Install

pipx install unslop
# or
uv tool install unslop

That is enough for deterministic local rewriting. For Anthropic API-backed LLM mode:

pipx install 'unslop[llm]'
# or
uv tool install 'unslop[llm]'

Local-model features use separate extras: unslop[surprisal] for DivEye readings and unslop[detector] for detector feedback.

For a one-off local checkout:

cd unslop
python3 -m scripts.cli --deterministic README.md

Quick Start

unslop --deterministic doc.md

Deterministic mode is local-only. No API key, no subprocess, no network call.

unslop doc.md

LLM mode uses ANTHROPIC_API_KEY when set, otherwise falls back to claude --print if the Claude CLI is installed. API calls default to claude-sonnet-5; set UNSLOP_MODEL to pin another active Claude model. Before any LLM call, the CLI refuses secret-like content such as private keys and common API token shapes. Use --deterministic for sensitive local files.

Common Commands

unslop --deterministic --diff doc.md          # preview changes
unslop --deterministic --dry-run --json doc.md
unslop --deterministic --report audit.json doc.md
unslop --mode full doc.md
unslop --no-structural --no-soul doc.md       # extra conservative
cat draft.md | unslop --stdin --deterministic

What Files Work

Type Action
.md, .markdown, .txt, .rst Humanize prose
.py, .js, .ts, .json, .yaml, etc. Skip as code/config
*.original.md, *.original.txt Skip as backups
Mixed prose + code Humanize prose; preserve protected regions
Sensitive paths (.env, *.pem, ~/.ssh/) Refuse

What Stays Exact

  • Fenced code blocks
  • Indented code blocks
  • Inline backticks
  • URLs and markdown links
  • Headings
  • Markdown tables
  • Blockquotes
  • YAML frontmatter

Deterministic mode validates these after rewriting. If preservation fails, the command exits non-zero and does not overwrite the file.

Backups And Sidecars

In file mode, unslop writes FILE.original.md before overwriting the target. If --strip-reasoning removes hidden reasoning traces, the stripped content is written to FILE.reasoning.md; those sidecars are gitignored by the repo template because they can contain process notes you did not mean to publish.

Why This Exists

Project memory files, READMEs, resumes, and draft posts often get polished by assistants until they all sound the same. unslop is a cleanup pass: remove the stock phrases, keep the facts, keep the code, and make the text readable again.

Part Of The Unslop Plugin

Skill What it does
unslop Live assistant-output humanization
unslop-file File rewrite command
unslop-commit Commit messages without AI tone
unslop-review Direct PR review comments
unslop-reasoning Reasoning-trace cleanup
unslop-help Quick reference

License

MIT.

Metadata

Release files for unslop 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for unslop 0.7.0
File Size Uploaded Provenance
unslop-0.7.0.tar.gz 81.8 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for unslop 0.7.0
File Interpreter ABI Platform
unslop-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 169.8 kB

Release files / unslop-0.7.0.tar.gz

Download URL unslop-0.7.0.tar.gz
Size 81.8 kB
Tags Source
SHA-256 checksum
How to use checksums
bba8d22c64c143c2d504a10e89222f645a0f59467acce5b11a415ac59aa0c7c7
BLAKE2b-256 checksum
How to use checksums
4141d08c760178b3c7e25898bef7ff58d600e1700ef01f3275c274a49ed1d2a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 21, 2026.

Transparency log

Release files / unslop-0.7.0-py3-none-any.whl

Download URL unslop-0.7.0-py3-none-any.whl
Size 87.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
93037558fc1cc92ec9cdb2d6467a30eafa774480e74bf6c9a646f670abbf0b62
BLAKE2b-256 checksum
How to use checksums
f9b549bb1f3963d2bddb43f4667924b00cee05cc952bb182155ec2a9a0895147
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 21, 2026.

Transparency log

Security for unslop 0.7.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for unslop-0.7.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page