Split an email reply chain into clean, attributed messages.
replysplit takes one incoming email and returns the conversation inside it: each message with who wrote it, when, its subject and its text, and the words the newest author typed without the quoted history. It also tells a person from a machine, recognises your own reply coming back, and pairs customer questions with your answers with personal details scrubbed.
Buy replysplit for $49One payment of $49, plus sales tax where it applies, and every future update. Delivered as a private GitHub repository you're invited to.
What it does
- Reply chains into turns
- Each message in the chain becomes a turn with sender name and address, sent time, subject, text, kind (original, reply or forward) and whether it was quoted. visible_text holds what the newest author wrote.
- Reads the formats real clients write
- Outlook From/Sent/To/Subject blocks, On <date> wrote: lines (also in German, French, Spanish, Dutch, Italian, Portuguese and Nordic forms), Original Message and forwarded-message markers, > quote levels and HTML blockquotes. A line like "From: a legal standpoint" stays in the text.
- HTML and links kept readable
- HTML becomes text that keeps link text, list items and pre indentation. Outlook Safe Links, URL Defense and Google redirects are unwrapped, and click trackers behind a link are dropped. A URL a person typed is never removed.
- Person or machine
- classify_mail reads the headers first and gives its reasons: bounce, auto-reply, bulk, automated or person. You declare your own domains, addresses and group aliases, so your own list mail is not taken for a mailing.
- Your own replies recognised
- EchoDetector spots the copy of a reply you sent when it comes back through a Sent Items sync or a BCC, without swallowing a customer who quotes you. Sent replies are kept in memory, in SQLite or in your own store.
- Conversation keys that hold
- conversation_key stays the same through Re:, Fwd:, AW:, SV: and [EXTERNAL] prefixes. It uses message ids or your provider's thread id when there is one, and falls back to the subject.
- Question and answer pairs
- question_answer_pairs pairs a customer's question with your side's reply and scrubs email addresses, phone numbers and long digit runs from the text, subject and names. Thank-yous are skipped and near-duplicates can be removed.
After you buy
pip install ./replysplit
cd replysplit
replysplit tests/fixtures/gmail_reply.eml
replysplit tests/fixtures/gmail_reply.eml --pairs --own-domain example.com
What you get
replysplit 1.0.0: the Python library and the replysplit command, with sample messages, an ingest example and the full test suite, with 474 automated tests. Python 3.10 or newer.
A commercial license. Use it and change it in your own projects and your clients' projects. Don't share or resell the source. Read the license.
Every update. New versions land in the same repository; git pull to get them.
How buying works
- Enter your GitHub username. You'll see the account before you pay, so you can check it's yours.
- Pay $49, plus any sales tax shown at checkout, on Stripe's checkout page.
- Accept the invitation GitHub emails you. Signed in as that account, you'll also find it at
github.com/dominares-tools/replysplit/invitations. Invitations expire after 7 days; you can get a new one any time. - Clone and install:
git clone https://github.com/dominares-tools/replysplit.git pip install ./replysplit
Questions
- Do I need GitHub?
- Yes. Access is a read-only invitation to a private repository, sent to the GitHub account you choose.
- Can I get a refund?
- Yes, within 14 days, no questions asked. Access ends when the refund goes through. Refund policy.
- Who takes the payment?
- Stripe. Your purchase is sold through Link, Stripe's checkout service, which also works out sales tax and sends your receipt.
- Something wrong?
- Email josephlinares02@gmail.com. Every buyer of a tool shares its repository, so support happens by email rather than in GitHub issues.