IntentFlow
Capture the reasoning behind your code decisions.
IntentFlow automatically saves your AI chat sessions from GitHub Copilot and Cursor, versioning the intent and decisions in your repository. Track what code was written by AI vs humans with Agent Trace and Human Trace.
Why IntentFlow?
You don't know why your Agents chose Drizzle over Prisma. Neither does the next agent in line to work on your codebase.
Intent captures the reasoning behind your code—from agent sessions to team discussions—versioned in your repo.
Features
Core Features
- Automatic Capture: Sessions are saved automatically as you work
- Git-Friendly: Markdown exports commit cleanly with your code
- Privacy-First: PII and secrets are redacted before export
- Local Search: Find past decisions without leaving VS Code
- Opt-Out Control: Per-session ignore and global disable options
- Rule Derivation: Generate coding rules from sessions using local LLMs (Ollama)
- Multi-Format Export: Output rules to GitHub Copilot and Cursor formats
- Auto-Tagging: Automatically categorize sessions using local AI analysis
- Thinking Content: Capture AI extended reasoning (
<think> tags) in collapsible sections
Experimental Features
Enable these in settings under intentflow.experimental.*:
NES (Next Edit Suggestions)
Track inline code completions from GitHub Copilot with metrics on AI-assisted typing.
- Captures accepted AI suggestions with text content
- Distinguishes AI completions from manual typing
- Configurable detection thresholds
- Language and file pattern filtering
Agent Trace
Track AI-generated code at the file and line level following the Agent Trace v0.1.0 spec.
- Records which lines were written by AI assistants
- Tracks file edits from Copilot tool calls (
createFile, replaceString, multiReplaceString)
- Content hashing for tracking code modifications
- Links code to originating chat sessions
Human Trace
Calculate human-authored code by analyzing what ISN'T in Agent Trace.
- Identifies code written by humans for compliance and audit
- Git blame integration for contributor attribution
- Pre-commit hooks showing human code coverage
- Critical path monitoring for files requiring human review
Getting Started
- Install the extension from the VS Code marketplace
- Open a workspace folder
- Start chatting with Copilot or Cursor
- Sessions are automatically saved to
.intentflow/history/
Directory Structure
.intentflow/
├── history/ # Markdown exports (git-friendly)
├── store/ # Structured JSON (gitignored)
├── traces/ # Agent Trace and Human Trace data
│ └── workspace-trace.json
├── backups/ # Rule file backups (gitignored)
└── .gitignore # Auto-excludes store/ and backups/
Commands
Session Management
| Command |
Description |
| IntentFlow: Save Current AI Chat Session |
Manually save the current session |
| IntentFlow: Search AI Chat History |
Search past sessions |
| IntentFlow: Toggle Auto-Capture |
Enable/disable automatic capture |
| IntentFlow: Ignore Current Session |
Mark current session to not be saved |
| IntentFlow: Export Session to Markdown |
Export session as markdown |
| IntentFlow: Open History Folder |
Open the history directory |
| IntentFlow: Sync Workspace History |
Import historical sessions from workspace |
Rule Derivation
| Command |
Description |
| IntentFlow: Derive Rules from Sessions |
Generate coding rules using Ollama |
Human Trace (Experimental)
| Command |
Description |
| IntentFlow: Generate Human Trace |
Calculate human-authored code in workspace |
| IntentFlow: Show Human Code Coverage |
Display human vs AI code statistics |
| IntentFlow: Install Human Trace Git Hooks |
Add pre-commit hook for coverage reporting |
| IntentFlow: Uninstall Human Trace Git Hooks |
Remove the pre-commit hook |
Configuration
Capture Settings
| Setting |
Default |
Description |
intentflow.capture.enabled |
true |
Enable automatic capture |
intentflow.capture.sources |
["copilot", "cursor"] |
AI assistants to capture |
intentflow.storagePath |
.intentflow |
Storage directory path |
intentflow.timezone.utc |
true |
Use UTC timezone for timestamps |
intentflow.includeThinkingContent |
true |
Include AI thinking/reasoning content |
intentflow.showDeveloperTools |
false |
Show developer logging and debug tools |
Redaction Settings
| Setting |
Default |
Description |
intentflow.redaction.enabled |
true |
Redact sensitive information |
intentflow.redaction.patterns |
[] |
Additional regex patterns to redact |
Ollama Integration
| Setting |
Default |
Description |
intentflow.ollama.enabled |
true |
Enable Ollama integration |
intentflow.ollama.baseUrl |
http://localhost:11434 |
Ollama server URL |
intentflow.ollama.model |
lfm2.5-thinking |
Model for analysis |
intentflow.ollama.timeout |
120000 |
Request timeout (ms) |
Rule Derivation
| Setting |
Default |
Description |
intentflow.rules.outputFormats |
["copilot", "cursor"] |
Output targets |
intentflow.rules.minConfidence |
0.7 |
Minimum confidence threshold (0-1) |
intentflow.rules.createBackup |
true |
Backup before overwrite |
Auto-Tagging
| Setting |
Default |
Description |
intentflow.tagging.enabled |
true |
Enable auto-tagging of sessions |
intentflow.tagging.minConfidence |
0.6 |
Minimum confidence for tags (0-1) |
intentflow.tagging.maxMessages |
10 |
Max messages to analyze |
Experimental: NES (Inline Completion Tracking)
| Setting |
Default |
Description |
intentflow.experimental.nes.enabled |
false |
Enable NES tracking |
intentflow.experimental.nes.retentionDays |
30 |
Days to retain metrics data |
intentflow.experimental.nes.minCharsForSingleLine |
30 |
Min chars for single-line completion |
intentflow.experimental.nes.minLinesForMultiLine |
2 |
Min lines for multi-line completion |
intentflow.experimental.nes.languages |
[] |
Languages to track (empty = all) |
intentflow.experimental.nes.captureText |
true |
Capture actual completion text |
intentflow.experimental.nes.maxTypingIntervalMs |
200 |
Max ms between keystrokes for typing detection |
intentflow.experimental.nes.maxCharsForCompletion |
5000 |
Max chars to track as completion |
intentflow.experimental.nes.excludePatterns |
["**/node_modules/**", ...] |
File patterns to exclude |
Experimental: Agent Trace
| Setting |
Default |
Description |
intentflow.experimental.agentTrace.enabled |
false |
Enable Agent Trace v0.1.0 |
Experimental: Human Trace
| Setting |
Default |
Description |
intentflow.experimental.humanTrace.enabled |
false |
Enable Human Trace |
intentflow.experimental.humanTrace.gitHooks.enabled |
false |
Install git pre-commit hook |
intentflow.experimental.humanTrace.gitHooks.minHumanPercentage |
10 |
Min human % for passing status |
intentflow.experimental.humanTrace.gitHooks.criticalPaths |
[] |
Paths requiring human review |
How Agent Trace Works
Agent Trace records AI-generated code at edit-time by intercepting tool calls from AI assistants:
- Tool Call Extraction: Captures
createFile, replaceString, and multiReplaceString operations from Copilot sessions
- Line Range Inference: Converts string-based edits (oldString → newString) to line numbers by searching the file content
- Content Hashing: Generates MD5 hashes of code content to track modifications and code movement
- Consolidation: Merges edits into a workspace-level trace stored at
.intentflow/traces/workspace-trace.json
The trace follows the Agent Trace v0.1.0 specification with attribution ranges linking code to sessions.
How Human Trace Works
Human Trace is the complement of Agent Trace—it identifies code NOT written by AI:
- Agent Trace Subtraction: Any line NOT in Agent Trace is potentially human-authored
- Content Hash Verification: If a line exists in Agent Trace but the content_hash differs, it was modified by a human
- Git Blame Integration: Uses
git blame to identify contributors and timestamps for human code
- Coverage Calculation: Groups human-authored ranges by contributor for audit and compliance
The pre-commit hook displays human coverage statistics without blocking commits.
Privacy
IntentFlow is designed with privacy in mind:
- All data stays local by default
- Sensitive information is automatically redacted:
- Emails, API keys, tokens (AWS, Azure, Slack, Google, GitHub)
- Public IP addresses (private IPs preserved)
- User paths (Unix and Windows)
- Database connection strings
- SSH keys, credit cards, SSNs
- Custom redaction patterns can be added
- Individual sessions can be ignored
- Capture can be disabled globally
UI Components
IntentFlow adds an activity bar icon with two panels:
- Control Panel: Overview and quick actions for session management
- Rules Derivation: Interface for generating and managing coding rules
License
MIT