Provider capability reference · Wrench 0.9.0
Contacts, email, and messages are provider-specific capabilities.
Wrench currently supports Gmail contacts, inbox search, thread reading, and private thread clipping through official Google APIs. Other contact and messaging providers expose narrower reviewed surfaces. A missing or capture-required operation stays unavailable rather than falling back to general browser control.
This reference describes v0.9.0 and was checked against the bundled public adapter manifests for that immutable release. Run wrench capabilities --json for the exact state installed on your machine.
Current contact and messaging coverage
| Provider | Contacts | Inbox and messages | Important limit |
|---|---|---|---|
| Gmail official | Google People connections plus bounded directional Gmail statistics | Observed inbox or bounded search listing, exact thread read, and private thread clipping with attachments | Counts and dates expose completeness; scanning is bounded and reading does not mark mail seen |
| LinkedIn official | Observed first-degree connections with exact account binding and locale-selection evidence | No ordinary inbox operation through the official API; consumer-web inbox operations remain capture-required | Requires approved r_1st_connections and r_liteprofile; message statistics are unavailable |
| Instagram web | Observed unique non-viewer participants from one reviewed first Direct inbox page | Observed bounded first inbox summary page; individual thread read remains capture-required | Contact set and message statistics are explicitly incomplete; no acknowledgement or presence request is issued |
| WhatsApp linked device | Observed bounded page from the private, quiescent Whatsmeow contact store | Observed bounded local linked-device conversation list and exact conversation read | No new WhatsApp connection or acknowledgement is emitted; directional contact statistics are unavailable |
| Facebook web | Capture-required reservation for friends or Messenger participants | Inbox listing and conversation reading are capture-required | Actor binding, paging, completeness, acknowledgement, and Messenger transport still require review |
| Telegram | Not installed | Not installed | Requires a reviewed TDLib user-session lifecycle; Wrench does not substitute the Bot API or claim contact access |
This matrix covers the contact and messaging providers above. Wrench also ships other provider adapters and operations. Their current installed contract states remain discoverable through the CLI rather than being generalized from this table.
Gmail contacts, inbox search, thread reads, and clips
Gmail uses the official Gmail and Google People APIs. Its auth locator must match a current-user-owned mode-0600 token document with the exact provider, subject, and sorted contacts.readonly and gmail.readonly scopes.
wrench gmail contacts.list --auth gmail-main \
--input '{"limit":20,"stats_scan_limit":100}' --json
wrench gmail messaging.list --auth gmail-main \
--input '{"view":"inbox","limit":25}' --json
wrench gmail messaging.list --auth gmail-main \
--input '{"view":"search","query":"from:example.com has:attachment","limit":25}' --json
wrench gmail messaging.read --auth gmail-main \
--input '{"thread_id":"thread-id-from-list"}' --jsonContact statistics report sent and received counts plus the maximum internal date across each bounded matched-message scan. A count is complete, a lower bound, or null; dates carry the same basis and completeness evidence. limit * stats_scan_limit cannot exceed 2,000 per-direction query candidates before paired metadata reads.
Inbox and search rows include a provider-derived threadUrl and the exact messaging.read input. Reading does not mark a message seen or emit an acknowledgement. Pass the returned URL to wrench read or wrench clip with the same auth locator. Clips default to private Wrench state and can include every MIME attachment as content-addressed, integrity-recorded objects. The capture guide documents the plaintext export and attachment boundary.
LinkedIn, Instagram, and WhatsApp contacts keep their missing data visible
wrench linkedin contacts.list --auth linkedin-main \
--input '{"start":0,"count":25}' --json
wrench instagram-web contacts.list --auth instagram-main \
--input '{"thread_limit":25,"contact_limit":50}' --json
wrench whatsapp-web contacts.list --auth whatsapp-main \
--input '{"limit":50}' --jsonLinkedIn's official Connections API does not expose ordinary inbox history, so Wrench reports directional statistics as unavailable. Its separate consumer-web contact and inbox reservations do not inherit authority from the official adapter.
Instagram projects only participants visible in one reviewed first inbox page. Provider pagination and local thread or contact limits remain incomplete. WhatsApp reads one page from the authenticated account owner's private, quiescent contact store without opening a connection; it does not reinterpret a linked-device message cache as complete account-owned history.
Verified reads can remain available locally
Successful R1 calls with a verified account subject can publish encrypted snapshots of the exact validated query and bounded output. Repeating the same operation with --cache-only can return the last verified state without opening a browser or provider connection.
A failed refresh does not erase the last good snapshot. Provider paging, completeness, and unsupported states remain explicit. WhatsApp revalidation reads its local linked-device projection; synchronizing that projection remains the separate explicit wrench auth sync <id> --once operation.