DominaresTools

All tools / Email & messaging

gatedraft

Reply drafts from your own notes, written only after the opt-out gates pass, and never sent.

Buy gatedraft for $149

One payment of $149, plus sales tax where it applies, and every future update. Delivered as a private GitHub repository you're invited to.

See it work

gatedraft 1.0.3demo mode
gatedraft intake gatedraft/examples/opted-out.json --optout gatedraft/examples/optout.txt --dry-run
thread: cid:AAQk-stop
refused: opted_out
no model was asked and nothing was stored

gatedraft intake gatedraft/examples/question.json --knowledge gatedraft/examples/knowledge --optout gatedraft/examples/optout.txt --answer-file gatedraft/examples/reply.txt --state ./state
thread: cid:AAQk-visit
drafted: yes
--- draft (NOT sent; a person reads it and sends it) ---
Hi Pat,

Yes, you can bring a group of eight. Visits run on Friday mornings from ten until noon, at 12 Harbour Road. Groups of up to ten can book at bookings.example.org.

If you need anything else, the front desk is at help@example.org.

The team
--- end of draft ---
Demo mode, not a live system: gatedraft 1.0.3, run on 2026-10-07. The shipped example notes, an example opt-out list and two example emails on our test machine; a canned reply file stands in for the draft model, so no AI model was called and nothing was sent.

What it does

For one inbound email, gatedraft runs the gates, sorts it, searches your own knowledge and writes a reply draft that waits for a person to read it. The gates run before the model is paid. An address on your opt-out list is refused, and a list that can't be read stops every draft to an address. There is no send function in the package.

Gates before any model is paid
Refuses your own outbound mail, your own mailings, mail older than 30 days (yours to change), bounces and out-of-office replies, and anyone on your opt-out list.
Opt-outs fail closed
A list that can't be read, has the wrong JSON key, or is a file with content but no address stops every draft to a sender with a readable address, with its own reason. A path passed where a list belongs raises an error. A sender with no address at all passes this gate. Give no list at all and there is no opt-out gate, so pass one.
Sorts before it drafts
A four-step classifier files newsletters, removal requests and do-not-contact messages into folders instead of answering them, or tags the rest (Materials, Event, Question, Concern, Complaint, General, Ignore). A removal request is filed for a person to act on, never acted on.
Grounded in your notes
Your search runs before the model. The model is told the passages are the only facts it may use, and to give a contact instead of inventing an answer.
A dry run that asks no model
gatedraft intake --dry-run prints the gates' verdict, the passages found, the instructions, the earlier turns of the thread and the message the model would receive, and stores nothing.
Plain Python, no dependencies
Standard library only. OpenAI-compatible and Anthropic transports are included, or pass any function. JSON-file or in-memory stores. Synchronous.

What you get

gatedraft 1.0.3: the gatedraft Python package and command, runnable examples and the full test suite, with 389 automated tests.

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.

Requirements

Python 3.10 or newer. Python 3.10 or newer. Your own model key (OpenAI-compatible or Anthropic) for live drafts; the dry run and canned-reply modes need none.

How buying works

  1. Enter your GitHub username. You'll see the account before you pay, so you can check it's yours.
  2. Pay $149, plus any sales tax shown at checkout, on Stripe's checkout page.
  3. Accept the invitation GitHub emails you. Signed in as that account, you'll also find it at github.com/dominares-tools/gatedraft/invitations. Invitations expire after 7 days; you can get a new one any time.
  4. Clone and install:
    git clone https://github.com/dominares-tools/gatedraft.git

    Private repo: sign in to GitHub on this computer first. Run gh auth login and choose HTTPS, or give git a personal access token when it asks for a password. To use an SSH key instead, clone git@github.com:dominares-tools/gatedraft.git.

    python3 -m venv .venv && . .venv/bin/activate
    pip install ./gatedraft

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?

Payments are handled by Stripe, which works out sales tax. Your receipt and card statement show Link (LINK.COM*), Stripe's checkout service.

Something wrong?

Email support@dominares.org. Every buyer of a tool shares its repository, so support happens by email rather than in GitHub issues.