# Live Experiments

{% hint style="danger" %}
Labs experiments are provided as-is, without any guarantee of stability. We recommend avoiding them for critical or deadline-sensitive projects.
{% endhint %}

These experiments are not final features and may change or be removed. See our [Labs documentation page](/accounts-and-security/overleaf-labs.md) for more information.

{% hint style="warning" %}
The following documentation may not reflect the experiment in its current form. We try to keep it as up to date as possible but some features change fast!
{% endhint %}

<details>

<summary><strong>Editor tabs</strong></summary>

Editor tabs help you move between the files in your project without losing your place.

When you open a file in the editor, Overleaf shows it as a tab at the top of the source editor. Tabs make it easier to switch between `.tex`, bibliography, image, and other project files while you work.

## Open a file in a tab

To open a file, select it from the file tree.

The file opens in the editor and appears as a tab. You can then select other tabs to switch between files.

## Preview tabs

When you open a file, it may open it in a **preview tab**.

A preview tab is useful when you are quickly previewing files and do not want to fill the editor with lots of open tabs.

Preview tabs behave differently from regular tabs:

* they are intended for quick file previewing
* they can be replaced when you open another file temporarily
* they only become regular tabs when you start working in that file

### Turn a preview tab into a regular tab

A preview tab becomes a regular tab when you interact with the document, or when you double click the tab in the tab list.

For example, it becomes a regular tab when you:

* begin working in the file
* interact with the document after opening it

Once it becomes a regular tab, it stays open like any other tab until you close it.

## Reorder tabs

You can drag and drop tabs to change their order.

This can be useful if you want to keep related files, such as your main `.tex` file and bibliography, next to each other.

## Close tabs

To close a tab, select the close button on the tab.

You can also close a tab by clicking it with the middle mouse button.

If you are reviewing several files, preview tabs can help reduce clutter because they do not all remain open as permanent tabs.

</details>

<details>

<summary><strong>BibTeX visual editor</strong></summary>

The BibTeX visual editor is an in-editor panel that lets you view, create, edit, and delete bibliography (.bib) file entries without needing to write raw BibTeX code.

## Managing your entry list

The entry list shows all your parsed BibTeX entries in a simple table. You can sort the list by key, type, author, title, or year to find exactly what you're looking for.

### Adding and editing entries

To add a new reference, just click the Add entry button. If you want to change an existing one, click on its row to open the entry form. This form includes all the standard BibTeX fields you might need.

### Importing references

You can easily bring in new data by clicking the Import button. You can either paste raw BibTeX text or upload a file, and we'll merge those entries into your current project.

### Deleting entries

If you need to tidy up your file, you can delete multiple entries at once using the checkboxes:

* **Select individual entries**: Use the checkbox next to any row.
* **Select everything on a page**: Click the checkbox in the header. If you've only selected a few items, clicking this will select the rest of the page for you.

When you've selected your entries, a Delete button will appear in the toolbar. Click it to remove all selected entires.

{% hint style="success" %}
Your selections stay active even when you navigate to a different page.
{% endhint %}

## Permissions

Your ability to edit depends on your project permissions. If you have Owner or Collaborator (with edit access) status, you can add, change, or delete entries. Read-only users can see the list but won't be able to make changes.

</details>

<details>

<summary><strong>Rolling TeX Live releases (advanced)</strong></summary>

This experimental version is primarily for testing changes to TeX Live, packages, and previewing new accessibility features before they’re compiled into our annual TeX Live release.

Note that these images change month to month and are untested by our team. Important projects should continue to be built on our yearly release to avoid issues that may occur when the monthly build changes.

{% hint style="info" %}
Once you have joined, you will need to [select a the rolling TeX Live version](/getting-started/recompiling-your-project/selecting-a-tex-live-version-and-latex-compiler.md).
{% endhint %}

Find out more on our [TeX Live documentation page](/troubleshooting-and-support/tex-live.md).

</details>

<details>

<summary><strong>Python Script Runner</strong></summary>

The Python Script Runner lets you write and run Python scripts directly in your Overleaf project. Any files your script generates—figures, CSVs, or other outputs—are saved to the file tree and are available to use in your LaTeX document.

## Activate the Python Script Runner

To use the Python Script Runner, open any `.py` file from your project's file tree. The editor switches to Python mode and a **Run** button appears.

If your project doesn't have a `.py` file yet, create one using the **New file** button in the file tree.

## Write and run a script

1. Open a `.py` file from the file tree.
2. Write your Python code in the editor.
3. Select **Run** to execute the script.

To stop a script while it's running, select **Stop**.

## Understand the output panel

When you run a script, the output panel opens below the editor. It shows:

* **Standard output:** text printed by your script, such as the result of `print()` statements
* **Errors:** if your script fails, the output panel shows what went wrong. There are two types:
  * **Environment errors:** for example, a package that isn't available in the runner. Check the list of [supported packages](https://pyodide.org/en/stable/usage/packages-in-pyodide.html) before importing.
  * **Code errors:** syntax mistakes or runtime errors in your script, such as a `NameError` or `TypeError`

## Use files from the file tree as inputs

Your script can read files already in your project—for example, a `.csv` you've uploaded:

```python
import csv

with open("data.csv") as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)
```

## Save output files to the file tree

Any files your script writes are saved to the project file tree automatically. For example, a figure saved with `plt.savefig("output.png")` will appear in the file tree and can be included in your LaTeX document using `\includegraphics{output.png}`.

## Supported packages and Python version

The Python Script Runner uses [Pyodide](https://pyodide.org/en/stable/usage/packages-in-pyodide.html) 0.29.3, which runs Python 3.13.2. A full list of supported packages is available on the [Pyodide packages page](https://pyodide.org/en/stable/usage/packages-in-pyodide.html).

## Known limitations

* Scripts run in your browser using your local system resources. Large or computationally expensive scripts may be slow or cause the tab to become unresponsive.
* Only packages available in Pyodide are supported. Packages that require native code or are not in the Pyodide distribution cannot be installed.

## Give feedback

The Python Script Runner is an early experiment and your feedback helps shape where it goes. Share what's working, what isn't, and what you'd like to see using our [feedback survey](https://forms.gle/RSQTZWfFd5AvzZX4A).

If you think the experiment has caused data loss or a serious issue, please also [contact Support](https://www.overleaf.com/contact) directly.

## Leave the experiment

You can leave this experiment at any time from the [Labs page](https://www.overleaf.com/labs/participate). Your projects and settings will not be affected.

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.overleaf.com/accounts-and-security/overleaf-labs/live-experiments.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
