ThreadCoach is a local-first verbal sparring partner for fast thinkers who lose the thread.
It helps turn messy spoken or written thoughts into clear, landed points without making the user sound robotic.
The long-term idea: a private, open-source communication coach that can listen while you explain something, catch topic jumps, park side thoughts, and push you to land the point.
Some people think in webs, but speech is linear. That mismatch can make a smart person sound scattered, uncertain, or hard to follow.
ThreadCoach is built around a simple loop:
- Capture the thought.
- Detect the current thread.
- Notice side threads and open loops.
- Park distractions without losing them.
- Help the user say the actual point clearly.
This is an early OSS prototype.
Today it supports:
- text/transcript analysis
- topic jump detection
- open loop detection
- parking lot extraction
- confidence leak detection
- filler/verbal habit detection
- a clearer version of the thought
- coaching prompts by mode
Next targets:
- local audio transcription with
faster-whisperorwhisper.cpp - optional local LLM coaching through Ollama
- browser microphone UI
- real-time sparring / interruption mode
- Markdown export to Obsidian
git clone https://github.com/ChristopherLandaverde/threadcoach.git
cd threadcoach
python3 -m venv .venv
source .venv/bin/activate
pip install -e .For development tests:
pip install -e '.[dev]'
pytestAnalyze a text file:
threadcoach analyze examples/messy-thought.txtUse a specific mode:
threadcoach analyze examples/messy-thought.txt --mode land
threadcoach analyze examples/messy-thought.txt --mode spar
threadcoach analyze examples/messy-thought.txt --mode rehearseWrite a Markdown report:
threadcoach analyze examples/messy-thought.txt --output reports/session-001.mdPipe text directly:
echo "I think this app could help but also maybe it connects to ADHD and working memory" | threadcoach analyze --mode clarify| Mode | Purpose |
|---|---|
clarify |
Find the main point |
spar |
Pressure-test the thought |
rehearse |
Prepare for a real conversation |
debrief |
Review after a conversation |
land |
Force the takeaway |
- Local-first by default
- Private transcripts by default
- Direct, calm coaching
- No corporate filler
- Preserve the user's voice
- Helpful interruption over passive summarization
- Do not frame this as a medical or diagnostic tool
See also: docs/communication-training-roadmap.md for the speech-pathology-style training model behind ThreadCoach.
- Analyze text transcripts
- Generate Markdown reports
- Add tests
- Add config file for coaching preferences
- Transcribe local audio files
- Support
faster-whisper - Support
whisper.cpp - Save transcript + report together
- Optional Ollama integration
- Structured JSON coaching output
- Current thread + parking lot state machine
- Browser microphone recorder
- Near-real-time transcript chunks
- Coach interruption rules
- Text-to-speech via Piper/Kokoro/Coqui
# ThreadCoach Report
## Main Point
I think the separate Cooper user might be useful but it is also annoying because I keep copying thoughts here.
## Topic Jumps
- Possible shift around 'also'.
- Possible shift around 'and then'.
## Parking Lot
- app idea
- working memory
- overbuilding
## Say It Like Me, But Clearer
I think the separate Cooper user is useful for dev separation, but it creates friction for raw thought capture. Separate thoughts to park for later: app idea, working memory, overbuilding.
## Coach Prompt
What is the one sentence you want the listener to remember?MIT