Conversation Branching Overview
ZeroTwo uses a tree structure for conversations, allowing you to explore multiple paths from any point without losing previous work. This powerful feature enables experimentation, comparison, and iterative refinement.
Every time you edit a message or regenerate a response, you create a new branch. All branches are preserved, letting you explore different approaches and return to any point in the conversation.
Understanding Conversation Trees
Conversations aren’t linear - they’re branching trees of possibilities.
Tree Structure Visualization
Root
├─ User: "Create a sorting function"
│ ├─ AI: [Bubble sort implementation]
│ │ └─ User: "Make it faster"
│ │ └─ AI: [Optimized bubble sort]
│ │
│ └─ User (edited): "Create a sorting function with O(n log n)"
│ └─ AI: [Merge sort implementation]
│ ├─ User: "Add error handling"
│ │ └─ AI: [With error handling]
│ │
│ └─ User: "Show unit tests"
│ └─ AI: [With test examples]
Each path represents a different conversation direction. You can explore all paths and return to any branch point.
Creating Branches
There are several ways to create new conversation branches.
Edit Messages
Regenerate Responses
Continue from Earlier
Most common branching method :
Hover over a message
Move your cursor over any of your previous messages
Click Edit
Click the ✏️ Edit button that appears
Modify and save
Change the message and click Save & Regenerate
New branch created
A new branch forms from that point, preserving the original path
Original conversation remains accessible - you haven’t lost anything!
Create alternative AI responses :
Hover over AI response
Place cursor over any AI message
Click Regenerate
Click the 🔄 Regenerate button
New variation
AI generates an alternative response, creating a branch
Compare versions
Use arrows to switch between response variations
Generate 3-4 variations to see different approaches, then pick the best one.
Jump back and continue :
Click earlier message
Click on any message in the conversation history
Type new message
Add a new message from that point
Branch from there
Creates a new path from that earlier point
Original path preserved
The later messages still exist on the original branch
Useful for exploring “what if” scenarios without losing later work.
Navigating Branches
Move between different conversation paths efficiently.
Visual Branch Indicators
Branch markers you’ll see :
Branch Icon 🔀 appears next to messages with multiple branches
Active Path Highlight Current branch path is visually highlighted
Response Counter “Response 2 of 4” shows multiple response variations
Breadcrumb Trail Shows your path through the conversation tree
Navigation Methods
Arrow Navigation
Click to Switch
History Panel
Search Branches
Use arrows to switch responses :
◀️ Previous : View earlier response variation
▶️ Next : View next response variation
Counter : Shows “Response 2 of 3”
Keyboard shortcuts :
Alt/Opt + ← Previous variation
Alt/Opt + → Next variation
Click on branch points :
Click the 🔀 branch icon on any message
See all available branches from that point
Click the branch you want to explore
Context switches to that branch
Full conversation overview :
Open conversation history
Click 📋 History button in the chat header
View tree structure
See the full branching tree of your conversation
Click any node
Jump directly to any point in any branch
See statistics
View branch counts, message totals, timestamps
Find specific content across branches :
Click 🔍 Search in chat header
Enter search term
See results from all branches
Click result to jump to that branch
Great for finding that perfect solution you generated earlier.
Branch Management
Organize and clean up your conversation branches.
For each branch, you can see :
📊 Number of messages in branch
🕐 When branch was created
📝 Branch starting point (edited message or regeneration)
🎯 Current active branch indicator
Comparing Branches
Enable comparison mode
Click Compare Branches in the chat header menu
Select branches
Choose 2-3 branches to compare side by side
View differences
See responses highlighted with differences marked
Choose best approach
Evaluate which branch has the best solution for your needs
Comparison mode is perfect for evaluating different approaches to the same problem.
Pruning Branches
Keep your conversation organized by removing unsuccessful paths.
Deleting branches is permanent. Make sure you’ve extracted any useful information first.
To delete a branch :
Navigate to the branch you want to remove
Click the ⋮ More menu in chat header
Select Delete Branch
Confirm deletion
Delete branches that led nowhere or contained errors to keep your history clean.
Continue Conversations
Resume and extend conversations in powerful ways.
Continue from Any Point
You can continue the conversation from any message, creating a new direction:
Find starting point
Scroll to the message where you want to branch
Click or type
Click the message, then type a new message in the input
Send message
Your new message creates a branch from that point
Explore new direction
Continue with a different approach or question
Example use case :
You're 20 messages deep into optimizing an algorithm, but realize you
should have explored a completely different approach. Click on message 5
and start a new branch with the alternative approach.
Long Conversation Management
For complex, multi-session work:
Conversation Summaries
Export and Continue
Branch Checkpoints
Get context quickly :Ask AI to summarize the conversation so far: Summarize our conversation and the key decisions we've made
AI will review all branches and provide a comprehensive summary. Document your progress :
Export current branch as markdown
Review the full conversation
Continue in a new chat with summary
Reference exported conversation as needed
Mark important points :Star or bookmark important messages/branches:
⭐ Star critical solutions
📌 Pin reference points
🏷️ Tag branches with labels
Easily return to these checkpoints later.
Advanced Branching Techniques
Parallel Exploration
Explore multiple approaches simultaneously:
Create multiple branches
From one message, create 3-4 different branches exploring different approaches
Develop each independently
Take each branch several messages deep
Compare results
Use comparison mode to evaluate all approaches
Synthesize or choose
Either pick the best or ask AI to combine the best aspects
Example :
Starting point: "Design a caching system"
Branch 1: Redis-based approach
Branch 2: In-memory cache approach
Branch 3: CDN-based approach
Branch 4: Hybrid approach
Compare all four, then create a final branch synthesizing insights.
Iterative Refinement
Use branches for progressive improvement:
Root: "Create a user authentication system"
Branch A1: Basic email/password auth
└─ Branch A2: Add password validation
└─ Branch A3: Add rate limiting
└─ Branch A4: Add 2FA support
Branch B1 (from root): OAuth-based auth
└─ Branch B2: Add social login
└─ Branch B3: Add JWT tokens
Compare A4 and B3, then create final Branch C combining best aspects.
Hypothesis Testing
Test different assumptions with branches:
Technical approach testing
Test competing solutions :Start: “My API is slow”
Branch 1: “Let’s optimize database queries”
Branch 2: “Let’s add caching”
Branch 3: “Let’s use pagination”
Each branch explores that solution fully, then compare results.
Try different configurations :Start: “Design a recommendation algorithm”
Branch A: Using collaborative filtering
Branch B: Using content-based filtering
Branch C: Hybrid approach
Evaluate trade-offs in each branch.
Explore related topics :Start: “Explain React hooks”
Branch 1: Deep dive into useState
Branch 2: Deep dive into useEffect
Branch 3: Deep dive into useContext
Branch 4: Custom hooks tutorial
Each branch becomes a learning module.
Use Cases and Patterns
Debugging Complex Issues
Initial problem description
My React app crashes when clicking the submit button
Create diagnostic branches
Branch A: Investigate event handler
Branch B: Check state management
Branch C: Review component lifecycle
Follow promising leads
Branch B finds state issue - continue deep on that branch
Solve and document
Solution found in Branch B, message 8. Star it for reference.
Architecture Decision Making
Decision: Choose database for new project
Branch 1: PostgreSQL approach
- Pros/cons exploration
- Schema design
- Query patterns
- Scaling considerations
Branch 2: MongoDB approach
- Pros/cons exploration
- Document design
- Query patterns
- Scaling considerations
Branch 3: Hybrid approach
- PostgreSQL for structured data
- MongoDB for flexible data
- Integration patterns
Compare all three branches → Make informed decision
Learning and Exploration
Pattern : Progressive topic exploration
Topic: Machine Learning
Root: "Introduce me to machine learning"
Branch 1: Supervised Learning
├─ 1.1: Classification
│ ├─ 1.1.1: Decision Trees
│ └─ 1.1.2: Neural Networks
└─ 1.2: Regression
└─ 1.2.1: Linear Regression
Branch 2: Unsupervised Learning
├─ 2.1: Clustering
└─ 2.2: Dimensionality Reduction
Each branch becomes a learning path you can explore at your own pace.
Best Practices
Name your mental branches
Track what each branch explores :Keep a mental (or written) label for branches:
“Performance optimization path”
“Security-focused approach”
“Beginner-friendly version”
“Enterprise-scale solution”
This helps you remember what you were exploring in each branch.
Experiment freely :✅ Do :
Create branches to test ideas
Try unconventional approaches
Ask “what if” questions
Explore multiple solutions
❌ Don’t :
Worry about “wasting” messages
Fear creating too many branches
Hesitate to try something new
You can always delete unsuccessful branches later.
Use branches for versions
Iterate on solutions :Pattern: v1 (Basic): Working solution
v2 (Refined): With error handling
v3 (Production): With tests and documentation
v4 (Optimized): With performance improvements
Each version is a branch, easy to compare and reference.
Document important branches
Preserve key decisions :When you find a great solution:
Star the message
Add a note explaining why this approach won
Export the branch for documentation
Reference in future conversations
Copy the full branch into a new conversation titled “Final Solution - [Topic]”
Maintain clarity :Periodically:
Review all branches
Delete dead-end explorations
Keep only promising/reference branches
Export important solutions before deleting
This keeps your conversation manageable.
Keyboard Shortcuts
Speed up branch navigation:
Action Shortcut Description Previous variation Alt/Opt + ←View previous response version Next variation Alt/Opt + →View next response version Edit message E (hover)Edit message and create branch Regenerate R (hover)Generate new response variation History panel Cmd/Ctrl + HOpen conversation history tree Search branches Cmd/Ctrl + FSearch across all branches Star message S (hover)Star important messages
Enable keyboard shortcuts in Settings > General > Keyboard Shortcuts
Branch Examples
Example 1: Code Review Process
Start: [Upload code file] "Review this code"
Main branch: General review with suggestions
Branch A (from message 3): "Focus on security vulnerabilities"
└─ Detailed security analysis
└─ "Show how to fix the SQL injection risk"
└─ Fixed code with explanation
Branch B (from message 3): "Focus on performance optimization"
└─ Performance analysis
└─ "Show before/after benchmarks"
└─ Optimized code with metrics
Result: Two specialized reviews, choose or combine insights.
Example 2: Writing and Editing
Start: "Write a blog post about React hooks"
Branch 1: Technical deep-dive version
└─ For experienced developers
Branch 2: Beginner-friendly version
└─ For React newcomers
Branch 3: Tutorial format
└─ Step-by-step with code examples
Edit Branch 2 further:
└─ Branch 2.1: Add more examples
└─ Branch 2.2: Simplify explanations
└─ Branch 2.3: Add diagrams
Compare all, then choose Branch 2.2 as final.
Example 3: Problem Solving Journey
Problem: "E-commerce site is slow"
Branch A: Frontend investigation
├─ A1: Bundle size analysis
├─ A2: Render performance
└─ A3: Network requests
Branch B: Backend investigation
├─ B1: Database query optimization
├─ B2: API response times
└─ B3: Server resource usage
Branch C: Infrastructure investigation
├─ C1: CDN configuration
├─ C2: Caching strategy
└─ C3: Load balancing
Branch B1 finds the issue (N+1 queries). Continue from B1:
└─ B1.1: Implement eager loading
└─ B1.2: Add database indexes
└─ B1.3: Verify performance improvement
Troubleshooting
Lost in too many branches
If branch tree is overwhelming :
Open History panel to see full structure
Use search to find specific content
Delete unsuccessful branches
Star your current best solution
Consider starting a new chat with the best solution copied over
Limit yourself to 3-4 active branches at once for clarity.
Can't find a previous branch
Recovery methods :
Use Search (Cmd/Ctrl + F) to find content
Open History panel to view tree structure
Check Starred messages for important points
Use Export to search full conversation text
All branches are preserved unless explicitly deleted.
Branch navigation not working
Try these fixes :
Refresh the page
Clear browser cache
Check for browser console errors
Try keyboard shortcuts instead of clicking
Update to latest browser version
Accidentally deleted important branch
Unfortunately :Branch deletion is permanent and cannot be undone. Prevention :
Export important conversations regularly
Star critical messages before deleting
Use deletion carefully
Keep backups of important solutions
Next Steps
Master conversation branching to explore solutions fearlessly and find the perfect approach!