Metadata-Version: 2.1
Name: epstein-files
Version: 1.0.8
Summary: Tools for working with the Jeffrey Epstein documents released in November 2025.
Home-page: https://michelcrypt4d4mus.github.io/epstein_text_messages/
License: GPL-3.0-or-later
Keywords: Epstein,Jeffrey Epstein
Author: Michel de Cryptadamus
Requires-Python: >=3.11,<4.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: datefinder (>=0.7.3,<0.8.0)
Requires-Dist: inflection (>=0.5.1,<0.6.0)
Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
Requires-Dist: python-dotenv (>=1.2.1,<2.0.0)
Requires-Dist: requests (>=2.32.5,<3.0.0)
Requires-Dist: rich (>=14.2.0,<15.0.0)
Requires-Dist: rich-argparse-plus (>=0.3.1.4,<0.4.0.0)
Project-URL: Emails, https://michelcrypt4d4mus.github.io/epstein_text_messages/all_emails_epstein_files_nov_2025.html
Project-URL: Metadata, https://michelcrypt4d4mus.github.io/epstein_text_messages/file_metadata_epstein_files_nov_2025.json
Project-URL: Repository, https://github.com/michelcrypt4d4mus/epstein_text_messages
Project-URL: TextMessages, https://michelcrypt4d4mus.github.io/epstein_text_messages
Project-URL: WordCounts, https://michelcrypt4d4mus.github.io/epstein_text_messages/communication_word_count_epstein_files_nov_2025.html
Description-Content-Type: text/markdown

# I Made Epstein's Text Messages Great Again

![joi](https://github.com/michelcrypt4d4mus/epstein_text_messages/raw/master/docs/joi_ito_gavin_is_clever_epstein_funds_bitcoin_dev_team.png)

* The Epstein text messages (and selected emails and other files) generated by this code can be viewed [here](https://michelcrypt4d4mus.github.io/epstein_text_messages/).
* All of His Emails along with descriptions of the 496 files that were neither emails nor text messages can be read at [another page also generated by this code](https://michelcrypt4d4mus.github.io/epstein_text_messages/all_emails_epstein_files_nov_2025.html).
* [Word counts for all of the communications](https://michelcrypt4d4mus.github.io/epstein_text_messages/communication_word_count_epstein_files_nov_2025.html).
* Metadata containing what I have figured out about who sent or received the communications in a given file (and a brief explanation for how I figured it out for each file) is deployed [here](https://michelcrypt4d4mus.github.io/epstein_text_messages/file_metadata_epstein_files_nov_2025.json)
* [I Made Epstein's Text Messages Great Again (And You Should Read Them)](https://cryptadamus.substack.com/p/i-made-epsteins-text-messages-great) post on [Substack](https://cryptadamus.substack.com/p/i-made-epsteins-text-messages-great)


## Usage

#### Installation
1. Requires you have a local copy of the OCR text files from the House Oversight document release in a directory `/path/to/epstein/ocr_txt_files`. You can download those OCR text files from [the Congressional Google Drive folder](https://drive.google.com/drive/folders/1ldncvdqIf6miiskDp_EDuGSDAaI_fJx8) (make sure you grab both the `001/` and `002/` folders).
1. Use `poetry install` for easiest time installing. `pip install epstein-files` should also work, though `pipx install epstein-files` is usually better.

You need to set the `EPSTEIN_DOCS_DIR` environment variable with the path to the folder of files you just downloaded when running. You can either create a `.env` file modeled on [`.env.example`](./.env.example) (which will set it permanently) or you can run with:

```bash
EPSTEIN_DOCS_DIR=/path/to/epstein/ocr_txt_files epstein_generate --help
```

All the tools that come with the package require `EPSTEIN_DOCS_DIR` to be set. These are the available tools:

```bash
# Generate color highlighted texts/emails/other files
epstein_generate

# Search for a string:
epstein_search Bannon
# Or a regex:
epstein_search '\bSteve\s*Bannon\b'

# Show a file with color highlighting of keywords:
epstein_show 030999
# Show both the highlighted and raw versions of the file:
epstein_show --raw 030999
# The full filename is also accepted:
epstein_show HOUSE_OVERSIGHT_030999

# Count words used by Epstein and Bannon
epstein_word_count --name 'Jeffrey Epstein' --name 'Steve Bannon'

# Diff two epstein files after all the cleanup (stripping BOMs, matching newline chars, etc):
epstein_diff 030999 020442
```

The first time you run anything it will take a few minutes to fix all the janky OCR text, attribute the redacted emails, etc. After that things will be quick.
Run `epstein_generate --help` for command line option assistance.


#### As A Library
```python
from epstein_files.epstein_files import EpsteinFiles
epstein_files = EpsteinFiles.get_files()

# All files
for document in epstein_files.all_documents():
    do_stuff(document)

# Emails
for email in epstein_files.emails:
    do_stuff(email)

# iMessage Logs
for imessage_log in epstein_files.imessage_logs:
    do_stuff(imessage_log)

# JSON files
for json_file in epstein_files.json_files:
    do_stuff(json_file)

# Other Files
for file in epstein_files.other_files:
    do_stuff(file)
```

