Documentation · v0.1 experimental
Build from evidence,
not from mythology.
Digital Self turns selected WhatsApp conversations into artifacts you can inspect, scope, correct, and judge. This page is the shortest path from install to a reviewable run.
Quick start
Install the local toolkit.
The core package requires Python 3.10 or newer. WhatsApp evidence stays on the machine unless you deliberately connect another provider.
git clone https://github.com/Amal-David/whatsapp-llm
cd whatsapp-llm
pip install -e .
The project is called Digital Self. The installed command remains living-brain so existing scripts do not break.
Approach B
Build across selected chats.
The multi-chat workflow separates owner evidence, relationship context, and owner self-report. It produces digital_self.v1, a portable profile with hashes and aggregates rather than owner message bodies.
1. List sources
WhatsApp for Mac is opened through SQLite read-only mode. Listing chats does not print message bodies.
living-brain self chats --source whatsapp-mac2. Interview the owner
living-brain self interview \
--owner-name "Your Name" \
--output ./private/self-interview.yaml3. Build and validate
living-brain self build \
--source whatsapp-mac \
--chat "first-chat-id" \
--chat "second-chat-id" \
--owner-name "Your Name" \
--interview ./private/self-interview.yaml \
--output ./private/digital-self.json
living-brain self validate ./private/digital-self.jsonUse --all-chats only after reviewing the source list. For a local wacli mirror, pass --source wacli --path ~/.wacli/wacli.db.
Approach A
Build a relationship-scoped Mini-Me.
Mini-Me asks a narrower question: how does one selected person tend to reply in this conversational setting? It starts with an authorized WhatsApp text export.
living-brain workbench --port 7861- 01Upload
Choose an export and select the participant whose messages may be used.
- 02Consent
Confirm authority before the dataset is generated.
- 03Separate
Third-party messages are withheld by default; target replies are redacted.
- 04Hold out
Whole conversations, not adjacent messages, define train and evaluation splits.
The archive includes canonical examples, style summaries, training-ready rows, preference pairs, and held-out evaluation rows. Keep the result relationship-scoped unless broader evidence supports generalization.
Guided demo
The 12 artifact receipts.
Run a deterministic synthetic walkthrough. It reads no WhatsApp data and calls no external model.
living-brain brain guide \
--demo \
--workspace ./private/digital-self-demo \
--as-of 2026-07-11T12:00:00+00:00Selected fixture and external-access receipt
Weak, stale, and scoped evidence fixture
Missing or weak layers and next questions
Gap-selected questions and synthetic answers
Version after owner-backed state is added
Redacted view before correction
Receipt linking old item to successor
Versioned state after correction
Before/after comparison
Grounded draft, citations, assumptions, authority denial
Eight independent axes and hard-gated result
Status, paths, version, questions, result
No clone score
Judge independent failure modes.
The typed-state evaluator does not collapse human representation into one flattering number.
01Behavioral fidelity
02Temporal correctness
03Relationship isolation
04Autobiographical attribution
05Decision behavior
06Confidence calibration
07Privacy and authority
08Explicit owner judgment
Privacy failures block a pass. Owner approval is supplied by the owner, not guessed by the model.
Boundaries
Keep the experiment private.
- Partial evidenceChats show selected behavior, not a complete person or hidden motives.
- Private sourcesKeep chats, keys, interviews, profiles, evaluation rows, and state snapshots out of source control.
- Version-sensitive accessWhatsApp for Mac uses a private schema;
wacliis not an official API. - Incomplete deletionComplete propagation through every derived artifact is not implemented yet.
- No authorityGenerated output cannot send, promise, transact, or represent the owner.
Development
Verify the repository.
pip install -e ".[dev]"
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 pytest tests -q -o addopts=''
python -m compileall -q living_brain testsCI repeats tests, compilation, CLI smoke checks, package builds, Ruff, and mypy on Python 3.10, 3.11, and 3.12.