> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qbraid.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Notebooks

Jupyter Notebooks (`.ipynb` files) are a community standard for communicating and performing interactive computing. They are documents that combine live runnable code with narrative text (Markdown), equations (LaTeX), images, interactive visualizations and other rich output.

qBraid Lab provides an interface to create and interact with Jupyter Notebooks, and includes a number of additional key features and integrations to enhance the quantum developer's experience.

## Create notebook

Create a notebook by clicking the `+` button in the file browser and then selecting a kernel in the new Launcher tab. In the Launcher tab, under **Notebooks**, clicking on an ipykernel associated with an activated environment will automatically launch a Jupyter notebook (`.ipynb` file) using that kernel.

<Info>
  The notebook document format used in qBraid Lab is the same as in the classic
  Jupyter Notebook. For more on how to use Jupyter Notebooks, see [Jupyter
  Notebooks](https://jupyter-notebook.readthedocs.io/en/stable/) and [Jupyter
  Lab:
  Notebooks](https://jupyterlab.readthedocs.io/en/stable/user/notebook.html).
</Info>

## Switch notebook kernel

In the upper-right of any open notebook, you can see which kernel is in use. Clicking on the name of the current kernel, will open the kernel selector, and allow you switch to any other active kernel.

<div style={{ display: "flex", justifyContent: "center", alignItems: "center" }}>
  <img src="https://storage.googleapis.com/qbraid-static-assets/qbraid-docs/lab/kernel-change.gif" alt="kernel" width="150%" />
</div>

## Pip (magic) commands

From inside a notebook, you must run all pip commands using the “magic” `%` operator.
For example, to install a new package from within a notebook cell, use:

```python theme={null}
[ ] %pip install <my-package>
```

<Warning>
  WARNING: **Do not** use the `!` operator for pip install commands within
  Jupyter notebooks on qBraid. Doing so will install packages at the
  system-level, where they will *not* be discoverable by your current notebook
  environment/kernel.
</Warning>

After installing any new packages directly from a notebook, you *must* restart the kernel to see the changes take effect.
