Client Feedback Evidence Collector
Collects chats, voice notes, emails, and attachments into one local workflow for clear, traceable client feedback.
Project overview
Client Feedback Evidence Collector overview
A short overview of the problem, solution, and result.
Starting Point
Useful client feedback was spread across WhatsApp chats, voice notes, and domain Gmail threads, which made it hard to assemble a reusable evidence packet without manual copying and fragile exports.What Shipped
Built a Rust command-line tool that checks local dependencies, searches and collects WhatsApp messages, and searches and collects Gmail threads with stable output for automation.Why It Mattered
Turned scattered client feedback sources into a repeatable local workflow that writes `run.json`, `messages.json`, `evidence.md`, attachments, audio files, WAV files, and transcript artifacts.I built a local CLI that turns scattered feedback into traceable evidence
I built a local command-line tool that turns scattered client feedback into one traceable evidence packet.
Client feedback only helps later if the source is still attached to it. Before this tool, useful evidence lived in scattered chats, audio notes, emails, attachments, and screenshots. I needed a reliable way to assemble a packet without copying private text around by hand or losing the source path behind a claim.
I built a local collector for messages, files, and transcripts
Client Feedback Evidence Collector is a command-line tool that collects supporting evidence from WhatsApp chats, voice notes, domain email threads, attachments, and local transcripts.
Each collection follows a defined path and writes an evidence packet on the same computer, so private source material does not need to pass through another service.
One collection run produces a traceable evidence packet
The diagram shows the relationship to notice: several private sources enter through separate collection paths, then leave as one local packet with messages, files, transcripts, and a record of where each item came from.

I kept collection private, explicit, and source-specific
Keep sensitive evidence local by default.
Run outputs live under the local client-feedback evidence directory unless the user chooses another output path. The public repo contains source code and docs, not captured messages, audio, browser storage, or OAuth tokens.
Keep each source's collection path separate.
WhatsApp collection uses a dedicated browser profile and visible WhatsApp Web session. Email collection uses the selected message or thread and downloads its attachments through the Google Workspace command-line client.
Make ambiguous selections explicit.
WhatsApp and email searches can return several possible conversations. The tool stops unless there is one safe match or the user has reviewed the options and chosen one explicitly.
The tool follows the same steps as a careful review
Commands follow the collection sequence.
One command checks that the required local tools are available, WhatsApp commands confirm the linked browser session before searching or collecting, and email commands preview the selected messages before writing an evidence packet.
Voice notes remain inspectable files.
The tool downloads visible voice notes, records each file’s size and unique SHA-256 fingerprint, converts the audio into a standard format, and writes both the transcript and structured transcript data when local transcription is enabled.
Email attachments stay connected to the thread.
The email path resolves the selected query, message, or thread, reads its details, downloads nested attachments, gives them safe filenames, and records their fingerprints alongside the message.
Other tools receive predictable output.
Commands can return structured JSON for automation while sending dependency diagnostics to a separate error channel, so scripts can read the result without hiding failures.
The collector keeps source, context, and files together
The finished tool combines separate collection paths, explicit choices, local evidence handling, organized run records, and tests around the steps most likely to break.
Visible chat evidence can be collected without copying it by hand.
The command-line tool searches linked WhatsApp Web chats, collects visible messages, and stops for an explicit choice when a search finds more than one possible conversation.
Audio evidence stays local and traceable.
Visible voice notes can be downloaded, given a unique file fingerprint, converted to a standard audio format, and transcribed on the same computer.
Email threads produce reusable evidence packets.
The email workflow collects the selected messages and attachments locally, records where each file came from, and writes a readable evidence document.
Each collection run leaves an organized record.
A run records the selected messages, files, transcripts, and file fingerprints, so a later review can trace every item back to the collection that produced it.
Tests cover the collection steps most likely to break.
Automated tests cover ambiguous searches, message details, downloads, email attachments, safe filenames, and the structured output used by other tools.
Collected feedback keeps its source and context
The tool turns private, scattered feedback into a repeatable evidence workflow. Each source remains visible, the files stay local, and the evidence can be reused later without guessing where it came from.
The implementation is public
The open-source repository includes the Rust command-line tool, collection rules, local evidence records, browser and email handling, and automated tests.
View GitHub repo →
Implementation details
Tell me what your team needs to ship.
Start with the feature, integration, or system that's stuck. We'll work out whether a project or a monthly contract fits.