How It Works
The knowledge graph system continuously monitors your data sources and extracts meaningful entities to create interconnected notes.Processing Flow
Sync runs
Data sources (Gmail, Fireflies, Granola) fetch new or updated content and save as markdown files in
~/.rowboat/Change detection
The system uses a hybrid mtime + hash approach to identify which files need processing:
- Quick check: Compare file modification time (mtime)
- Verification: If mtime changed, compute content hash to confirm actual content changes
Knowledge Structure
Rowboat organizes your knowledge into four primary entity types:People
Contacts you interact with via email or meetingsFields tracked:
- Name and email
- Organization and role
- Aliases for name variations
- Communication history
Organizations
Companies and institutions mentioned in your communicationsFields tracked:
- Organization name
- Domain (e.g., example.com)
- Aliases (e.g., “ACME” vs “ACME Corp”)
- Related people and projects
Projects
Initiatives, deals, or ongoing work mentioned across conversationsFields tracked:
- Project name
- Status (active, completed, etc.)
- Aliases
- Related people and organizations
Topics
Concepts and subject matter that appear in your workFields tracked:
- Topic name
- Keywords for matching
- Aliases
- Related entities
Note Creation from Sources
From Emails
When processing email threads, Rowboat:- Converts the thread to markdown format
- Extracts sender information, subject, and body content
- Identifies people, organizations, and topics mentioned
- Creates or updates corresponding notes with context
Email processing behavior is controlled by strictness levels - see the section below for details.
From Meetings
Meeting transcripts (from Fireflies or Granola) are processed similarly:- Transcript is converted to structured markdown
- Participants are extracted and linked to People notes
- Topics discussed are identified and tracked
- Action items and decisions are preserved
Meetings always create notes at all strictness levels, as they represent significant interactions.
From Voice Memos
Voice memos recorded in Rowboat:- Are transcribed and saved to
~/.rowboat/knowledge/Voice Memos/ - Undergo entity extraction like other sources
- Can reference existing people, projects, or topics
- Are organized by date for easy retrieval
Strictness Levels
Rowboat supports three strictness levels that control how aggressively notes are created from emails. This prevents your knowledge base from getting overwhelmed with noise.- High Strictness
- Medium Strictness
- Low Strictness
Philosophy: “Meetings create notes. Emails enrich them.”
- Emails never create new notes (only meetings do)
- Emails can only update existing notes for people you’ve already met
- Exception: Warm intros from known contacts can create notes
- Best for: Users who get lots of emails and want minimal noise
- Mass newsletters ✓
- Automated/system emails ✓
- Consumer services (Amazon, Netflix) ✓
- Generic cold sales ✓
- Recruiters ✓
- Support reps ✓
- Personalized business emails ✓
- Meetings ✓
- Warm intros from existing contacts ✓
Auto-Configuration
On first run, Rowboat analyzes your emails and recommends a strictness level:- More than 100 human senders → Recommends High (avoid overload)
- 50-100 senders → Recommends Medium (balanced)
- More than 50% consumer services → Recommends Medium (filter noise)
- Less than 30 senders → Recommends Low (comprehensive capture is manageable)
~/.rowboat/config/note_creation.json and can be changed at any time.
Knowledge Index
Rowboat maintains a fast in-memory index of all your notes to help the AI quickly resolve entities without searching.Index Structure
Index Structure
State Management
The knowledge graph maintains state in~/.rowboat/knowledge_graph_state.json:
- Only new or changed files are processed
- Progress is preserved even if processing is interrupted
- You can force reprocessing by deleting the state file
Source Code Reference
Key implementation files:apps/x/packages/core/src/knowledge/build_graph.ts- Main orchestratorapps/x/packages/core/src/knowledge/graph_state.ts- State managementapps/x/packages/core/src/knowledge/knowledge_index.ts- Index builderapps/x/packages/core/src/knowledge/sync_gmail.ts- Gmail integrationapps/x/packages/core/src/knowledge/sync_fireflies.ts- Meeting transcripts