GitHub

Wiki

Welcome to the CellPilot Wiki. CellPilot is a no-code desktop application for single-cell, multiome, and spatial omics analysis. It is designed for biologists who want to load commercial platform outputs directly, run standard analysis workflows, and explore results through plots and natural language commands.

Overview

CellPilot supports scRNA-seq, scATAC-seq, scMultiome, Xenium, Visium HD, MERFISH, CosMx, multi-sample integration, WNN multiome integration, spatial region workflows, and Agent Mode.

Key Features

  • No-code analysis - Load standard output files or folders without writing scripts.
  • Single-cell workflows - Analyze scRNA-seq, scATAC-seq, and paired scMultiome datasets.
  • Spatial workflows - Analyze Xenium, Visium HD, MERFISH, and CosMx datasets.
  • Integration workflows - Integrate scRNA-seq, scATAC-seq, multiome, and spatial samples.
  • WNN multiome integration - Combine RNA PCA and ATAC LSI neighborhoods into one co-embedding.
  • Spatial region analysis - Select tissue regions, find markers, annotate regions, and compare selected areas.
  • Agent Mode - Use API-based LLMs to plan multi-step analysis, annotate clusters, and interpret spatial regions.
  • Local computation - Core analysis runs on your computer through WebAssembly and desktop workers.

System Requirements

macOS

  • macOS 10.15 (Catalina) or later
  • 4 GB RAM minimum (8 GB recommended)
  • 128 GB disk space

Windows

  • Windows 10 or later
  • 4 GB RAM minimum (8 GB recommended)
  • 128 GB disk space

Linux

  • Ubuntu 18.04 or equivalent
  • 4 GB RAM minimum (8 GB recommended)
  • 128 GB disk space

Supported Data

CellPilot accepts common commercial platform outputs directly:

  • scRNA-seq - 10x Genomics H5 files and MatrixMarket folders from Cell Ranger.
  • scATAC-seq - Cell Ranger ATAC output folders with peak matrix, fragments, and peak annotations.
  • scMultiome - Cell Ranger ARC output folders with paired RNA and ATAC data.
  • Xenium - Xenium output folders, spatial coordinates, cell-feature matrix, and optional histology image alignment.
  • Visium HD - Space Ranger output folders, segmented outputs, binned outputs, and histology image overlays.
  • MERFISH - Vizgen MERSCOPE-style cell-by-gene and cell metadata outputs.
  • CosMx - NanoString/Bruker CosMx expression matrix and metadata outputs.

Analysis Modes

  • Intent mode - Fast command routing for common analysis requests.
  • Local AI mode - Local model chat when a local model is configured.
  • Agent Mode - API-based multi-step agent planning using Gemini, ChatGPT, Claude, Groq, or OpenRouter.

MCP Integration

CellPilot ships an MCP (Model Context Protocol) server that connects it to external AI assistants. Once installed, the assistant can call CellPilot's analysis tools through natural language to load data, run workflows, and interpret results.

  • Supported assistants - Claude Desktop and Codex. The MCP connects to the installed desktop application, not the web version.
  • One-step install - Every build is a double-click install. No terminal commands and no config files to edit.
  • Claude Desktop - a .mcpb bundle you double-click to install. Requires the desktop app from claude.ai/download.
  • Codex - a .dmg installer that sets up the server for the Codex desktop/CLI tooling.
  • Availability - macOS (Apple Silicon and Intel), Windows, and Linux.

Downloads are on the Download page. For step-by-step setup, see the Connect via MCP tutorial. MCP complements Agent Mode: Agent Mode runs inside CellPilot with your own API key, while MCP lets an outside assistant call CellPilot's tools.

Architecture

CellPilot is built using modern web technologies:

  • Frontend: React.js with Deck.gl for visualization
  • Computation: WebAssembly (bakana/scran.js)
  • Desktop: Electron for cross-platform support
  • Workers: Background analysis workers keep large datasets responsive

Where to Start

Use the Tutorial page to open a workflow-specific guide. Each tutorial is organized around the output files CellPilot expects and example natural language commands you can try after loading the data.