Skip to main content

Tab Autocomplete

Context-aware code completion — SignalPilot’s Tab Autocomplete uses AI to suggest code based on your notebook context, not just syntax matching.
Unlike standard Jupyter autocomplete, SignalPilot’s AI autocomplete understands your variables, imported libraries, dataframe schemas, and coding patterns to generate smarter, multi-line suggestions.

How to Enable

1

Open SignalPilot Settings

Click the Settings icon in the SignalPilot sidebar (bottom right corner of the notebook interface).
SignalPilot settings panel
2

Enable Tab Autocomplete

Find the Tab Autocomplete section and toggle it on.
The setting is saved automatically.
3

Reload your notebook

Close and reopen your notebook for changes to take effect (or reload the browser page).
Keyboard shortcut: Cmd+R (Mac) or Ctrl+R (Windows/Linux)

How It Works

1

Focus on a code cell

Click inside any code cell to edit it.
2

Pause typing for ~1 second

After you stop typing, the AI analyzes your context:
  • Variables already defined in the kernel
  • Imported libraries and their usage patterns
  • Code from other cells
  • Common patterns for the current task
The AI needs a brief pause to generate suggestions. Keep typing if you don’t want autocomplete.
3

Review the suggestion

A grayed-out completion appears inline with your cursor:
Tab autocomplete in action
The suggestion might be:
  • A single line completing your current statement
  • Multiple lines for common patterns (e.g., for loops, try-except blocks)
  • Function calls with appropriate parameters
4

Accept or ignore

  • Accept: Press Tab to insert the suggestion
  • Accept partial: Press (right arrow) to accept word by word
  • Ignore: Keep typing or press Esc to dismiss
Accepted completions become part of your code immediately.

Example Completions

You type:
df.gro
AI suggests:
df.groupby('category').agg({'revenue': 'sum', 'quantity': 'mean'})
Why this is smart:
  • Knows df is a DataFrame (from kernel inspection)
  • Knows the column names (category, revenue, quantity)
  • Suggests appropriate aggregation functions
  • Uses common pandas patterns

Tab Autocomplete vs Standard Autocomplete

How it works:
  • Matches local names and imported modules
  • Simple syntax completion
  • No context awareness
  • Single-line suggestions only
Example:
df.gro  →  df.groupby
Limitations:
  • Doesn’t know column names
  • Doesn’t suggest parameters
  • Can’t generate multi-line patterns
  • No understanding of your data

When Tab Autocomplete Helps Most

Common scenarios:
  • Grouping and aggregation
  • Filtering with multiple conditions
  • Joining dataframes
  • Reshaping (pivot, melt, stack)
Example: Type df[ and get suggested filter based on your actual columns.
Common scenarios:
  • Try-except blocks
  • For loops over dataframes
  • Function definitions with common signatures
  • Import statements for standard libraries
Example: Type try: and get a complete try-except block template.
Common scenarios:
  • Matplotlib plot setup
  • Plotly figure configuration
  • Seaborn styling
  • Chart labeling and formatting
Example: Type plt.plot and get suggested plot with your dataframe columns.
Common scenarios:
  • SQL query building
  • API request construction
  • Configuration file parsing
  • Data export formats
Example: Type df.to_ and get suggestions for common export formats (CSV, Excel, Parquet) with appropriate parameters.

Configuration Options

Location: Settings panel → Tab Autocomplete toggleWhen to disable:
  • You find suggestions distracting
  • Working in a very slow environment
  • Prefer manual code writing for learning
Quick toggle: Settings are saved per-notebook (coming soon: global preference)

Tips for Better Completions

Good: monthly_revenue = ...Bad: df2 = ...The AI uses variable names as hints for suggestions. Descriptive names lead to better completions.
Good: One logical operation per cellBad: Mixing data loading, cleaning, and analysis in one cellCleaner cell structure helps the AI understand context and suggest relevant completions.
Good:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
Bad:
from pandas import *
import matplotlib.pyplot
Standard import conventions help the AI recognize patterns and suggest appropriate code.
If you want multi-line suggestions (like entire function bodies), pause for 1-2 seconds instead of continuing to type.The AI will generate more complete suggestions when given time.

Privacy and Performance

No. Autocomplete uses:
  • Local notebook context (cell code)
  • Variable names and types from kernel
  • Imported library information
Your actual data values are never sent to SignalPilot servers. The AI sees variable names and types, not the data itself.Example: The AI knows you have a dataframe called revenue_data with columns ['date', 'region', 'amount'], but it doesn’t see the actual revenue numbers.
Minimal impact. Autocomplete runs:
  • Asynchronously (doesn’t block typing)
  • Only after pauses (not while you’re actively typing)
  • With cached context (fast subsequent suggestions)
If you notice slowness:
  • Increase the pause delay in settings (coming soon)
  • Disable autocomplete temporarily
  • Check your internet connection (suggestions require API calls)
No. Tab autocomplete requires:
  • Active internet connection
  • SignalPilot API access
Fallback: Standard Jupyter autocomplete still works offline.

FAQ

Yes. Go back to Settings → Tab Autocomplete and toggle it off. Changes take effect immediately (no reload required for disabling).
Code cells: Yes, full supportMarkdown cells: No, autocomplete is code-specificRaw cells: NoFuture versions may support markdown completions for documentation.
The AI makes suggestions based on:
  • Available context
  • Common patterns
  • Statistical likelihood
If suggestions seem off:
  1. Check variable names: Are they descriptive?
  2. Run cells above: The AI needs executed cells for kernel context
  3. Be more specific: Type a bit more before pausing
  4. Use Inline Edit instead: For very specific changes, ⌘K / Ctrl K might be better
Yes! If you’re writing SQL in Python strings (e.g., for SQLAlchemy or database connections), the AI can suggest query completions based on:
  • Your database schema (if connected)
  • Common SQL patterns
  • Table and column names
Example:
query = "SELECT "
# AI suggests: "SELECT * FROM users WHERE created_at > '2024-01-01'"
Within a session: Yes, the AI adapts to patterns it sees in your current notebook.Across sessions: Not yet. Future versions will support:
  • Team-specific coding patterns
  • Personal style preferences
  • Common libraries and functions you use
Vote on this feature in our GitHub discussions.

Next Steps