What it does
An ambiguous message never arrives in isolation, but most AI assistants treat it as if it does — and a fluent answer built on missing context can be persuasively wrong about the people you care about. Second Mind is an inspectable contextual reasoning system that separates evidence, observation, interpretation, confidence, and alternatives before generating advice. It organises messages, notes, events, and screenshots into an evidence-linked, revisable relationship graph and timeline and uses only the context the user selects. It does not decide what another person intended or tell the user what to do — it helps people reason and communicate with better context while keeping judgment and agency human.
- Invariant reasoning lenses: Think through, Pause & parse, Clarity, Reflect, and Challenge hold reported evidence constant while changing the cognitive operation, competing readings, unknowns, and next question. An automated regression test enforces this contract.
- Communication Studio: Draft, Reply, Review, Rewrite, Predict, and Compare use the selected relationship history, goals, preferences, boundaries, and timeline before offering editable wording. The user's original is never overwritten or sent automatically.
- Natural capture: browser-local OCR (Tesseract.js) turns a screenshot into editable people, messages, situations, commitments, and issues — no paid API call.
- Evidence-linked memory: every extracted record retains its source and can be corrected or removed. Missing dates stay unknown; the upload date is never silently substituted.
- Relationship graph & timeline: people and multi-person dynamics stay visible while closeness and trust remain independent dimensions. Exact-ID context retrieval prevents one person's history from bleeding into another's response.
- Epistemic discipline (Merlin): competing hypotheses with illustrative Bayesian updates — observations, interpretations, alternatives, and confidence stay separated, and no AI interpretation becomes trusted memory automatically.
- Perspective Simulation: before sending, rehearses how the recipient might read the selected response — literal meaning, possible emotional reading, misunderstanding risk — without claiming access to anyone's mind.
- Context comparison: an isolated response appears beside a response grounded in the exact context the user selected, with every context item visible.
How Codex and GPT-5.6 were used
I used Codex with GPT-5.6 to design, implement, and test the capture pipeline, relationship graph, structured context architecture, epistemic result contract, and the evaluation suite (68 automated tests; 28/28 full-pipeline evaluations). Codex accelerated the build across the entire week: scaffolding the schema-versioned data model, iterating on the OCR review flow, hardening the retrieval isolation, and producing and verifying the demo video pipeline. For reproducible judging, the main demo defaults to a zero-cost deterministic path and needs no private key. To see live GPT-5.6 reasoning directly, open the Live Reasoning panel above the welcome screen: pick one of five lenses (Think through, Pause & parse, Clarity, Reflect, Challenge), describe a situation, and generate a structured reasoning card. With no key configured it runs on the same deterministic engine; set PAID_API_ENABLED=true and a real key in .env and the identical request calls GPT-5.6 through the OpenAI Responses API instead, same schema, same interface, the result badge switching from "Local deterministic demo" to "Live · gpt-5.6-terra".
Screenshot
→ browser-local Tesseract.js OCR
→ editable capture review
→ canonical people / situation / commitment records
→ exact-ID context retrieval
→ deterministic or optional GPT-5.6 reasoning
→ evidence-linked comparison
→ user correction or action
Research baseline
We also tested the wider premise — that fuller context can improve forecasting — on 4,188 ConvoKit conversations with 840 held out and zero paid API calls. The results are a research baseline, never a tool for judging people.
Why this matters
People already use general AI systems to interpret messages, draft difficult replies, and make sense of relationships. The risk is not only hallucinated facts; it is persuasive social certainty built on partial context. Second Mind makes evidence, uncertainty, alternatives, and user control part of the interface rather than hidden prompt instructions.
Privacy
OCR, structured records, and the judge demonstration run locally. There is no cloud database; source images remain in local IndexedDB, records can be removed, and API keys never enter browser code. The prototype plainly warns that local storage is not encrypted and is not ready for sensitive production data.
What's next
The same architecture can support voice capture, Push to Think, Reflection Mode, and private earbud delivery on existing hardware — always user-initiated, never ambient.
Try it (zero-cost judge path)
npm install, cp .env.example .env, npm start, open http://localhost:3000. Try the case-based demo: Share a screenshot → Try a fictional screenshot. Try live GPT-5.6 directly: scroll to Live Reasoning, pick a lens, describe a situation. Runs fully locally with no API key. 68/68 tests (npm test), 28/28 evals (npm run eval), verified from a clean clone.
Two-page submission dossier (judge brief + founder thesis): https://github.com/AbbyFitz2-droid/second-mind/blob/main/output/pdf/second-mind-submission-dossier.pdf
Built With
- codex
- convokit
- gpt-5.6
- indexeddb
- javascript
- json-schema
- node.js
- openai-responses-api
- scikit-learn
- tesseract.js
Log in or sign up for Devpost to join the conversation.