Conversational Data Analyst
Upload a CSV or Excel file, ask questions in natural language, get back stats, charts, dashboards, and reports.


Features
- CSV and Excel file ingestion with type inference and cleaning
- Descriptive analytics: profiling, summary stats, groupby, crosstab, outlier detection
- Interactive Plotly charts (HTML/JSON) and static matplotlib/seaborn charts (PNG)
- Self-contained HTML dashboards and PDF reports
- Multi-user support with Supabase auth, per-user rate limiting, and dataset persistence
- Chat commands for quick file management (/upload, /datasets, /saved, /reload)
Architecture
Built on DeepAgent with a multi-agent orchestration pattern. An orchestrator agent coordinates two specialized subagents:
- Stats Researcher - Descriptive analytics. Profiling, summary stats, groupby, crosstab, outlier flags.
- Chart Maker - Visualization. Chooses between Plotly (interactive) or matplotlib/seaborn (static) based on the request.
12 custom tools registered on the harness - loaders, query runners, chart generators, dashboard builders. Each subagent gets access to the tools relevant to its role. The architecture is designed to scale - new subagents can be added without changing the orchestrator logic.
Backend
- LocalShellBackend - Sandboxed virtual filesystem for local/dev use.
- CompositeBackend - Routes between StateBackend (ephemeral runtime) and StoreBackend (persistent cross-session memory via LangGraph Store).
- PostgresStore (production, Supabase) or InMemoryStore (dev fallback) for long-term memory.
- Conversation checkpointing with LangGraph MemorySaver for mid-conversation resume.
- AGENTS.md memory paths for persistent subagent context.
Upcoming
- Data cleaning and preprocessing through conversation
- Time series forecasting and predictive analytics
- Data manipulation, transformation, and export
Stack
Chainlit, DeepAgent, LangGraph, Supabase, Plotly, Jinja2, Docker Compose.