{"slug": "show-hn-rednotebook-ai-open-source-ai-data-notebook-for-trino-12-sql-engines", "title": "Show HN: RedNotebook AI open-source AI data notebook for Trino, +12 SQL engines", "summary": "RedAnalytica has released RedNotebook AI, an open-source AI data notebook that integrates with Trino, DuckDB, and 11 other SQL engines to provide a unified workspace for querying, visualizing, and exploring data. The tool features a NotebookLM-style knowledge layer, AI suggestions from multiple providers, drag-and-drop file uploads, and one-click publishing of self-contained HTML snapshots. Designed as a local-first application with read-only defaults and privacy-safe AI context, RedNotebook AI aims to replace the need for multiple separate tools in modern data workflows.", "body_md": "**The open-source AI data notebook for Trino, DuckDB, and 11 more SQL engines.**\nBy [RedAnalytica](https://redanalytica.in).\n\nQuery, visualize, profile, and explore data with beautiful charts, AI suggestions, and a NotebookLM-style knowledge layer.\n\nModern data teams jump between five tools to answer one question. RedNotebook AI puts all of it in one notebook:\n\n**A real SQL workspace** with Monaco, AG Grid, drag-to-reorder cells, and keyboard shortcuts.**Premium charts** powered by Apache ECharts with brand-aware theming.**AI you can trust**, pluggable across OpenAI, Anthropic, Ollama, or a deterministic offline mock. Privacy-safe by default, schema-only context, PII masking, secrets stripped.**NotebookLM-style knowledge layer.** Pull SQL, schemas, results, and charts into a notebook of sources. Ask grounded questions with`[n]`\n\ncitation chips. Generate infographics and a Studio briefing (overview / FAQ / study guide / suggested next questions).**Drag-and-drop file uploads.** Drop a CSV, TSV, Parquet, or JSON file anywhere in the app — DuckDB attaches it instantly as a queryable table (`SELECT * FROM customers`\n\nJust Works).**One-click publish.** Mint a public, no-account-needed share link from any notebook. The published page is a self-contained HTML snapshot — your live data never leaves your machine.**Read-only by default.** A SQL guard backed by`sqlglot`\n\nblocks destructive statements unless you explicitly enable writes.**Local-first.** Runs on your laptop with no login. Flip a single env var (`AUTH_ENABLED=true`\n\n) to enable multi-user mode with local email+password, GitHub OAuth, API tokens, per-user namespacing, and admin invites.\n\n```\ndocker run -d --name rednotebook \\\n  -p 8000:8000 \\\n  -v rednotebook-data:/data \\\n  ghcr.io/sanniheruwala/rednotebook-ai:latest\n```\n\nThen open [http://localhost:8000](http://localhost:8000).\n\nOr with Compose:\n\n```\ncp .env.example .env  # edit as needed\ndocker compose up -d\npip install rednotebook-ai          # from PyPI (when a release is tagged)\nrednotebook run                      # starts the FastAPI server on :8000\n```\n\nThen in a second terminal:\n\n```\ncd frontend\nnpm install\nnpm run dev                          # starts the dev UI on :3000\ngit clone https://github.com/sanniheruwala/RedNotebookAI.git\ncd RedNotebookAI\npython -m venv .venv && source .venv/bin/activate\npip install -e \".[dev]\"\ncp .env.example .env\nrednotebook run\n\n# in another terminal\ncd frontend && npm install && npm run dev\n```\n\nRedNotebook AI is local-first. Today:\n\n| Tier | Supported? |\n|---|---|\n🟢 Your laptop (`localhost` ) |\n✅ Primary use case |\n🟢 Single team behind VPN / private network |\n✅ With the\n|\n\n**Public internet, multi-user SaaS**`slowapi`\n\n), and audit log have all landed. Full SaaS hardening (RBAC / SSO / sharing) is on the [Phase 4 roadmap](/sanniheruwala/RedNotebookAI/blob/main/docs/roadmap.md).See [ docs/deployment.md](/sanniheruwala/RedNotebookAI/blob/main/docs/deployment.md) for the full security model.\n\nIn the UI top bar, click **Configure connection**. **13 connectors ship in\nthe box** — no extra `pip install`\n\nstep, no driver setup, no ODBC dance.\n\n| Connector | What you'll need |\n|---|---|\n| DuckDB | Nothing. Pick in-memory or a `.duckdb` file path. |\n| Trino | Host, port, user, password, catalog, schema, TLS settings. |\n| PostgreSQL | Host, port, user, password, database. |\n| MySQL / MariaDB | Host, port, user, password, database. |\n| SQLite | Path to the `.db` / `.sqlite` file. |\n| MSSQL | Host, port, user, password, database. ODBC 18 driver is bundled. |\n| Snowflake | Account, warehouse, role, user, password, database. |\n| BigQuery | Project, dataset, service-account JSON path. |\n| Redshift | Host, port, user, password, database. |\n| Oracle | Host, port, user, password, database or `service_name` . |\n| ClickHouse | Host, port (8123 HTTP), user, password, database, `secure` flag. |\n| Databricks SQL | Host, `http_path` , access token, optional catalog. |\n\nSee [docs/connectors.md](/sanniheruwala/RedNotebookAI/blob/main/docs/connectors.md) for the full per-dialect field\nreference.\n\nThe default. Pick \"DuckDB (no server)\" in the dialog. Two modes:\n\n**In-memory**(`:memory:`\n\n) — ephemeral playground. Great for one-off SQL against local files:`SELECT * FROM read_csv_auto('orders.csv') WHERE …`\n\n**File**(`./local.duckdb`\n\n) — persistent. Use it like a single-user warehouse:`CREATE TABLE customers (…)`\n\n,`INSERT …`\n\n, etc.\n\nOptionally set a \"Working directory\" so relative file paths in `read_csv_auto`\n\n/ `read_parquet`\n\nresolve where you expect.\n\nFor team analytics on real data warehouses, fill in the UI dialog or set\ndefaults in `.env`\n\n:\n\n```\nTRINO_HOST=trino.example.com\nTRINO_PORT=443\nTRINO_SCHEME=https\nTRINO_USER=alice\nTRINO_PASSWORD=...\nTRINO_CATALOG=hive\nTRINO_SCHEMA=default\nTRINO_VERIFY_SSL=true\n```\n\nCustom HTTP headers, session properties, query timeouts, and result limits are all supported.\n\n| Provider | Setup |\n|---|---|\nMock (default) |\nOffline, deterministic. No setup. |\nOpenAI |\n`AI_PROVIDER=openai` , `OPENAI_API_KEY=sk-…` |\nAnthropic |\n`AI_PROVIDER=anthropic` , `ANTHROPIC_API_KEY=sk-ant-…` |\nOllama (local) |\n`AI_PROVIDER=ollama` , `OLLAMA_BASE_URL=http://localhost:11434` |\n\nPrivacy defaults:\n\n- Sample rows are\n**not** sent to AI unless`AI_ALLOW_SAMPLE_ROWS=true`\n\n. - PII columns are masked when samples are shared.\n- Secrets are stripped from SQL before any provider call.\n- Credentials are never forwarded to AI.\n\nSee [ docs/ai.md](/sanniheruwala/RedNotebookAI/blob/main/docs/ai.md) for details.\n\n```\nAUTH_ENABLED=true\nSECRET_KEY=$(openssl rand -hex 32)\nCOOKIE_SECURE=true              # set true when behind HTTPS\nALLOW_SELF_SIGNUP=false         # admin-invite only by default\n```\n\nThe first registration becomes the workspace admin. Subsequent users need an invite (`POST /api/auth/invite`\n\n). GitHub OAuth and API tokens (PAT-style) are supported out of the box. See [ docs/deployment.md](/sanniheruwala/RedNotebookAI/blob/main/docs/deployment.md).\n\n| Layer | Tech |\n|---|---|\n| Backend | Python 3.11+, FastAPI, Pydantic, Trino client, SQLAlchemy + bundled drivers (Postgres, MySQL, MSSQL/ODBC, Snowflake, BigQuery, Redshift, Oracle, ClickHouse, Databricks, ...), DuckDB, Pandas, ECharts/Plotly |\n| Frontend | Next.js 14, TypeScript, Tailwind, shadcn/ui, Monaco, AG Grid, ECharts, framer-motion, @dnd-kit |\n| State | TanStack Query (server) + Zustand (local) |\n| Auth | Local email+password (bcrypt) + JWT cookies, GitHub OAuth, API tokens |\n| AI | Provider-pluggable (mock, OpenAI, Anthropic, Ollama) |\n| Storage | Local JSON for notebooks/knowledge/users; optional Parquet result cache |\n\n```\nrednotebook/        Python backend (FastAPI + core libs)\n├── auth/           User store, JWT sessions, password hashing, OAuth, API tokens\n├── server/         FastAPI app + routers\n├── connectors/     Trino + DuckDB + 11 SQLAlchemy dialects + registry\n├── ai/             Provider abstraction (mock, openai, anthropic, ollama)\n├── notebook/       Notebook models, JSON storage, guard-aware runner\n├── knowledge/      NotebookLM-style internal knowledge layer\n├── visualization/  Recommender, chart spec, HTML infographic generator\n├── profiling/      Stats + PII detector\n├── security/       SQL guard, secret masking\n├── migrations/     One-shot data migrations\n└── cli/            Typer CLI\n\nfrontend/           Next.js + Tailwind + shadcn/ui\ndocs/               Architecture, AI, security, deployment, connectors, roadmap\ntests/              pytest test suite\n```\n\nFull [architecture write-up](/sanniheruwala/RedNotebookAI/blob/main/docs/architecture.md).\n\n[Architecture](/sanniheruwala/RedNotebookAI/blob/main/docs/architecture.md)[Deployment tiers](/sanniheruwala/RedNotebookAI/blob/main/docs/deployment.md)[Connectors](/sanniheruwala/RedNotebookAI/blob/main/docs/connectors.md)[AI providers and privacy](/sanniheruwala/RedNotebookAI/blob/main/docs/ai.md)[Security model](/sanniheruwala/RedNotebookAI/blob/main/docs/security.md)[Visualization](/sanniheruwala/RedNotebookAI/blob/main/docs/visualization.md)[Knowledge layer + NotebookLM integration](/sanniheruwala/RedNotebookAI/blob/main/docs/notebooklm_integration.md)[Roadmap](/sanniheruwala/RedNotebookAI/blob/main/docs/roadmap.md)[Contributing](/sanniheruwala/RedNotebookAI/blob/main/docs/contributing.md)\n\n```\n# Backend\npytest                              # 56+ tests\nruff check .\n\n# Frontend\ncd frontend\nnpm run typecheck\nnpm run lint\nnpm run build\n```\n\nContinuous integration runs the full suite on every push and PR. See [ .github/workflows](/sanniheruwala/RedNotebookAI/blob/main/.github/workflows).\n\nWe follow the standard open-source flow. The short version:\n\n**Open an issue first.** Use the[bug report](https://github.com/sanniheruwala/RedNotebookAI/issues/new?template=bug_report.yml)or[feature request](https://github.com/sanniheruwala/RedNotebookAI/issues/new?template=feature_request.yml)templates. Drive-by PRs with no linked issue may be closed without review.**Fork, branch, write, run the checks locally**(`pytest`\n\n,`ruff check .`\n\n,`npm run lint && npm run typecheck && npm run build`\n\n).**Open a PR** referencing the issue (`Closes #123`\n\n).**A maintainer reviews and approves before merge.**`main`\n\nis a protected branch — direct pushes are blocked, every change needs ✅ green CI**and**✅ approval from a[CODEOWNER](/sanniheruwala/RedNotebookAI/blob/main/.github/CODEOWNERS). No exceptions, even for admins.\n\nSee [ docs/contributing.md](/sanniheruwala/RedNotebookAI/blob/main/docs/contributing.md) for the full flow,\nbranch-naming conventions, what we say \"no\" to, and the maintainer\nrights. For security vulnerabilities, use\n\n[private disclosure](/sanniheruwala/RedNotebookAI/blob/main/SECURITY.md), never a public issue.\n\nApache-2.0. See [LICENSE](/sanniheruwala/RedNotebookAI/blob/main/LICENSE).\n\nBuilt with care by", "url": "https://wpnews.pro/news/show-hn-rednotebook-ai-open-source-ai-data-notebook-for-trino-12-sql-engines", "canonical_source": "https://github.com/sanniheruwala/RedNotebookAI/blob/main/README.md", "published_at": "2026-06-12 13:34:14+00:00", "updated_at": "2026-06-12 13:50:21.449146+00:00", "lang": "en", "topics": ["ai-tools", "ai-products", "ai-startups", "ai-infrastructure", "large-language-models"], "entities": ["RedNotebook AI", "RedAnalytica", "Trino", "DuckDB", "Monaco", "AG Grid", "Apache ECharts", "OpenAI"], "alternates": {"html": "https://wpnews.pro/news/show-hn-rednotebook-ai-open-source-ai-data-notebook-for-trino-12-sql-engines", "markdown": "https://wpnews.pro/news/show-hn-rednotebook-ai-open-source-ai-data-notebook-for-trino-12-sql-engines.md", "text": "https://wpnews.pro/news/show-hn-rednotebook-ai-open-source-ai-data-notebook-for-trino-12-sql-engines.txt", "jsonld": "https://wpnews.pro/news/show-hn-rednotebook-ai-open-source-ai-data-notebook-for-trino-12-sql-engines.jsonld"}}