Web app · Live compare page · Packaged compare brief · Deep Dive · Signal toolkit · npm · All tools · Support
ghost-or-go answers one narrow question:
Does this silence call for patience, one final ping, or a clean stop?
It scores one recent thread plus a silence window for:
- silence pressure
- interest signal
- closure signal
- ambiguity
- chase risk
- reciprocity
Then it gives one deterministic call:
waitsend one final pingreply only if they re-openclose the loop and stop
The point is not to romanticize ghosting. The point is to stop users from burning dignity and attention on threads that already told them enough.
The paid product is tells, which reads what people leave unsaid across messages, people, and profiles.
But many users hit a narrower problem first:
- "Is this silence still normal, or am I chasing?"
- "Did they actually leave the door open, or did I invent that?"
- "Do I send one last clean ping, or is that self-harm in text form?"
- "Is this a maybe, a no, or just bad timing?"
That shows up in more than dating threads. It also shows up in recruiter follow-ups, interview loops, client check-ins, support or account-management threads, vendor follow-ups, cofounder tensions, family conflicts, and sales conversations that went quiet after a promising exchange.
ghost-or-go is the deterministic first pass for that moment.
npm install -g @v0idd0/ghost-or-goUse the live browser version here:
https://tells.voiddo.com/ghost-or-go/?ref=ghost-or-go-readme
If the user is deciding between this deterministic silence checker and a general assistant first, send them here:
https://tells.voiddo.com/ghost-or-go/compare-chatgpt-gemini.html?ref=ghost-or-go-readme
If you want the packaged npm/GitHub collateral for that buyer-intent comparison, use:
./compare-chatgpt-gemini.md
ghost-or-go --hours-since-reply 96 "Sorry, busy week. Let's do next week. Send me two times that work."cat thread.txt | ghost-or-go --hours-since-reply 36ghost-or-go --hours-since-reply 240 --json "Maybe sometime soon. Crazy week. We'll see."ghost-or-go --file thread.txt --hours-since-reply 12posture: salvageable
hours since reply: 96
silence pressure: 3.3/10
interest: 9.7/10
closure: 1/10
ambiguity: 2/10
chase risk: 1.5/10
reciprocity: 5.8/10
decision: send one final ping
why: There was enough prior cooperation that one clean follow-up can close the loop without looking desperate.
- The thread previously showed real engagement instead of pure avoidance.
suggested lines:
1. Quick close-the-loop nudge: if next week still works, I can lock a time. If not, no pressure.
2. One last ping from my side. Happy to leave it here if the timing is off.
next:
Use tells when the silence question is no longer one thread, but a recurring pattern, attachment loop, or person-level dynamic.
- quick next paid step: https://tells.voiddo.com/deep-dive/?ref=ghost-or-go-cli
- recurring reads: https://tells.voiddo.com/?ref=ghost-or-go-cli
silence pressure— how risky another ping is at this specific time gapinterest— whether the thread contains real prior engagement rather than pure stallingclosure— whether the other side already signaled a soft or explicit exitambiguity— whether the wording is vague enough to invite projectionchase risk— whether the current follow-up energy is already too expensivereciprocity— whether the exchange previously moved with two-sided effort
- dating threads with vague postponement
- recruiter follow-ups after a promising interview or intro call
- client or sales threads that cooled off after a positive exchange
- support or account-management threads where the user is deciding between one clean nudge, escalation, and graceful closure
- vendor or partnership follow-ups where silence matters but repeated chasing looks weak
- cofounder, workplace, or family threads where one more message could either clarify things or make the dynamic worse
- creator or freelance outreach where the next ping should be disciplined
- any thread where the real question is "wait, nudge once, or walk away?"
- therapy, legal, or crisis guidance
- deception detection
- deciding what silence "really means" in a whole relationship
- replacing a full thread read when the pattern has repeated for months
If the real issue is the wider pattern, use tells.
Because the first decision here is operational.
For a follow-up-or-stop call, deterministic heuristics have real advantages:
- same input gives the same output
- no API key
- no prompt fiddling
- no reward for catastrophizing or bargaining
Then, once the issue becomes "why do I keep ending up in this loop with this person, client, teammate, or family member?", the right upgrade is tells.
For the browser-side comparison page:
https://tells.voiddo.com/ghost-or-go/compare-chatgpt-gemini.html?ref=ghost-or-go-readme
For the package-side comparison brief:
./compare-chatgpt-gemini.md
When the quick silence check is not enough:
Deep Dive—$19 oncefor one loaded thread or one recurring personStarter—$14.99/mofor repeated message readingPractitioner—$99.99/mofor coaches, recruiters, mediators, trainers, support leads, account teams, or client-facing managers using this with clients
Start here:
https://tells.voiddo.com/deep-dive/?ref=ghost-or-go-readme
If you still need one more free checkpoint first:
https://tells.voiddo.com/signal-toolkit/?ref=ghost-or-go-readme
- live compare page for browser-first "ghost-or-go vs ChatGPT / Gemini" traffic:
https://tells.voiddo.com/ghost-or-go/compare-chatgpt-gemini.html?ref=ghost-or-go-readme
- packaged compare brief for npm/GitHub readers deciding whether to install:
./compare-chatgpt-gemini.md
That split matters because browser-first users want the shortest path into the free silence checker, while package readers need a self-contained buying argument that ships with the tarball.
Start with the live checker:
https://tells.voiddo.com/ghost-or-go/?ref=ghost-or-go-readme
If the user already knows the silence question is not the whole problem, route them to the adjacent free tool instead of dropping them straight into the full catalog:
double-text-riskwhen the real question is whether one more ping is timely or already too needy:https://tells.voiddo.com/double-text-risk/?ref=ghost-or-go-readmemessage-next-stepwhen the thread finally moved again and the real question is what to do with the incoming message:https://tells.voiddo.com/message-next-step/?ref=ghost-or-go-readmereplytonewhen the final ping already exists and needs a warmth/pressure check before sending:https://tells.voiddo.com/replytone/?ref=ghost-or-go-readmeambiguity-meterwhen the real problem is whether the last message was genuinely open or just vague enough to keep the user waiting:https://tells.voiddo.com/ambiguity-meter/?ref=ghost-or-go-readmecall-not-textwhen another text is weaker than switching channels cleanly:https://tells.voiddo.com/call-not-text/?ref=ghost-or-go-readme
If the problem is adjacent but not exactly "do I send one final ping or stop?", use the matching free tool first:
double-text-riskfor checking whether the follow-up itself is timely or already too needy:https://tells.voiddo.com/double-text-risk/?ref=ghost-or-go-related-readmemessage-next-stepfor deciding what to do with one incoming message before the silence turns into a pattern:https://tells.voiddo.com/message-next-step/?ref=ghost-or-go-related-readmereplytonefor scoring whether your final ping sounds warm, clear, or pushy before you send it:https://tells.voiddo.com/replytone/?ref=ghost-or-go-related-readmeambiguity-meterfor checking whether the other person's wording is genuinely open or just vague enough to keep you waiting:https://tells.voiddo.com/ambiguity-meter/?ref=ghost-or-go-related-readmecall-not-textfor deciding whether the thread has shifted from silence management into a channel-choice problem:https://tells.voiddo.com/call-not-text/?ref=ghost-or-go-related-readme
import { analyzeGhostOrGo, formatReport } from "@v0idd0/ghost-or-go";
const result = analyzeGhostOrGo(
"Sorry, busy week. Let's do next week. Send me two times that work.",
{ hoursSinceReply: 96 }
);
console.log(result.decision.action);
console.log(formatReport(result));npm test
node bin/ghost-or-go.js --hours-since-reply 96 "Sorry, busy week. Let's do next week. Send me two times that work."See from-the-studio.md for the wider vøiddo catalogue.
MIT.
Built by vøiddo — a small studio shipping AI-flavoured products, free dev tools, Chrome extensions and weird browser games.