OpenDataAnalysis banner
ifnodoraemon ifnodoraemon

OpenDataAnalysis

Data community

Description

📊 数据分析智能体 / Data analysis agent with Claude-Code-style interaction. 左侧 Agent 执行面板,右侧研报实时渲染 / Agent panel on the left, live report on the right. Go + Vue 3.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Open Data Analysis

[中文说明](README.zh-CN.md)

Interactive data analysis for tabular data. Users upload CSV/Excel files or import SQL source snapshots, then an agent inspects data, runs SQL/Python when needed, creates charts, and produces reports.

![Open Data Analysis UI](docs/images/screenshot.png)

Current Capabilities

  • Agent runtime with tool calling and self-directed planning, not a fixed DAG.
  • Auth, workspaces, sessions, runs, file ownership, and resumable reports.
  • CSV/Excel upload plus PostgreSQL/MySQL workspace sources imported as bounded snapshots.
  • Workspace semantic assets, general governance fact inspection, and audit events for critical data operations.
  • Go backend, Vue 3 frontend, SQLite metadata DB, and per-session SQLite analysis DBs in development mode.
  • Local object storage abstraction with explicit production guardrails for the S3-compatible migration.

Quick Start

Local development is standardized on Docker Compose.

cp server/.env.example server/.env
# Configure LLM_PROVIDER / LLM_API_KEY / LLM_MODEL / AUTH_SECRET and related settings.
docker compose up -d --build

Open `http://localhost`.

Common commands:

docker compose up -d --build --force-recreate
docker compose logs -f server
docker compose logs -f client
docker compose logs -f python-executor
docker compose down

Deployment Modes

The default Docker Compose setup is a development profile. It uses local SQLite metadata, local object storage, in-process run execution, session SQLite analysis scratch DBs, and executor-local Python artifacts.

Production must be configured explicitly with `DEPLOYMENT_MODE=production`. In that mode the server fails closed while any local or single-process backend is still selected:

  • METADATA_STORE=sqlite
  • STORAGE_PROVIDER=local
  • RUN_BACKEND=inprocess
  • ANALYSIS_STORE=session_sqlite
  • PYTHON_ARTIFACT_STORE=executor_local
  • wildcard or localhost CORS_ALLOWED_ORIGINS

The target MaaS contract is documente