Skip to content

Tutorial: Installation

In this tutorial you'll install Panel Live Server so that the pls command is available in your terminal. By the end, pls --version will print the installed version.

What You'll Need

  • Python 3.12 or later
  • A package manager: pixi, uv, or pip (built into Python)

Install Panel Live Server

Initialize a project:

pixi init
pixi add python

Install:

pixi add --pypi "panel-live-server[pydata]"

Install the browser the screenshot tool needs:

pixi run pls install-browser

Find the pls path:

macOS / Linux:

pixi run which pls
# typically: /path/to/project/.pixi/envs/default/bin/pls

Windows:

pixi run where.exe pls
# typically: .pixi\envs\default\Library\bin\pls.exe

Install:

uv tool install "panel-live-server[pydata]"

Install the browser the screenshot tool needs:

pls install-browser

Find the pls path:

macOS / Linux:

which pls
# typically: /home/<user>/.local/bin/pls

Windows:

where.exe pls
# typically: %USERPROFILE%\.local\bin\pls.exe

Create and activate a virtual environment.

macOS / Linux:

python -m venv venv
source venv/bin/activate

Windows (PowerShell):

python -m venv venv
venv\Scripts\Activate.ps1

Windows (Command Prompt):

python -m venv venv
venv\Scripts\activate.bat

Install:

pip install "panel-live-server[pydata]"

Install the browser the screenshot tool needs:

pls install-browser

Find the pls path:

macOS / Linux:

which pls
# typically: /path/to/venv/bin/pls

Windows:

where.exe pls
# typically: .\venv\Scripts\pls.exe

The core install ships the HoloViz visualization stack — hvplot, holoviews, panel, and bokeh. The [pydata] extra adds the wider PyData ecosystem on top:

matplotlib · plotly · seaborn · altair · polars · duckdb · datashader · geoviews · plotnine · pyarrow · scikit-learn · and more

Only need the core server?

Install without extras if you only want to serve your own code and manage packages yourself:

pixi add --pypi panel-live-server
uv tool install panel-live-server
pip install panel-live-server


Verify the installation

pls --version

You should see the installed version printed. If the command is not found, ensure your uv tools directory is on your PATH, run uv tool update-shell and restart your terminal.


Connect to your MCP client

Add to .vscode/mcp.json (create if it doesn't exist):

{
  "servers": {
    "panel-live-server": {
      "type": "stdio",
      "command": "/path/to/pls",
      "args": ["mcp"]
    }
  }
}

Use your absolute path

Replace "command": "/path/to/pls" with the path printed by which pls above, e.g. "command": "/home/user/.local/bin/pls"

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "panel-live-server": {
      "command": "/path/to/pls",
      "args": ["mcp"]
    }
  }
}

Use your absolute path

Replace "command": "/path/to/pls" with the path printed by which pls above, e.g. "command": "/home/user/.local/bin/pls"

Open Cursor Settings → MCP and verify the green dot. Use Agent mode in chat.

Edit the config file for your OS:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "panel-live-server": {
      "command": "/path/to/pls",
      "args": ["mcp"]
    }
  }
}

Use your absolute path

Replace "command": "/path/to/pls" with the path printed by which pls above, e.g. "command": "/home/user/.local/bin/pls"

Restart Claude Desktop.

Enable the connector in Cowork

To use the show tool from Cowork, open Customize → Connectors → panel-live-server and set its permission to Always Allow (runs without prompting) or Needs approval (asks before each call). If the connector is left disabled, the tool won't be available in Cowork.

claude mcp add panel-live-server -- /path/to/pls mcp

Use your absolute path

Replace /path/to/pls with the path printed by which pls above, e.g. claude mcp add panel-live-server -- /home/user/.local/bin/pls mcp

claude.ai requires HTTP transport and a public URL. You can use any tunneling service (ngrok, Cloudflare, localhost.run, etc.); this example uses Cloudflare.

Terminal 1: start the MCP server:

/path/to/pls mcp --transport http --port 8001

Use your absolute path

Replace /path/to/pls with the path printed by which pls above, e.g. /home/user/.local/bin/pls mcp --transport http --port 8001

Terminal 2: tunnel for the MCP server:

cloudflared tunnel --url http://localhost:8001

Terminal 3: tunnel for the Panel server:

cloudflared tunnel --url http://localhost:5077

Stop Terminal 1, then set the Panel tunnel URL.

macOS / Linux:

export PANEL_LIVE_SERVER_EXTERNAL_URL=<url-from-terminal-3>

Windows (PowerShell):

$env:PANEL_LIVE_SERVER_EXTERNAL_URL="<url-from-terminal-3>"

And restart:

/path/to/pls mcp --transport http --port 8001

Then go to claude.ai → Settings → Connectors → Add custom connector and enter <url-from-terminal-2>/mcp as the URL.

Once connected, ask your AI: "Show me a scatter plot of this data using the show tool."


Without an AI assistant: use the REST API or the browser UI directly.

import requests

r = requests.post(
    "http://localhost:5077/api/snippet",
    json={
        "code": "import panel as pn\npn.widgets.IntSlider(name='x', start=0, end=100)",
        "name": "Slider",
        "method": "inline",
    }
)
print(r.json()["url"])  # http://localhost:5077/view?id=...
/path/to/pls serve
# Open http://localhost:5077/add in your browser

Add packages to the server environment

Panel Live Server executes your Python snippets using the packages installed in the environment you installed it into. It inherits that environment rather than defining its own, so you are free to add or upgrade anything you need there. To add a package:

pixi add --pypi my-package

For example, to add prophet:

pixi add --pypi prophet

Upgrading

To upgrade to the latest version:

pixi upgrade panel-live-server

uv tool install --with my-package "panel-live-server[pydata]"

You can chain multiple --with flags:

uv tool install --with prophet --with xgboost "panel-live-server[pydata]"

Upgrading

To upgrade to the latest version:

uv tool upgrade panel-live-server

Activate the environment you installed pls into, then install as usual:

pip install my-package

For example, to add prophet:

pip install prophet

Upgrading

To upgrade to the latest version:

pip install --upgrade panel-live-server

Activate the environment you installed pls into, then install as usual:

conda activate my-env
conda install my-package

For example, to add prophet:

conda activate my-env
conda install prophet

Upgrading

To upgrade to the latest version:

conda update panel-live-server

No server restart is needed, the package is available immediately the next time the server starts.


What You've Learned

  • Install Panel Live Server as a uv tool with the [pydata] extras
  • Verify the installation with pls --version
  • Add extra packages to the server environment with --with

Next Steps