@hraness/message-like-me 0.8.11 → 0.8.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/README.md +99 -43
- package/dist/cli.js +3399 -3088
- package/docs/publishing.md +23 -32
- package/docs/textbutler/agent-cli.md +123 -0
- package/docs/textbutler/architecture.md +71 -24
- package/docs/textbutler/getting-started.md +277 -0
- package/docs/textbutler/ghostget-contract.md +18 -6
- package/docs/textbutler/local-data.md +50 -0
- package/docs/textbutler/messaging-apps.md +121 -0
- package/docs/textbutler/native-process-plan.md +12 -11
- package/docs/textbutler/native-subscription.md +111 -0
- package/docs/textbutler/readiness.md +78 -0
- package/package.json +12 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.8.12 (2026-09-21)
|
|
4
|
+
|
|
5
|
+
- Bind legacy installation to the exact public `@hraness/message-like-me@0.8.12` npm package, with the same reviewed bytes mirrored in the immutable GitHub Release. This does not install the Textbutler menu companion or enable automatic replies.
|
|
6
|
+
- Add the native TextButler desktop app with scoped guided setup, a menu bar companion, and per-contact review-first controls. New installations start paused and automatic replies stay off per contact.
|
|
7
|
+
- Connect subscription replies through qualified XCB applications: AI suggestions run against an explicitly admitted native Claude Code or Codex subscription account with exact executable, account, and model checks instead of an API key.
|
|
8
|
+
- Add the agent messaging JSON CLI for agents to read and summarize one selected conversation, prepare text or attachment drafts, and send only an explicitly authorized reviewed message.
|
|
9
|
+
- Restore native iMessage discovery and history through the reviewed Ghostget connector, including literal modern coordinates, and provision the pinned private transport during setup so a reviewed connector upgrade cannot leave a stale helper.
|
|
10
|
+
- Refresh the informational site's identity and keep it informational only; it receives no messages or contact data.
|
|
11
|
+
|
|
3
12
|
## 0.8.11 (2026-09-16)
|
|
4
13
|
|
|
5
14
|
- Bind legacy installation to the exact public `@hraness/message-like-me@0.8.11` npm package, with the same reviewed bytes mirrored in the immutable GitHub Release. This does not install the Textbutler menu companion or enable automatic replies.
|
package/README.md
CHANGED
|
@@ -2,54 +2,68 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://skills.sh/hraness/message-like-me)
|
|
4
4
|
|
|
5
|
-
Textbutler is a
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
5
|
+
Textbutler is a local message assistant for macOS. Its guided terminal and menu
|
|
6
|
+
bar help you connect selected iMessage, WhatsApp and Beeper conversations, see
|
|
7
|
+
what needs an answer, and review replies before sending them.
|
|
8
|
+
|
|
9
|
+
**Current status: source pilot.** Messaging setup, conversation selection,
|
|
10
|
+
private contact memory, inbox review and replies you write yourself are
|
|
11
|
+
implemented. AI replies require a verified Textbutler bundle with reviewed
|
|
12
|
+
composition admission and connect to a separately installed
|
|
13
|
+
[xcb](https://github.com/hraness/xcb) native runtime with an explicit subscription
|
|
14
|
+
account and model. Textbutler is an MIT-licensed reference application for xcb's
|
|
15
|
+
zero-tool generation API; xcb keeps provider credentials and custody. Account
|
|
16
|
+
setup, current runtime admission and live verification on your chosen messaging
|
|
17
|
+
account and recipient are required before relying on automatic replies. See the
|
|
18
|
+
[subscription guide](docs/textbutler/native-subscription.md).
|
|
19
|
+
|
|
20
|
+
Start with the [guided setup](docs/textbutler/getting-started.md) and
|
|
21
|
+
[messaging app support](docs/textbutler/messaging-apps.md). Beeper can connect
|
|
22
|
+
apps such as Signal, Telegram and Instagram through Ghostget's current text
|
|
23
|
+
automation adapter. Its linked apps and account permissions determine what is
|
|
24
|
+
available. The [architecture](docs/textbutler/architecture.md) records the
|
|
25
|
+
runtime boundaries and remaining qualification work.
|
|
26
|
+
|
|
27
|
+
Agents can use the [JSON CLI](docs/textbutler/agent-cli.md) to read and summarize
|
|
28
|
+
one conversation, prepare text or media drafts, and send an explicitly
|
|
29
|
+
authorized message. Each connection reports its available actions.
|
|
30
|
+
|
|
31
|
+
## Open the guided terminal
|
|
32
|
+
|
|
33
|
+
From a Textbutler checkout on your Mac, with Bun 1.3.14:
|
|
34
34
|
|
|
35
35
|
```sh
|
|
36
36
|
bun install --frozen-lockfile --ignore-scripts
|
|
37
|
-
bun run
|
|
37
|
+
bun run textbutler tui
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
Choose **Setup & readiness**, then **Connect messaging apps**. Textbutler uses
|
|
41
|
+
an existing Ghostget installation for messaging sign-in and permissions. The
|
|
42
|
+
guide explains how to select its executable and accounts, start the background
|
|
43
|
+
service, and add one conversation. New installations start paused and new
|
|
44
|
+
contacts have automatic replies off. Setup and conversation selection never
|
|
45
|
+
send a message.
|
|
46
|
+
|
|
47
|
+
For AI replies, build and install with `bun run textbutler:install`, then run
|
|
48
|
+
`~/.local/bin/textbutler`. The builder requires the reviewed composition receipt
|
|
49
|
+
to match current source bytes and both contact capability profiles. A source
|
|
50
|
+
daemon has no embedded composition admission and cannot enable subscription
|
|
51
|
+
inference. Source commands remain useful for setup and manual reply controls.
|
|
52
|
+
|
|
53
|
+
Textbutler's source is MIT licensed and its new packages remain unpublished.
|
|
54
|
+
The published Message Like Me package documented below installs the legacy
|
|
55
|
+
history tools, not Textbutler. The website at
|
|
56
|
+
[textbutler.app](https://textbutler.app) is informational and receives no private
|
|
57
|
+
messages or contact folders.
|
|
45
58
|
|
|
46
59
|
## Run the Textbutler menu companion
|
|
47
60
|
|
|
48
|
-
|
|
49
|
-
|
|
61
|
+
The native companion downloads and verifies a pinned prebuilt
|
|
62
|
+
desktop-foundation runner on first start. No local Rust build is needed. Start
|
|
63
|
+
it from the terminal's **Menu bar companion** action or run:
|
|
50
64
|
|
|
51
65
|
```sh
|
|
52
|
-
bun run textbutler menubar
|
|
66
|
+
bun run textbutler menubar start
|
|
53
67
|
bun run textbutler menubar status
|
|
54
68
|
bun run textbutler menubar stop
|
|
55
69
|
```
|
|
@@ -64,9 +78,51 @@ bun run textbutler menubar uninstall
|
|
|
64
78
|
|
|
65
79
|
`menubar doctor` reports the runner artifact, platform capability, and any
|
|
66
80
|
operating-system approval step needed on an unsigned binary. The companion
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
81
|
+
offers pause, connection checks, conversation selection, contact and agent
|
|
82
|
+
settings, inbox previews and recent activity. Use the terminal for complete
|
|
83
|
+
draft review and sending. Menu startup is separate from daemon startup;
|
|
84
|
+
quitting the menu leaves an installed background service running. Use
|
|
85
|
+
`daemon install` or `daemon uninstall` to manage that service. Uninstall retains
|
|
86
|
+
your settings and contact memory.
|
|
87
|
+
|
|
88
|
+
## Answer your own messages
|
|
89
|
+
|
|
90
|
+
In the terminal, choose **Inbox & replies**, select a conversation, then choose
|
|
91
|
+
**Type a reply**. Review the recipient and complete text before typing `send`.
|
|
92
|
+
This path needs a ready messaging connection but no AI account. Cancelling the
|
|
93
|
+
review sends nothing.
|
|
94
|
+
|
|
95
|
+
After the connected AI account passes its readiness check, suggestions use a separate
|
|
96
|
+
review step:
|
|
97
|
+
|
|
98
|
+
```sh
|
|
99
|
+
bun run textbutler inbox
|
|
100
|
+
bun run textbutler replies suggest CONTACT
|
|
101
|
+
bun run textbutler replies show DRAFT
|
|
102
|
+
bun run textbutler replies send DRAFT DIGEST
|
|
103
|
+
bun run textbutler replies discard DRAFT
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
`CONTACT` is the exact contact ID or a unique name match. Use the complete draft
|
|
107
|
+
and digest returned by `replies show`; previews alone cannot send. Suggestions
|
|
108
|
+
expire after fifteen minutes. Changed contact settings, conversation context
|
|
109
|
+
or attachment bytes require a fresh review. The CLI also supports an immediate
|
|
110
|
+
explicit reply with `bun run textbutler replies send CONTACT TEXT...`.
|
|
111
|
+
|
|
112
|
+
`submitted` means the messaging provider accepted the action, not that the
|
|
113
|
+
recipient received or read it. A pending operation prints a job ID: inspect it
|
|
114
|
+
with `bun run textbutler jobs show JOB_ID`. Do not repeat a send with an unknown
|
|
115
|
+
outcome. Uncertain sends remain blocked until reconciled.
|
|
116
|
+
|
|
117
|
+
Every text reply is wrapped in the contact's three disclosure symbols, rendered
|
|
118
|
+
`🤖{ … }` by default. Each field may be cleared individually; clearing all three
|
|
119
|
+
sends plain text. The review shows the actual outgoing text. The send journal
|
|
120
|
+
retains provider acceptance IDs when available; see the messaging guide for
|
|
121
|
+
connection-specific attribution and delivery limits.
|
|
122
|
+
|
|
123
|
+
Automatic replies remain a separate choice: they require a qualified agent,
|
|
124
|
+
a ready messaging connection, explicit contact activation and global resume.
|
|
125
|
+
Keep them paused until those requirements and the relevant live checks pass.
|
|
70
126
|
|
|
71
127
|
## Legacy Message Like Me history tools
|
|
72
128
|
|
|
@@ -111,7 +167,7 @@ Message Like Me requires Bun 1.3.14 or newer. Install the exact public npm
|
|
|
111
167
|
package, then install both bundled Agent Skills:
|
|
112
168
|
|
|
113
169
|
```sh
|
|
114
|
-
bun add --global @hraness/message-like-me@0.8.
|
|
170
|
+
bun add --global @hraness/message-like-me@0.8.12
|
|
115
171
|
messagelikeme skill install
|
|
116
172
|
```
|
|
117
173
|
|
|
@@ -851,7 +907,7 @@ profile to a fixture.
|
|
|
851
907
|
Read [CONTRIBUTING.md](CONTRIBUTING.md) before opening a change.
|
|
852
908
|
|
|
853
909
|
The canonical repository is
|
|
854
|
-
[`hraness/
|
|
910
|
+
[`hraness/textbutler`](https://github.com/hraness/textbutler).
|
|
855
911
|
The informational project page is
|
|
856
912
|
[`messagelikeme.com`](https://messagelikeme.com). The CLI does not connect to
|
|
857
913
|
the site, and the site never receives message or contact data.
|