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

# Quickstart: First Analysis in 5 Minutes

> Go from installation to your first data insight in under 5 minutes

<Info>
  **Time commitment:** 5 minutes
  **Outcome:** Complete a real data analysis with SignalPilot's AI agent
</Info>

## Step 1: Install SignalPilot

**Prerequisites:** macOS, Linux, or Windows (WSL) • Internet connection

**Install SignalPilot:**

```bash theme={null}
uvx signalpilot
```

<Accordion title="Don't have uv?" icon="question">
  Install `uv` first (takes seconds):

  ```bash theme={null}
  curl -LsSf https://astral.sh/uv/install.sh | sh
  ```

  Then run SignalPilot:

  ```bash theme={null}
  uvx signalpilot
  ```

  *See [uv installation guide](https://docs.astral.sh/uv/getting-started/installation/) for other methods (Homebrew, Windows, etc.)*
</Accordion>

**What happens:**

```bash theme={null}
✓ Creating workspace at ~/SignalPilotHome
✓ Installing isolated Python 3.12 + Jupyter Lab + SignalPilot extension
✓ Installing data packages (pandas, numpy, matplotlib, plotly...)
⚡ Setup complete in ~2 minutes

→ Launching Jupyter Lab at http://localhost:8888
```

<Accordion title="Closed terminal or browser? Relaunch anytime" icon="rotate">
  **Option 1: Using uvx (recommended)**

  ```bash theme={null}
  uvx signalpilot home
  ```

  **Option 2: Manual activation**

  ```bash theme={null}
  cd ~/SignalPilotHome
  source .venv/bin/activate && jupyter lab
  ```
</Accordion>

<Accordion title="More installation options" icon="book">
  See the [Installation Guide](/docs/getting-started/installation) for:

  * Manual installation with pip, conda, or uv
  * Working in different modes (default, home, project)
  * Auto-update configuration
  * Troubleshooting
</Accordion>

## Step 2: Create Your First Notebook

<Steps>
  <Step title="Create a new notebook">
    Your browser opened Jupyter Lab at `http://localhost:8888`

    You'll see the **SignalPilot panel** in the left and right sidebar.

    Click **File → New → Notebook** and select **Python 3**

    Name it `revenue-analysis.ipynb`

    <Warning>
      Always use the **default Python 3 kernel**. SignalPilot uses this kernel and may not work with other kernels due to missing system variables.
    </Warning>
  </Step>

  <Step title="Load your data">
    **Option 1: Use local files (recommended)**

    Type `@` in the SignalPilot chat to mention any CSV, Excel, or data file:

    * Home workspace: `~/SignalPilotHome/data/`
    * Project folder: `./data/` in current working project directory

    <Tip>
      Use the **File Scanner** in the left sidebar to add more folders to index.
    </Tip>

    **Option 2: Generate sample data**

    If you don't have data files, create sample data in the first cell:

    ```python theme={null}
    import pandas as pd
    import numpy as np

    # Create sample revenue data
    dates = pd.date_range('2025-01-01', '2025-12-31', freq='D')
    revenue = pd.DataFrame({
        'date': dates,
        'revenue': np.random.randint(1000, 5000, len(dates)) +
                   (np.sin(np.arange(len(dates)) / 7) * 500).astype(int)
    })

    revenue.head()
    ```

    <Check>
      **Expected:** DataFrame loaded from file or displayed from generated data
    </Check>
  </Step>

  <Step title="Ask SignalPilot to analyze">
    Open the SignalPilot chat panel (left sidebar) and ask:

    ```
    Analyze this revenue data. Show me:
    1. Total revenue for the year
    2. Average daily revenue
    3. A time-series plot showing trends
    4. Identify any anomalies or patterns
    ```

    <Check>
      **Expected:** SignalPilot creates multiple cells with:

      * Aggregation queries
      * Visualization code
      * Statistical analysis
      * Interpretation of results
    </Check>
  </Step>

  <Step title="Iterate on the analysis">
    Ask a follow-up question:

    ```
    What's the week-over-week revenue growth rate? Show me a chart.
    ```

    <Check>
      **Expected:** SignalPilot adds new cells calculating WoW growth and visualizing it
    </Check>
  </Step>
</Steps>

## What You Just Learned

<AccordionGroup>
  <Accordion title="Context Awareness">
    SignalPilot automatically understood the `revenue` dataframe in your kernel and used it without you having to copy-paste or describe it.
  </Accordion>

  <Accordion title="Multi-Step Planning">
    The agent broke down your request into multiple steps: aggregation, visualization, and interpretation.
  </Accordion>

  <Accordion title="Iteration">
    You asked a follow-up question, and SignalPilot used context from the previous analysis to build on it.
  </Accordion>

  <Accordion title="Code Generation">
    SignalPilot wrote executable pandas and matplotlib code directly into notebook cells.
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Connect Real Data" icon="database" href="/docs/integrations/databases/postgresql">
    Connect to your data warehouse
  </Card>

  <Card title="Learn Key Concepts" icon="book" href="/docs/getting-started/key-concepts">
    Understand agents, modes, and context
  </Card>

  <Card title="User Funnel Analysis" icon="chart-line" href="/docs/guides/01-user-funnel-analysis">
    Analyze user drop-off with Amplitude and BigQuery
  </Card>

  <Card title="dbt Integration" icon="diagram-project" href="/docs/integrations/dbt-integration">
    Connect to your dbt project for lineage
  </Card>
</CardGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="SignalPilot doesn't see my dataframe">
    **Solution:** Ensure you've executed the cell that creates the dataframe. SignalPilot reads from the active kernel state.
  </Accordion>

  <Accordion title="Code isn't executing">
    **Solution:** Check that you're in **Agent Mode** (not Ask Mode). You can switch modes in the SignalPilot panel.
  </Accordion>

  <Accordion title="Chart not displaying">
    **Solution:** Ensure matplotlib is installed: `uv add matplotlib`
  </Accordion>
</AccordionGroup>
