This installer CLI is a bootstrap installer that sets up the SignalPilot-AI Jupyter extension in one command.
The CLI is NOT the product. It's a convenience installer. The SignalPilot Jupyter extension (agentic harness) is the actual product.
SignalPilot is a Jupyter-native AI agentic harness that investigates data by connecting to your organizational context:
Four core capabilities:
- ๐ Multi-Source Context โ Auto-connects to db warehouse, dbt lineage, query history, Slack threads, Jira tickets, and past investigations via MCP
- ๐ Long-Running Agent Loop โ Plans, executes, iterates until task complete with analyst-in-the-loop approval (not single-shot completions)
- ๐ง Multi-Session Memory โ Remembers past hypotheses, validated assumptions, known data quirks across investigations
- ๐ Skills & Rules โ Custom analysis patterns (skills) + team coding standards (rules) + business logic
Security: Zero data retention โข Read-only access โข Local-first execution โข SOC 2 in progress
Prerequisites: macOS, Linux, or Windows (WSL) โข Internet connection
Don't have uv? Install it first (takes 10 seconds):
curl -LsSf https://astral.sh/uv/install.sh | shInstall SignalPilot:
uvx signalpilotWhat happens:
- Creates
~/SignalPilotHomeworkspace with starter notebooks - Installs isolated Python 3.12 + Jupyter Lab + SignalPilot extension
- Installs data packages (pandas, numpy, matplotlib, seaborn, plotly)
- Optimizes Jupyter cache for fast startup
- Launches Jupyter Lab at
http://localhost:8888
Time: ~2 minutes
Why uv?
- 10-100x faster than pip/conda for package installation
- SignalPilot runs on it โ native integration with kernel
- Modern Python package management with better dependency resolution
uvx signalpilot versionShows the installed CLI version with the SignalPilot logo.
Once installed, start Jupyter Lab with:
uvx signalpilot labWhat this does:
- Opens Jupyter Lab in your current directory
- Uses home environment from
~/SignalPilotHome/.venv - SignalPilot extension pre-loaded
- Opens browser at
http://localhost:8888
.venv with jupyter is detected in your current directory, you'll see a red warning. Use --project flag to use it instead.
SignalPilot automatically checks for updates when you launch Jupyter Lab. When an update is available, you'll see a notification:
For minor updates:
โญโโโโโโโโโโโโโโโ ๐ฆ SignalPilot Update โโโโโโโโโโโโโโโโฎ
โ Update Available: 0.11.8 (installed: 0.11.7) โ
โ Run 'sp upgrade' to update โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
For major updates:
โญโโโโโโโโโโโโโโโ ๐ฆ SignalPilot Update โโโโโโโโโโโโโโโโฎ
โ Important Update: 0.12.0 (installed: 0.11.7) โ
โ This is a MAJOR update โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Upgrade now? [y/n] (n):
Upgrade both the CLI and library anytime:
uvx signalpilot upgradeUpgrade your project's local environment:
cd /path/to/project
uvx signalpilot upgrade --projectThe upgrade command is context-aware:
| Context | CLI Upgrade | Library Upgrade |
|---|---|---|
| uvx users | Clears uvx cache (no permanent install) | uv pip install --upgrade |
Tool users (uv tool install) |
uv tool install --force + clears cache |
uv pip install --upgrade |
Why? uvx users prefer ephemeral execution without permanent installations. The CLI detects this by checking if ~/.local/bin/signalpilot exists.
Cache invalidation: uvx --refresh is unreliable (known uv issue), so we use uv cache clean signalpilot which reliably clears the uvx cache. Next uvx signalpilot run fetches the fresh version.
Note: Update checks happen in the background and never slow down Jupyter startup. You can disable them in ~/SignalPilotHome/.signalpilot/config.toml if desired.
๐ Full upgrade guide: docs/UPGRADE-USER-GUIDE.md
Python Packages:
signalpilot-aiโ AI agent integration (the actual product)jupyterlabโ Modern Jupyter interfacepandas,numpyโ Data manipulationmatplotlib,seaborn,plotlyโ Visualizationpython-dotenv,tomliโ Configuration utilities
Directory Structure:
~/SignalPilotHome/
โโโ user-skills/ # Custom analysis patterns
โโโ user-rules/ # Team coding standards
โโโ team-workspace/ # Shared notebooks (git-tracked)
โโโ pyproject.toml # Python project config
โโโ start-here.ipynb # Quick start guide
โโโ .venv/ # Python environment
SignalPilot offers three ways to launch Jupyter Lab:
cd ~/projects/my-analysis
uvx signalpilot labWhat this does:
- Opens Jupyter Lab in your current directory
- Uses home environment from
~/SignalPilotHome/.venv - Perfect for quick exploration without setting up new environment
.venv with jupyter, you'll see a red warning prompting you to use --project flag.
cd ~/projects/custom-analytics
uvx signalpilot lab --projectWhat this does:
- Opens Jupyter Lab in your current directory
- Uses local
.venvin that directory (fails if missing) - Great for project-specific work with custom dependencies
Requirements:
- A
.venvmust exist in current directory - Must have
jupyterlabandsignalpilot-aiinstalled
Create project environment:
mkdir ~/projects/custom-analytics && cd ~/projects/custom-analytics
uv venv --seed --python 3.12
source .venv/bin/activate
uv pip install jupyterlab signalpilot-ai pandas numpy matplotlib plotly
uvx signalpilot lab --projectuvx signalpilot lab --home
# Or use the shortcut:
uvx signalpilot homeWhat this does:
- Opens Jupyter Lab in
~/SignalPilotHomedirectory - Uses home environment from
~/SignalPilotHome/.venv - Default workspace with all your skills, rules, and team notebooks
You can pass any Jupyter Lab flags after the command:
# Custom port
uvx signalpilot lab --port=8889
# Disable browser auto-open
uvx signalpilot lab --no-browser
# Combine with mode flags
uvx signalpilot lab --project --port=8889
uvx signalpilot home --no-browser
# Bind to all interfaces (remote access)
uvx signalpilot lab --ip=0.0.0.0 --port=9999All standard jupyter lab arguments work.
uvx signalpilotNo permanent installation needed. Perfect for most users. Always gets the latest version.
uv tool install signalpilot
sp initInstalls sp command globally. Use sp lab, sp home to launch later.
Note: Global installations don't auto-update. Reinstall periodically:
uv tool install --force signalpilotpip install signalpilot
sp initWorks but slower than uv (10-100x). May have dependency conflicts.
- Python 3.10 or higher
- uv package manager (recommended)
MIT License - See LICENSE file for details