Web app · Live compare page · Packaged compare brief · Deep Dive · Signal toolkit · GitHub · npm · All tools · Contact
message-next-step is a deterministic checker for one narrow question:
What should you do with this message right now?
It reads one incoming message and suggests one next step:
reply nowwaitask one concrete questionmove to a calllet it go
It does not pretend to read the whole relationship. It gives a fast, explainable first pass when you are stuck between overreacting and overinterpreting in dating, recruiter, workplace, client, support, or family threads.
It also works as a narrower, faster alternative to ChatGPT or Gemini when the real question is not "help me think forever" but "what is the next move on this one message?"
The paid product is tells, which reads what people leave unsaid across messages, people, and profiles.
But many users do not start with "analyze the whole pattern." They start with a smaller operational question:
- Should I answer this now?
- Are they asking for something real, or just creating pressure?
- Is this vague enough that I need one clarifying question?
- Is texting the wrong bandwidth for this?
That same question shows up outside dating too:
- recruiter loops where timing and seriousness are unclear
- client or account messages that may need a cleaner boundary
- support escalations that are getting too heated for chat
- family or cofounder threads where the real question is whether text is still working
message-next-step is that free first step. It gives a deterministic action recommendation before the user commits to a deeper paid read.
npm install -g @v0idd0/message-next-stepUse the browser version here:
https://tells.voiddo.com/message-next-step/?ref=message-next-step-readme
If you want the browser-side AI-alternative framing first:
https://tells.voiddo.com/message-next-step/compare-chatgpt-gemini.html?ref=message-next-step-readme
If you want the packaged compare brief for npm/GitHub readers:
compare-chatgpt-gemini.md
If the blocker is follow-up timing rather than reply content, use the sibling checker here:
https://tells.voiddo.com/double-text-risk/?ref=message-next-step-readme
If the incoming message is warm but still too vague to treat as a real yes, check that layer here first:
https://tells.voiddo.com/soft-yes-or-no/?ref=message-next-step-readme
message-next-step "Can you confirm by Friday whether you want me to send the draft?"cat incoming.txt | message-next-stepmessage-next-step --json "Maybe later. We'll see when things calm down."message-next-step --file incoming.txtposture: direct
directness: 7.9/10
ambiguity: 2.5/10
pressure: 3.2/10
escalation: 1/10
avoidance: 1/10
call shift: 1/10
next step: reply now
why: The text names a usable next step without much ambiguity.
- There is enough concrete signal to answer directly.
next:
Use tells when one message is not enough and you need the thread, the person, or the pattern over time.
- quick next paid step: https://tells.voiddo.com/deep-dive/?ref=message-next-step-cli
- recurring reads: https://tells.voiddo.com/?ref=message-next-step-cli
The tool uses transparent heuristics around six dimensions:
directness— is there a real ask, timing, or next step?ambiguity— is timing or intent being left blurry?pressure— is force doing more work than content?escalation— is this message getting too hot for text?avoidance— is the sender stalling instead of deciding?call shift— are there enough cues that text is the wrong channel?
The recommendation is intentionally conservative. It is designed to stop bad reactive moves, not to invent certainty.
- tense client, recruiter, or support texts
- dating or relationship messages with mixed clarity
- workplace follow-ups where you are unsure whether to push
- family messages where a call may be better than more texting
- any incoming message where your real question is "what do I do next?"
- therapy, legal, or crisis guidance
- deception detection
- full relationship analysis
- multi-message pattern reading
Those are outside this tool's scope. If the stakes are real and one message is not enough, use tells.
Because the first question is often operational, not interpretive.
For a narrow next-step call, a deterministic tool is faster and easier to trust:
- no API key
- no prompt fiddling
- no latency roulette
- no surprise token bill
- same input gives the same output
Then, if the user needs the deeper read, the next step is not "more tokens." It is tells, which is built around subtext, conspicuous absence, pressure, and likely next move.
If you want the side-by-side framing inside the live browser route:
https://tells.voiddo.com/message-next-step/compare-chatgpt-gemini.html?ref=message-next-step-readme
If you want the package-side compare brief instead:
compare-chatgpt-gemini.md
When the one-message answer is not enough, the paid ladder is simple:
Deep Dive—$19 oncefor one loaded thread or one recurring personStarter—$14.99/mofor repeated message readingPractitioner—$99.99/mofor coaches, recruiters, mediators, trainers, or client-facing teams using this with clients
If the message-level answer is not enough, the fastest paid handoff is usually Deep Dive:
https://tells.voiddo.com/deep-dive/?ref=message-next-step-readme
If you still want the wider browser-first free path first:
https://tells.voiddo.com/signal-toolkit/?ref=message-next-step-readme
Start here:
https://tells.voiddo.com/message-next-step/?ref=message-next-step-readme
If the next-step question turns out to be the wrong layer, route into the narrower free tool first:
double-text-riskfor deciding whether another outbound follow-up is too soon or too pushy:https://tells.voiddo.com/double-text-risk/?ref=message-next-step-related-readmesoft-yes-or-nofor deciding whether the incoming message is polite interest, real intent, or a warm stall before you commit to a direct reply:https://tells.voiddo.com/soft-yes-or-no/?ref=message-next-step-related-readmereplytonefor checking whether your drafted response sounds clear, warm, or too forceful:https://tells.voiddo.com/replytone/?ref=message-next-step-related-readmeambiguity-meterfor scoring whether the incoming message is vague, evasive, or mixed:https://tells.voiddo.com/ambiguity-meter/?ref=message-next-step-related-readmecall-not-textfor deciding whether the thread is already too compressed or heated for another message:https://tells.voiddo.com/call-not-text/?ref=message-next-step-related-readmeghost-or-gofor deciding whether ongoing silence means wait, one final ping, or close the loop:https://tells.voiddo.com/ghost-or-go/?ref=message-next-step-related-readmeraincheck-or-runfor deciding whether repeated reschedules and no-new-time messages are still workable or already a stall pattern:https://tells.voiddo.com/raincheck-or-run/?ref=message-next-step-related-readme
import { analyzeMessageNextStep, formatReport } from "@v0idd0/message-next-step";
const result = analyzeMessageNextStep("You always do this. Call me right now!!!");
console.log(result.decision.action);
console.log(formatReport(result));npm test
node bin/message-next-step.js "Maybe later. We'll see when things calm down."See from-the-studio.md for the wider vøiddo catalogue.
- live compare page:
https://tells.voiddo.com/message-next-step/compare-chatgpt-gemini.html?ref=message-next-step-readme - packaged compare brief:
compare-chatgpt-gemini.md
If you are positioning this tool against general-purpose AI assistants, use the dedicated comparison asset:
replytonefor checking whether your drafted response sounds warm, clear, or too forceful before you send it:https://tells.voiddo.com/replytone/?ref=message-next-step-readmedouble-text-riskfor deciding whether a follow-up is timely, needy, or better left unsent:https://tells.voiddo.com/double-text-risk/?ref=message-next-step-readmesoft-yes-or-nofor deciding whether the incoming wording is a real yes, a warm maybe, or a polite stall before you over-commit to a reply:https://tells.voiddo.com/soft-yes-or-no/?ref=message-next-step-readmeambiguity-meterfor checking whether the incoming message is vague, evasive, or mixed enough to justify a clarifier instead of a direct answer:https://tells.voiddo.com/ambiguity-meter/?ref=message-next-step-readmecall-not-textfor deciding whether the thread has outgrown text and needs a call, pause, or firmer channel switch:https://tells.voiddo.com/call-not-text/?ref=message-next-step-readmeghost-or-gofor deciding whether ongoing silence after this message means wait, one final ping, or close the loop:https://tells.voiddo.com/ghost-or-go/?ref=message-next-step-readmeraincheck-or-runfor deciding whether repeated schedule slips, delays, or "maybe later" loops are still genuine or already a stall pattern:https://tells.voiddo.com/raincheck-or-run/?ref=message-next-step-readme
MIT.
Built by vøiddo — a small studio shipping AI-flavoured products, free dev tools, Chrome extensions and weird browser games.