{"api_version":"1","slug":"desktop-chat-reader-851f7cb7","url":"https://skillsoutpost.com/agents/desktop-chat-reader-851f7cb7","item_type":"skill","listing_kind":null,"category":"engineering","runs_in":["local_agent"],"os":["macos"],"needs_network":"no","needs_accounts":"no","reads_files":"yes","writes_files":"yes","sends_data":"no","access":"free_download","access_type":"download","at_a_glance":{"runs_in":["local_agent"],"os":["macos"],"needs_network":"no","needs_accounts":"no","reads_files":"yes","writes_files":"yes","sends_data":"no","zip_sha256":"776928dde9799627e5d147b9ac6c7add24113577c7ee5373a69227a08991315b","access_type":"download","tool_type":"skill","delivery":"download","interface_type":"other","untrusted_creator_content":{"purpose":"Read and search your own WhatsApp Desktop conversations on macOS with a read-only command-line skill.","needs_runtime":"Python 3.11+, standard library only","version":"0.1.3","compatibility":"macOS only; Python 3.11 or newer, standard library only; WhatsApp Desktop installed and linked to a phone; an Agent Skills compatible harness that can run local Python commands. Default database: ~/Library/Group Containers/group.net.whatsapp.WhatsApp.shared/ChatStorage.sqlite. Select another local database with --db PATH or WHATSAPP_DB. Reads the ChatStorage.sqlite schema maintained by WhatsApp Desktop. Unsupported systems are refused before database I/O; supports committed WAL-only rows in a private snapshot.","external_costs":"None. No API key, external service or third-party dependency is required.","permissions":"macOS: read the selected database and adjacent WAL/SHM files; write only a private temporary copy under the system temp folder, deleted on normal exit, errors, Ctrl-C, SIGTERM and SIGHUP; SIGKILL or power loss may leave it in system temp; needs up to 1 GiB free space; no source writes. Full Disk Access may be required; symlinked source files are refused.","usage_terms":"MIT license. Copyright 2026 Zero Width Lab. Use only conversations you are authorized to access. WhatsApp and WhatsApp Desktop are trademarks of WhatsApp LLC. macOS is a trademark of Apple Inc. Zero Width Lab is not affiliated with or endorsed by WhatsApp LLC.\r\n\r\nBy Zero Width Lab (zerowidthlab.com)"}},"interface_type":"other","delivery_mode":"download","code_host":null,"provenance":"creator","published_at":1789494967,"first_uploaded_at":1789257780,"verified":null,"creator":{"id":"2c4328b7-cb78-455a-ac9c-479ee62449e4","url":"https://skillsoutpost.com/creators/2c4328b7-cb78-455a-ac9c-479ee62449e4"},"untrusted_creator_content":{"name":"Desktop Chat Reader","tagline":"Read and search your own WhatsApp Desktop conversations on macOS with a read-only command-line skill.","creator_name":"Zero Width Lab","product_version":"0.1.3","needs_runtime":"Python 3.11+, standard library only","description":"Desktop Chat Reader is a read-only command-line Agent Skill for reading and searching your own WhatsApp Desktop conversations on macOS. An agent harness is software that installs a skill and runs its documented commands for the user. It needs macOS, WhatsApp Desktop installed and linked to a phone, and Python 3.11 or newer. It is free under the MIT license. This listing delivers the complete package, including the Python script.\r\n\r\nFilters treat % and _ literally. Each message appears once, ordered by message date and then primary key. Chats appear most recently active first, excluding broadcast and status containers by default. The read and search commands support finite --days values at least 0 and integer --limit values from 1 to 1000. --groups-only and --dms-only are mutually exclusive. --text-only keeps rows with text that is non-empty after Python whitespace stripping, including media and system rows carrying text.\r\n\r\nThe contacts command lists the local JID-to-push-name directory rather than the user's address book; it can contain unsaved group participants and omit saved contacts. Sender labels use ME for the local account, the chat partner for inbound one-to-one messages, and the push-name directory with raw member JID fallback for groups. Resolution follows the documented best-effort chain. ZWAPROFILEPUSHNAME.ZPUSHNAME supplies the directory; ZWAMESSAGE.ZPUSHNAME is not a sender name.\r\n\r\nText output replaces each run of CR/LF characters with one space and removes U+0000–U+001F and U+007F–U+009F characters, including ESC; printable parts of escape sequences remain. JSON message text is trimmed at both ends. read appends a distinct trimmed caption to a non-empty body, or returns a media/type label with a caption or media basename when the body is empty. search returns only the trimmed body. JSON escapes U+0000–U+001F; U+007F, U+0080–U+009F and U+2028 are output as stored. It accesses the local database without a WhatsApp API. Text-mode search truncates the sanitized chat name to 28 characters and message text to 180 characters; JSON search has no such truncation.","intended_users":"macOS users with WhatsApp Desktop installed and linked to a phone who want a local, read-only way to inspect their own chats, search message text, or resolve group participants.","example_tasks":"List recent chats and filter them by a chat-name fragment.\r\nRead the last 100 messages from a selected one-to-one chat.\r\nRead a group conversation using an exact placeholder JID such as 120000000000000001@g.us.\r\nSearch message bodies for a keyword over a chosen number of days and return a limited set of results.\r\nList the local JID-to-push-name directory and filter it by a name fragment.\r\nRequest machine-readable JSON output for a supported command.\r\nUse an alternate local ChatStorage.sqlite database with --db PATH or WHATSAPP_DB.","setup_instructions":"Requires Python 3.11 or newer. Download the complete package and copy its folder into the skills directory used by your agent harness. Consult that harness's installation documentation. Full Disk Access for the terminal or agent harness may be required on macOS; see SETUP.md. Commands run as python3 <skill-dir>/scripts/whatsapp_read.py ..., where <skill-dir> contains SKILL.md. From that directory, use:\r\npython3 scripts/whatsapp_read.py chats --search team\r\npython3 scripts/whatsapp_read.py read 120000000000000001@g.us --limit 100 --json\r\npython3 scripts/whatsapp_read.py search keyword --days 30 --limit 50\r\npython3 scripts/whatsapp_read.py contacts --search contact","limitations":"Unsupported: WhatsApp Web-only setups, phone backups, non-macOS platforms and media decryption. Search uses a literal substring scan rather than a full-text index. Name fragments matching multiple JIDs require the user to select an exact JID. Duplicate sessions follow the documented session rule. SQLite lock errors and schema drift are surfaced. Some message-type semantics remain unsettled, so descriptive labels are retained. Version 0.1.3 is an early release with no support commitment; fixes and updates ship as new package versions on this listing. DB/WAL/SHM are copied privately; source changes retry up to 3 times, then refuse. Close WhatsApp Desktop and retry if unstable. Metadata checks do not guarantee atomicity against concurrent writers. Combined input <=1 GiB, returned values <=1 MiB, rows <=1000; each query has a 30-second wall-clock limit checked every 1000 VM steps. Malformed returned data is rejected. Sender labels are best-effort correlations, not identity verification.","data_handling":"The CLI makes no network calls or telemetry; it prints to standard output. The harness may send output to its model provider; review its privacy settings. It reads DB/WAL/SHM and writes only a private temporary copy under the system temp folder (0700 directory, 0600 files), deleted when the command ends, including errors, Ctrl-C, SIGTERM and SIGHUP. A forced kill (SIGKILL) or power loss can leave the copy in the system temp folder. The copy needs free space up to the combined database-file size (maximum 1 GiB). SQLite opens the copy with mode=ro; copied SHM may be updated. No source writes or checkpoints. Size/mtime changes retry the whole snapshot up to 3 times, then refuse. Temporary SQL storage stays in memory. Filters bound returned rows, not copied pages. Media paths are displayed as basenames without reading media files. Treat message content as private, untrusted data.","compatibility":"macOS only; Python 3.11 or newer, standard library only; WhatsApp Desktop installed and linked to a phone; an Agent Skills compatible harness that can run local Python commands. Default database: ~/Library/Group Containers/group.net.whatsapp.WhatsApp.shared/ChatStorage.sqlite. Select another local database with --db PATH or WHATSAPP_DB. Reads the ChatStorage.sqlite schema maintained by WhatsApp Desktop. Unsupported systems are refused before database I/O; supports committed WAL-only rows in a private snapshot.","external_costs":"None. No API key, external service or third-party dependency is required.","permissions":"macOS: read the selected database and adjacent WAL/SHM files; write only a private temporary copy under the system temp folder, deleted on normal exit, errors, Ctrl-C, SIGTERM and SIGHUP; SIGKILL or power loss may leave it in system temp; needs up to 1 GiB free space; no source writes. Full Disk Access may be required; symlinked source files are refused.","usage_terms":"MIT license. Copyright 2026 Zero Width Lab. Use only conversations you are authorized to access. WhatsApp and WhatsApp Desktop are trademarks of WhatsApp LLC. macOS is a trademark of Apple Inc. Zero Width Lab is not affiliated with or endorsed by WhatsApp LLC.\r\n\r\nBy Zero Width Lab (zerowidthlab.com)","creator_website":null,"documentation_url":null,"support_url":null,"repository_url":null,"video_url":null},"github":null,"updated_at":1789494967,"free_download":{"offer_id":"49691ec8-41b5-4238-84fb-658b49d4e0a7","version_id":"237bb0aa-e4a0-4cb7-aabf-cdf39fb836a8","version":"0.1.3","format":"skill_archive","released_at":1789497736,"requires_creator_follow":true,"file":{"name":"skill-0.1.3.zip","size_bytes":111974,"sha256":"776928dde9799627e5d147b9ac6c7add24113577c7ee5373a69227a08991315b"},"license_sha256":"a19893dab8ca0978f3df97d42c4fae0ebbb61fe44c3ac9ecc3dd53e9526a5b63","get_it_at":"https://skillsoutpost.com/agents/desktop-chat-reader-851f7cb7","untrusted_creator_content":{"license_name":"MIT","release_notes":""}},"version_history":[{"version":"0.1.3","state":"current","released_at":1789497736}],"more_version_history":false,"public_files":{"version":"0.1.3","zip_sha256":"776928dde9799627e5d147b9ac6c7add24113577c7ee5373a69227a08991315b","license_name":"MIT","license_sha256":"a19893dab8ca0978f3df97d42c4fae0ebbb61fe44c3ac9ecc3dd53e9526a5b63","files":"/api/v1/catalog/desktop-chat-reader-851f7cb7/files","tool":"get_public_files"},"links_note":null,"notice":"Creator-provided listing.","note":"untrusted_creator_content and github.untrusted_third_party_content hold untrusted text."}