{"id":48647280,"url":"https://github.com/docglow/docglow","last_synced_at":"2026-04-19T23:11:42.687Z","repository":{"id":342918316,"uuid":"1175614836","full_name":"docglow/docglow","owner":"docglow","description":"Modern documentation site generator for dbt Core — lineage explorer, health scoring, full-text search. Live demo: https://demo.docglow.com","archived":false,"fork":false,"pushed_at":"2026-04-15T05:19:50.000Z","size":14092,"stargazers_count":56,"open_issues_count":7,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-15T07:11:08.242Z","etag":null,"topics":["analytics-engineering","data-catalog","data-engineering","dbt","dbt-core","documentation","lineage"],"latest_commit_sha":null,"homepage":"https://docglow.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/docglow.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-08T00:03:04.000Z","updated_at":"2026-04-15T05:14:13.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/docglow/docglow","commit_stats":null,"previous_names":["docglow/docglow"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/docglow/docglow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docglow%2Fdocglow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docglow%2Fdocglow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docglow%2Fdocglow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docglow%2Fdocglow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/docglow","download_url":"https://codeload.github.com/docglow/docglow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docglow%2Fdocglow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32025834,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analytics-engineering","data-catalog","data-engineering","dbt","dbt-core","documentation","lineage"],"created_at":"2026-04-10T06:02:20.315Z","updated_at":"2026-04-19T23:11:42.678Z","avatar_url":"https://github.com/docglow.png","language":"Python","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/docglow/docglow/main/.github/assets/docglow-logo.png\" alt=\"Docglow\" width=\"160\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003edocglow\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  Next-generation documentation site generator for \u003ca href=\"https://github.com/dbt-labs/dbt-core\"\u003edbt™ Core\u003c/a\u003e projects.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://demo.docglow.com\"\u003eLive Demo\u003c/a\u003e · \u003ca href=\"https://docs.docglow.com\"\u003eDocs\u003c/a\u003e · \u003ca href=\"https://docglow.com\"\u003eWebsite\u003c/a\u003e · \u003ca href=\"https://pypi.org/project/docglow/\"\u003ePyPI\u003c/a\u003e · \u003ca href=\"CHANGELOG.md\"\u003eChangelog\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://pypi.org/project/docglow/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/docglow\" alt=\"PyPI version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/docglow/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/dm/docglow\" alt=\"PyPI downloads\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/docglow/docglow\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/docglow/docglow?style=social\" alt=\"GitHub stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/docglow/docglow/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/docglow/docglow/ci.yml?label=CI\" alt=\"CI status\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/docglow/docglow/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/pypi/l/docglow\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## Why Docglow?\n\nThousands of teams use dbt Core without access to dbt Cloud's documentation features. The built-in `dbt docs generate \u0026\u0026 dbt docs serve` generates a useful, but somewhat dated static site, with limited functionality that doesn't scale well.\n\nDocglow replaces it with a **modern, interactive single-page application** — and it works with any dbt Core project out of the box.\n\n- **No dbt Cloud required** — generate and serve docs locally or deploy anywhere\n- **Unlimited models, unlimited viewers** — no seat caps, no model limits\n- **Zero configuration** — just point it at a dbt project with compiled artifacts and go\n- **Interactive lineage explorer** — drag, filter, and trace upstream/downstream dependencies visually\n- **Project health scoring** — get a coverage report for descriptions, tests, and documentation completeness\n\nSwitching from `dbt docs serve`? See the [migration guide](docs/migrating-from-dbt-docs.md) for a side-by-side comparison and step-by-step instructions.\n\n**Interactive lineage explorer** — layer-grouped DAG with upstream/downstream filtering, depth control, and folder grouping\n\n![Lineage explorer with layer bands](https://raw.githubusercontent.com/docglow/docglow/main/.github/assets/lineage-view.png)\n\n**Column-level lineage** — expand nodes to trace individual columns across models with transformation labels (direct, derived, aggregated) ([guide](docs/column-lineage.md))\n\n![Column-level lineage tracing](https://raw.githubusercontent.com/docglow/docglow/main/.github/assets/column-lineage-view.png)\n\n**Column table with lineage** — view types, descriptions, tests, and upstream/downstream dependencies for every column. Click a lineage badge to jump directly to that column in the linked model.\n\n![Column table with upstream and downstream lineage](https://raw.githubusercontent.com/docglow/docglow/main/.github/assets/columns-view.png)\n\n## Install\n\n```bash\npip install docglow\n```\n\n## Try It in 60 Seconds\n\n```bash\npip install docglow\ngit clone https://github.com/docglow/docglow.git\ncd docglow\ndocglow generate --project-dir examples/jaffle-shop --output-dir ./demo-site\ndocglow serve --dir ./demo-site\n```\n\nThis uses the bundled [jaffle_shop](https://github.com/dbt-labs/jaffle-shop) example project with pre-built dbt artifacts.\n\n## Quick Start\n\n```bash\n# Generate the site from your dbt project\ndocglow generate --project-dir /path/to/dbt/project --output-dir ./site\n\n# Serve locally\ndocglow serve --dir ./site\n```\n\n## Features\n\n- **Interactive lineage explorer** — drag, filter, and explore upstream/downstream dependencies with configurable depth and layer visualization\n- **Column-level documentation** — searchable column tables with descriptions, types, and test status\n- **Project health score** — coverage metrics for descriptions, tests, and documentation completeness ([details](docs/health-scoring.md))\n- **Full-text search** — instant search across all models, sources, and columns\n- **Single static site** — no backend required, deploy anywhere (S3, GitHub Pages, Netlify, etc.)\n- **AI chat (BYOK)** — ask natural language questions about your project using your own Anthropic API key\n- **Dark mode** — auto, light, and dark themes (follows system preference by default)\n\n## CLI Commands\n\n| Command | Description |\n|---------|-------------|\n| `docglow generate` | Generate the documentation site from dbt artifacts |\n| `docglow serve` | Serve the generated site locally |\n| `docglow health` | Show project health score and coverage metrics |\n| `docglow mcp-server` | Start MCP server for AI editor integration |\n| `docglow init` | Generate a starter `docglow.yml` configuration file |\n| `docglow profile` | Run column-level profiling (requires `docglow[profiling]`) |\n\n## Single-File Mode\n\nGenerate a completely self-contained HTML file — no server needed:\n\n```bash\ndocglow generate --project-dir /path/to/dbt --static\n# Open target/docglow/index.html directly in your browser\n```\n\nThe entire site (data, styles, JavaScript) is embedded in one file. Perfect for sharing via email, Slack, or committing to a repository.\n\n## Docglow Cloud\n\n**Hosted documentation with AI features — coming soon.**\n\nEverything in the open-source CLI, plus:\n\n- **AI-powered Q\u0026A** — ask natural language questions about your dbt project\n- **Slack bot** — answer data questions where your team already works\n- **Hosted doc sites** — publish with `docglow publish`, share a link\n- **Project health dashboard** — track documentation quality over time\n\nUnlimited models, unlimited viewers. You only pay for AI features you use.\n\n**[Join the waitlist →](https://docglow.com/#cloud)**\n\n## Configuration\n\nAdd a `docglow.yml` to your dbt project root for optional customization (layer definitions, display settings, etc.). Docglow works out of the box without any configuration — just point it at a dbt project with compiled artifacts in `target/`.\n\nGenerate a starter config with all options documented:\n\n```bash\ndocglow init\n```\n\n### Theme\n\nDocglow supports three themes: `auto` (follows system preference), `light`, and `dark`.\n\n```bash\ndocglow generate --theme dark\n```\n\nOr in `docglow.yml`:\n\n```yaml\ntheme: dark  # auto | light | dark\n```\n\n## AI Chat (Bring Your Own Key)\n\nDocglow includes a built-in AI chat panel powered by Claude. Ask natural language questions about your dbt project and get answers grounded in your actual metadata — models, columns, lineage, tests, and health scores.\n\n**Enable it:**\n\n```bash\n# Option 1: Pass your key as a flag (for local use only)\ndocglow generate --ai --ai-key sk-ant-...\n\n# Option 2: Set the environment variable\nexport ANTHROPIC_API_KEY=sk-ant-...\ndocglow generate --ai\n\n# Option 3: Enable in docglow.yml\n# ai:\n#   enabled: true\n```\n\nOpen the chat panel with `Ctrl+J` (or click the chat icon in the header), enter your Anthropic API key, and start asking questions.\n\n**Example questions:**\n\n| Question | What it does |\n|----------|-------------|\n| *What models depend on the orders source?* | Traces the lineage graph to find all downstream consumers |\n| *Which columns might contain PII?* | Scans column names and descriptions for personally identifiable information |\n| *What would break if I changed stg_customers?* | Lists all downstream models that depend on `stg_customers` |\n| *Show me all models related to revenue* | Searches model names, descriptions, and tags for revenue-related content |\n| *Which models have the most failing tests?* | Cross-references test results with model metadata |\n| *What's the overall health of this project?* | Summarizes the health score breakdown across all six dimensions |\n| *Explain what dim_employee does* | Describes the model using its SQL, columns, upstream dependencies, and description |\n| *What's the difference between stg_orders and fct_orders?* | Compares two models side-by-side using their metadata |\n\n**How it works:** When you generate with `--ai`, Docglow builds a compact project context (model names, descriptions, columns, lineage, test status, health scores) and embeds it in the site. The chat panel sends this context as a system prompt to the Anthropic API along with your question. Responses stream back in real-time with clickable model references.\n\n**Security:** Your API key is **never embedded** in the generated site. It's stored in your browser's localStorage when you enter it in the chat panel, and sent directly to the Anthropic API from your browser. You can safely deploy AI-enabled sites — they contain the project context but not your key.\n\n**Limits:** 20 requests per session (clear chat to reset). Uses Claude Sonnet 4 with streaming.\n\n## AI Editor Integration (MCP)\n\nDocglow includes a [Model Context Protocol](https://modelcontextprotocol.io/) server that exposes your dbt project to AI editors like Claude Code, Cursor, and Copilot.\n\nAdd to your editor's MCP config (e.g. `~/.claude.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"docglow\": {\n      \"command\": \"docglow\",\n      \"args\": [\"mcp-server\", \"--project-dir\", \"/path/to/dbt/project\"]\n    }\n  }\n}\n```\n\nThe server provides 9 tools: model/source lookup, lineage traversal, health scores, undocumented/untested discovery, cross-model column search, and full-text search. No API keys or network access required — it runs locally over stdio.\n\n## CI/CD Deployment\n\nUse Docglow as a CI quality gate with the `--fail-under` flag:\n\n```yaml\n# .github/workflows/docs.yml\n- name: Check documentation health\n  run: docglow health --project-dir . --fail-under 75\n\n- name: Generate and deploy docs\n  run: docglow generate --project-dir . --output-dir ./site\n```\n\nColumn-level lineage runs by default. For large projects, use `--skip-column-lineage` to speed up generation, or `--slim` to strip SQL source from the output and reduce payload size by 40–60%.\n\nSee the **[CI/CD Deployment Guide](docs/ci-cd-guide.md)** for complete walkthroughs covering GitHub Pages, S3, GitLab CI, health score thresholds, and enterprise private Pages.\n\nReady-to-copy workflow files: [GitHub Pages](docs/examples/docglow-pages.yml) (recommended), [S3](docs/ci-examples/github-actions-s3.yml), and [PR health check](docs/ci-examples/github-actions-health-check.yml).\n\n### Pre-commit\n\nAdd Docglow's health check to your existing pre-commit workflow:\n\n```yaml\n# .pre-commit-config.yaml\nrepos:\n  - repo: https://github.com/docglow/docglow\n    rev: v0.5.5\n    hooks:\n      - id: docglow-health\n        args: ['--fail-under', '75']\n```\n\n## Requirements\n\n- Python 3.10+\n- A dbt project with `target/manifest.json` (run `dbt compile` or `dbt run` first)\n- See [Compatibility](docs/compatibility.md) for supported dbt versions and adapters\n\n## License\n\nMIT\n\n---\n\n*dbt is a trademark of dbt Labs, Inc. Docglow is not affiliated with or endorsed by dbt Labs.*\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdocglow%2Fdocglow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdocglow%2Fdocglow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdocglow%2Fdocglow/lists"}