You text different people differently. Message Like Me studies your past conversations with one person, then gives your agent examples and patterns to work from. You get a draft to review, never an automatically sent message.
Local-first, drafts only, and free under the MIT license. macOS with Bun 1.3.14 or newer.
Message Like Me · synthetic example
Incoming message
yes to friday. also can you send me that link?
Unsent draft
perfect, friday it is
yep one sec
More than word choice
Tone
Lowercase, casual, and direct.
Rhythm
Two short messages instead of one paragraph.
Attention
Acknowledge the plans and the link request.
You review the draft. Nothing is sent.
An illustrative, unsent draft—not a measured result. Every message and pattern shown here is synthetic.Synthetic example · no real message history
Read your history
Read Apple Messages, an X archive, or a Beeper or WhatsApp bundle from Ghostget without changing any of them.
Understand
Measure how you write to one person: word choice, timing, bubble shape, and how you answer several things at once.
Draft
Hand your agent the evidence and get an unsent draft back. You decide what, if anything, gets sent.
Supported sources
Your history comes in from the apps you already use.
Read Apple Messages or an X archive directly. For Beeper and WhatsApp, import a finished local export from Ghostget. Contacts can add familiar names. Expand a source for its import command and limits.
Messaging history
Apple Messages
SupportedNative · read-only
Reads a stable private copy of the current macOS user’s iMessage database.
Import command and limits for Apple Messages
Message Like Me never modifies Messages, chat.db, or its transactional sidecars.
messagelikeme ingest imessage
Messaging history
Beeper via Ghostget
SupportedBounded local bundle
Adds a finished Beeper bundle from Ghostget v0.17.1 and adapter 2.4.0 to the private local evidence corpus.
Import command and limits for Beeper via Ghostget
All 32 reviewed operations stay in Ghostget: 26 through one pinned Beeper CLI 0.6.2 executable, including supported actions and writes, plus six fixed Desktop loopback reads. Message Like Me receives no provider credentials, calls no Ghostget or Beeper operation, never sends, and does not claim complete history.
The command-line tool reads and measures your history on your Mac. The installed Agent Skill teaches your existing agent how to use those examples and patterns. You choose what it can read, then review its draft.
01
Read historymessagelikeme ingest imessage --json
Read a stable copy of Apple Messages, or bring an X archive or a Ghostget bundle. Nothing in the source changes.
02
Find patternsmessagelikeme inspect tempo <contact-id> --json
See counts, timing, and reply habits for one person. This view uses contact IDs instead of names and leaves out message text.
03
Preparemessagelikeme study prepare <contact-id> --output /absolute/private/study.json --json
Write one evidence packet with real excerpts to a path you name, with owner-only filesystem permissions.
04
DraftUse $message-like-me in your agent
Your agent reads the packet, keeps what is uncertain uncertain, and stops at a draft you can edit or discard.
The evidence profile
Voice has a rhythm.
Word choice matters. So do the pauses, the bursts, the afterthought, and the decision to answer three things in one message or three.
01
Prose
Case, punctuation, vocabulary, warmth, humor, and uncertainty.
02
Tempo
Response latency, turns, bursts, and where a conversation pauses.
03
Shape
One long message versus several deliberate bubbles.
04
Context
What changes across play, planning, support, conflict, and reflection.
05
Coverage
How several incoming questions or emotional beats get resolved.
06
Replies
When explicit reply links clarify a dense or delayed thread.
What it is
Evidence for a draft.
Message Like Me measures your outgoing prose and reply shape for one person across the sources you import, then gives your agent a profile it can cite line by line.
What it is not
Not a model of you.
It does not train a model, represent your identity, predict your beliefs, or send a message. What you mean now always outranks how you wrote before.
The CLI keeps your history local. If you open a study packet in a hosted agent, that agent handles its excerpts under its own privacy terms. Share only what you are comfortable giving it.
It stays on your machine
Imported history, measurements, and profiles live in a private local data root with owner-only permissions.
Everyday output has no prose
Ordinary commands report counts and timing under pseudonymous IDs. They omit message bodies, handles, and contact names.
You choose what an agent sees
A study packet holds real excerpts. It reaches an agent only when you write it to a path you name and open it in an environment you trust.
No account, server, or model
There is no Message Like Me account, server, AI-provider call, telemetry, or sync. This website is an informational page.
Nothing sends
Drafting ends as text on your screen. There is no command that sends, reacts, schedules, or operates a messaging app.
Install v0.8.9
Start with an empty store.
bun add --global @hraness/message-like-me@0.8.9
messagelikeme skill install
messagelikeme init
messagelikeme doctor --json
The first check imports no history. It reports where Message Like Me will work and whether its private store is healthy, before you choose a source. Requires Bun 1.3.14 or newer. Inspect the release on GitHub
Questions
Before you install.
Does the website receive my messages?
No. messagelikeme.com is an informational project page. It has no upload, account, message-history, profile, or drafting surface. Everything the CLI reads and writes stays on your machine in private local paths you choose.
Do I need an account or an API key?
No. There is no Message Like Me account, sign-in, server, telemetry, or sync. The CLI never calls a model or an AI provider. Drafting happens in the agent you already use, under that agent’s own account and terms.
Can it send or schedule a message?
No. Message Like Me has no send, react, schedule, provider-authentication, or messaging-application command. Drafting ends as text on your screen, and you decide what to do with it.
Which sources are supported?
Apple Messages, caller-owned X data archives, bounded Beeper and native WhatsApp bundles exported through compatible Ghostget releases, and optional macOS Contacts labels. Every path is read-only; Messages, Contacts, archives, and bundles are never changed.
What does it cost?
Nothing. Message Like Me is open source under the MIT license. Install the exact public npm package; the same reviewed bytes are mirrored by an immutable GitHub release. The only cost is whatever the agent you draft with already charges you.
Which platforms does it run on?
macOS with Bun 1.3.14 or newer. Apple Messages and Contacts are read from the current macOS user’s local databases. Version 0.8.9 is the current release.
Does Message Like Me include an AI model?
No. The CLI performs deterministic local ingestion and measurement. Semantic analysis and unsent drafting happen through the agent environment you already chose, using the installed Agent Skill.
Is the result a digital clone?
No. The result is revisable evidence for a draft. It does not establish identity, beliefs, intent, consent, or what you would write now. What you mean today always outranks how you wrote before.
Can I use it from TypeScript?
Yes. The @hraness/message-like-me package exports the versioned corpus, metrics, study-packet, and profile types plus canonical JSON and SHA-256 helpers, with no filesystem or network work on import.
Who made it?
Ben Guo, a musician and builder, formerly a founder and engineering leader at companies including Venmo and Stripe, now building from Puerto Rico. The source is public on GitHub under the MIT license.
Built by
Built by Ben Guo
Message Like Me is built by Ben Guo, a musician and builder, formerly a founder and engineering leader at companies including Venmo and Stripe, now building from Puerto Rico. The source, the method, and the research review are public.