Skip to main content

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.
Most common branching method:
1

Hover over a message

Move your cursor over any of your previous messages
2

Click Edit

Click the ✏️ Edit button that appears
3

Modify and save

Change the message and click Save & Regenerate
4

New branch created

A new branch forms from that point, preserving the original path
Original conversation remains accessible - you haven’t lost anything!
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
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

Branch Management

Organize and clean up your conversation branches.

Viewing Branch Information

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

1

Enable comparison mode

Click Compare Branches in the chat header menu
2

Select branches

Choose 2-3 branches to compare side by side
3

View differences

See responses highlighted with differences marked
4

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:
  1. Navigate to the branch you want to remove
  2. Click the ⋮ More menu in chat header
  3. Select Delete Branch
  4. 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:
1

Find starting point

Scroll to the message where you want to branch
2

Click or type

Click the message, then type a new message in the input
3

Send message

Your new message creates a branch from that point
4

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:
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.

Advanced Branching Techniques

Parallel Exploration

Explore multiple approaches simultaneously:
1

Create multiple branches

From one message, create 3-4 different branches exploring different approaches
2

Develop each independently

Take each branch several messages deep
3

Compare results

Use comparison mode to evaluate all approaches
4

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:
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

1

Initial problem description

My React app crashes when clicking the submit button
2

Create diagnostic branches

  • Branch A: Investigate event handler
  • Branch B: Check state management
  • Branch C: Review component lifecycle
3

Follow promising leads

Branch B finds state issue - continue deep on that branch
4

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

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.
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.
Preserve key decisions:When you find a great solution:
  1. Star the message
  2. Add a note explaining why this approach won
  3. Export the branch for documentation
  4. 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:
ActionShortcutDescription
Previous variationAlt/Opt + ←View previous response version
Next variationAlt/Opt + →View next response version
Edit messageE (hover)Edit message and create branch
RegenerateR (hover)Generate new response variation
History panelCmd/Ctrl + HOpen conversation history tree
Search branchesCmd/Ctrl + FSearch across all branches
Star messageS (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

If branch tree is overwhelming:
  1. Open History panel to see full structure
  2. Use search to find specific content
  3. Delete unsuccessful branches
  4. Star your current best solution
  5. Consider starting a new chat with the best solution copied over
Limit yourself to 3-4 active branches at once for clarity.
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.
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
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!