Spore is a lightweight web based platform for interacting with a verity of data sources ranging from DB/warehousing to local files. Query remote databases to filter, preprocess, sample data from SQL/NoSQL sources, materialize data to local files via DuckDB using batching to counter memory bottlenecks, analyze it instantly in a rich Python notebook—all while keeping your data strictly under your control and create interactive shareable reports at the end (including full support for local LLMs).
Spore is still under development and some extra helping would be appriciated, the platform is completely open-source and free of cost
The entry point — connect to a data source and start querying.
Preview, filter, and materialize remote query results into local files.
Analyze materialized data in a rich Python notebook with live Jupyter kernels.
Build and share interactive reports from your analysis.
- Seamless Data Materialization — Stream remote SQL queries directly into local files via DuckDB for memory-efficient Python analysis.
- Intelligent Notebook UI — Built-in Monaco Editor with auto-scaling, custom Spore syntax highlighting, and intelligent autocomplete.
- Rich Visual Execution — Real-time Jupyter kernels running securely in sandboxed Docker containers, communicating over WebSockets. Native MIME-type rendering for Plotly charts, Pandas DataFrames, JSON, and LaTeX.
- Multi-Database Support — PostgreSQL (fully wired); MySQL, BigQuery, Snowflake, and more in progress.
- Local & Cloud AI — Natural language generation via Ollama, LM Studio, plus OpenAI, Anthropic, and Gemini.
- Smart Metadata — Automatic schema inspection, keys, types, and sample stats for better LLM context.
- Session-Based Security — Encrypted credentials in Redis/KeyDB-backed sessions.
- Python 3.12
- Redis or KeyDB
- Docker (for sandboxed kernel execution)
No checkout required. Grab the run-only compose file and start the full stack
(app + Redis + a sandboxed Python kernel), then open http://localhost:5000.
Linux / macOS
curl -fsSL https://raw.githubusercontent.com/ansh2903/spore/main/docker/docker-compose.hub.yml -o docker-compose.yml
docker compose up -dWindows (PowerShell)
curl.exe -fsSL https://raw.githubusercontent.com/ansh2903/spore/main/docker/docker-compose.hub.yml -o docker-compose.yml
docker compose up -dOptional tweaks via a .env file next to the compose file:
# Pick the sandbox Python version (a matching spore-kernel tag must be published)
KERNEL_PYTHON_VERSION=3.12
# Point at your own LLM endpoints (host providers must listen on 0.0.0.0)
OLLAMA_BASE=http://host.docker.internal:11434
LMSTUDIO_BASE=http://host.docker.internal:1234
# Override the session encryption key (recommended for shared/production use)
ENCRYPTION_KEY=To update later: docker compose pull && docker compose up -d.
git clone https://github.com/ansh2903/spore.git
cd spore
# Set up virtual environment
python -m venv .venv
source .venv/bin/activate # Linux / macOS
# .venv\Scripts\activate # Windows (PowerShell)
# Install dependencies
pip install -e .
cp .env.example .env
# Edit .env: set ENCRYPTION_KEY (see docs/CONFIGURATION.md)
# Start KeyDB dependency
docker run -d --name keydb -p 6379:6379 eqalpha/keydb:latest
# Launch Spore
python -m spore._app