---
title: Forking Messages and Conversations
description: A guide on how to use the "Fork Messages/Conversations" feature in our app to create new conversations from specific messages with desired behavior.
---

import Image from 'next/image'

# Forking Messages and Conversations

<Image
src="https://github.com/danny-avila/LibreChat/assets/32828263/5187e8e2-b1c1-4954-979c-9c3b8cfabe9e"
width={1024}
height={512}
/>

The "Fork Messages and Conversations" feature can be incredibly useful for various reasons:

1. **Focused discussions:** Sometimes, during a conversation with an AI, users may want to explore a specific subtopic or idea without losing the context of the main conversation. By forking a conversation from a specific message, users can create a separate discussion thread that focuses solely on that particular aspect while maintaining the original conversation intact.

2. **Branching scenarios:** In some cases, users may want to explore different paths or scenarios based on a specific message. The forking feature allows users to create multiple branches from a single point in the conversation, enabling them to investigate various outcomes or possibilities without affecting the main conversation flow.

3. **Preserving context:** When forking a conversation, users can choose to include visible messages, related branches, or all messages up to a specific point. This helps maintain the necessary context for the forked conversation, ensuring that the AI has sufficient information to provide relevant and accurate responses.

4. **Collaboration and sharing:** Users may want to share specific parts of a conversation with others without revealing the entire chat history. By forking a conversation from a specific message, users can create a standalone discussion that can be easily shared with colleagues or friends, allowing for collaboration or seeking input on a particular topic.

5. **Organizing thoughts:** In lengthy conversations with an AI, users may generate multiple ideas or topics that deserve further exploration. The forking feature allows users to organize their thoughts by creating separate conversation threads for each idea, making it easier to revisit and develop them independently.

6. **Experimenting with different approaches:** Users may want to test different approaches or prompts to see how the AI responds. By forking a conversation, users can experiment with various strategies without disrupting the main conversation, comparing the outcomes, and learning from the AI's responses.

Overall, that feature in Librechat empowers users to have more control over their conversations, explore ideas in depth, and maintain organized and focused discussions with the AI assistant.

## Forking Options

Use these settings to fork messages with the desired behavior.

Forking refers to creating a new conversation that starts/ends from specific messages in the current conversation, creating a copy according to the options selected.

The "target message" refers to either the message the popup was opened from, or, if you check "Start fork here", the latest message in the conversation.


### Visible messages only: 
This option forks only the visible messages; in other words, the direct path to the target message, without any branches.

<div style={{padding: "20px", display: "flex", justifyContent: "center", alignItems: "center", flexDirection: "column"}}>
  <div className="image-light-theme">
    <img src="https://github.com/danny-avila/LibreChat/assets/32828263/873bdba1-de1f-4b84-a996-b2dbfc866d55" alt="1-L" style={{borderRadius: "10px"}} />
  </div>

  <div className="image-dark-theme">
    <img src="https://github.com/danny-avila/LibreChat/assets/32828263/0ed6ea88-5840-4dda-8f8b-305a4c34a050" alt="1-D" style={{borderRadius: "10px"}} />
  </div>
</div>


### Include related branches:
This option forks the visible messages, along with related branches; in other words, the direct path to the target message, including branches along the path.

<div style={{padding: "20px", display: "flex", justifyContent: "center", alignItems: "center", flexDirection: "column"}}>
  <div className="image-light-theme">
    <img src="https://github.com/danny-avila/LibreChat/assets/32828263/e633f701-acf5-4878-bdd1-29abacb3e3e7" alt="2-L" style={{borderRadius: "10px"}} />
  </div>

  <div className="image-dark-theme">
    <img src="https://github.com/danny-avila/LibreChat/assets/32828263/0c297451-990b-4ab2-9ff2-bc3958ab7129" alt="2-D" style={{borderRadius: "10px"}} />
  </div>
</div>

### Include all to/from here (default):
This option forks all messages leading up to the target message, including its neighbors; in other words, all message branches, whether or not they are visible or along the same path, are included.

<div style={{padding: "20px", display: "flex", justifyContent: "center", alignItems: "center", flexDirection: "column"}}>
  <div className="image-light-theme">
    <img src="https://github.com/danny-avila/LibreChat/assets/32828263/d19b427b-e018-41e6-ab1a-6306a94be26b" alt="3-L" style={{borderRadius: "10px"}} />
  </div>

  <div className="image-dark-theme">
    <img src="https://github.com/danny-avila/LibreChat/assets/32828263/ae3e5086-7b8f-417f-8b6e-073776536a49" alt="3-D" style={{borderRadius: "10px"}} />
  </div>
</div>

## Additional Options

- **Start fork here:** If checked, forking will commence from this message to the latest message in the conversation, according to the behavior selected above.

<div style={{padding: "20px", display: "flex", justifyContent: "center", alignItems: "center", flexDirection: "column"}}>
  <div className="image-light-theme">
    <img src="https://github.com/danny-avila/LibreChat/assets/32828263/801e50e4-749a-42f3-83bd-a3fc06c6e189" alt="4-L" style={{borderRadius: "10px"}} />
  </div>

  <div className="image-dark-theme">
    <img src="https://github.com/danny-avila/LibreChat/assets/32828263/bb2f2e39-091e-4b5b-926d-bf36c7a65079" alt="4-D" style={{borderRadius: "10px"}} />
  </div>
</div>

- **Remember:** Check to remember the options you select for future usage, making it quicker to fork conversations as preferred.

<div style={{padding: "20px", display: "flex", justifyContent: "center", alignItems: "center", flexDirection: "column"}}>
  <div className="image-light-theme">
    <img src="https://github.com/danny-avila/LibreChat/assets/32828263/9a9f61db-c3ec-4139-8f3a-e25557d95066" alt="5-L" style={{borderRadius: "10px"}} />
  </div>

  <div className="image-dark-theme">
    <img src="https://github.com/danny-avila/LibreChat/assets/32828263/a567965f-881e-423b-9eec-e3004643a560" alt="5-D" style={{borderRadius: "10px"}} />
  </div>
</div>

- Alternatively you can control the default behavior in the settings menu:

<div style={{padding: "20px", display: "flex", justifyContent: "center", alignItems: "center", flexDirection: "column"}}>
  <div className="image-light-theme">
    <img src="https://github.com/danny-avila/LibreChat/assets/32828263/c85fabb7-7d92-4e63-9190-ac3f4470b505" alt="6-L" />
  </div>

  <div className="image-dark-theme">
    <img src="https://github.com/danny-avila/LibreChat/assets/32828263/2ba9dfc0-8b21-4297-bf67-9bf6b2ff0aa2" alt="6-D" />
  </div>
</div>