Skip to content

EEGLAB Tools

The EEGLAB assistant provides tools for documentation retrieval, knowledge search, code docstring search, and mailing list Frequently Asked Questions (FAQ) search.

Overview

Tool Type Description
retrieve_eeglab_docs Document retrieval Fetch EEGLAB tutorials and guides
search_eeglab_discussions Knowledge search Search GitHub issues and PRs
list_eeglab_recent Knowledge search List recent GitHub activity
search_eeglab_papers Knowledge search Search academic papers
search_eeglab_papers_live Knowledge search On-demand live literature search
search_eeglab_code_docs EEGLAB-specific Search MATLAB/Python function documentation
get_eeglab_full_docstring EEGLAB-specific Fetch a symbol's complete docstring
search_eeglab_faq EEGLAB-specific Search mailing list FAQ entries

Document Retrieval

retrieve_eeglab_docs

Fetches documentation from 25 configured EEGLAB sources, covering setup, data import, preprocessing, Independent Component Analysis (ICA), visualization, group analysis, scripting, and plugin integration.

Preloaded docs (embedded in system prompt):

  • EEGLAB quickstart (installation and basic functionality)
  • Dataset management

On-demand docs: setup (1 doc), data import (3 docs), preprocessing (4 docs), ICA and artifacts (4 docs), epoching, visualization (4 docs), group analysis (2 docs), scripting (2 docs), and integration (2 docs: BIDS, Lab Streaming Layer).

Knowledge Search Tools

These tools search the EEGLAB community's synced knowledge database.

search_eeglab_discussions

Search GitHub issues and PRs across EEGLAB repositories.

Parameters:

Parameter Type Default Description
query str required Search query
include_issues bool True Include issues in results
include_prs bool True Include pull requests
limit int 5 Maximum results

Tracked repositories:

  • sccn/eeglab
  • sccn/ICLabel
  • sccn/clean_rawdata
  • sccn/EEG-BIDS
  • sccn/labstreaminglayer
  • sccn/liblsl

list_eeglab_recent

List recent GitHub activity ordered by creation date.

Parameters:

Parameter Type Default Description
item_type str "all" Filter: "all", "issue", or "pr"
repo str \| None None Filter by repository (e.g., "sccn/eeglab")
status str \| None None Filter: "open" or "closed"
limit int 10 Maximum results

search_eeglab_papers

Search academic papers related to EEGLAB.

Parameters:

Parameter Type Default Description
query str required Search query
limit int 5 Maximum results

Tracked citation DOIs:

  • Delorme & Makeig (2004) - EEGLAB: an open source toolbox
  • Pion-Tonachini et al. (2019) - ICLabel: automated EEG IC classification
  • Bigdely-Shamlo et al. (2015) - PREP: standardized preprocessing

search_eeglab_papers_live

On-demand live search of the latest external literature about EEGLAB, newest first, via the web rather than the pre-synced local database. Slower than search_eeglab_papers (up to about 15 seconds), so the agent is instructed to try the local search first and to only call this tool after the user has explicitly confirmed they want a live search, or has explicitly asked to search the web or for the very latest papers.

Parameters:

Parameter Type Default Description
query str required Search query
limit int 5 Maximum results

EEGLAB-Specific Tools

search_eeglab_code_docs

Search function documentation from the EEGLAB codebase. This tool searches over MATLAB and Python docstrings extracted from EEGLAB and its plugins.

Parameters:

Parameter Type Default Description
query str required Function name or description (e.g., "pop_loadset", "ICA decomposition")
limit int 5 Maximum results
language str \| None None Filter by language: "matlab" or "python"

Indexed repositories:

Repository Branch Languages
sccn/eeglab develop MATLAB, Python
sccn/ICLabel master MATLAB
sccn/clean_rawdata master MATLAB

Example:

User: "How do I use pop_loadset?"
Agent: calls search_eeglab_code_docs(query="pop_loadset")
Response:
  Found 1 function(s):

  **1. pop_loadset (function) - functions/popfunc/pop_loadset.m**
  Language: matlab
  [View source](https://github.com/sccn/eeglab/blob/.../pop_loadset.m#L1)

  Load an EEGLAB dataset file...

Sync Required

Populate with osa sync docstrings --community eeglab.

get_eeglab_full_docstring

Fetch the complete stored docstring (up to about 10,000 characters) for one symbol. Use this as a follow-up to search_eeglab_code_docs when the returned snippet is truncated and the user is asking about specific outputs, parameters, or examples.

Parameters:

Parameter Type Default Description
symbol_name str required Exact symbol name (case-insensitive), e.g. "pop_loadset"

Returns up to 5 matches when the same symbol name appears in more than one tracked repository.

search_eeglab_faq

Search FAQ entries generated from the EEGLAB mailing list archive (since 2004). The FAQ database is created using a two-agent Large Language Model (LLM) pipeline that evaluates thread quality and summarizes high-quality discussions.

Parameters:

Parameter Type Default Description
query str required Search query (topic or question)
category str \| None None Filter by category (e.g., "troubleshooting", "how-to", "bug-report")
limit int 5 Maximum results

Returns: FAQ entries with:

  • Question and answer summary
  • Category classification
  • Quality score (0.0-1.0)
  • Tags
  • Link to original mailing list thread

Example:

User: "How do I remove artifacts from EEG data?"
Agent: calls search_eeglab_faq(query="artifact removal")
Response:
  Found 3 FAQ entries:

  **1. How do I remove artifacts from my EEG data?**
  Category: how-to | Quality: 0.9/1.0
  Tags: artifacts, preprocessing, ICA

  There are several approaches to artifact removal in EEGLAB...

  [View thread](https://sccn.ucsd.edu/pipermail/eeglablist/...)

Sync Required

Populate with osa sync mailman --community eeglab followed by osa sync faq --community eeglab.

FAQ Generation Pipeline

The FAQ entries are generated through a two-stage LLM pipeline:

  1. Evaluation agent - Scores each mailing list thread for quality using a fast, cost-efficient model. Threads must have at least 2 messages from 2 participants.
  2. Summary agent - Creates structured FAQ entries (question, answer, category, tags) from threads scoring above the quality threshold (default: 0.7).

This approach filters out low-quality threads early, keeping costs manageable even for archives spanning 20+ years.

Configuration is in the community's config.yaml under faq_generation. See Schema Reference for details.

Sync Configuration

The EEGLAB assistant's knowledge sync schedule:

sync:
  github:
    cron: "0 2 * * *"       # daily at 2am UTC
  papers:
    cron: "0 3 * * 0"       # weekly Sunday at 3am UTC
  docstrings:
    cron: "0 4 * * 1"       # weekly Monday at 4am UTC
  mailman:
    cron: "0 5 * * 1"       # weekly Monday at 5am UTC
  faq:
    cron: "0 6 1 * *"       # monthly 1st at 6am UTC

See Knowledge Sync for CLI commands and setup instructions.