* chore(deps): bump the all-npm group in /frontend with 38 updates Bumps the all-npm group in /frontend with 38 updates: | Package | From | To | | --- | --- | --- | | [@hookform/resolvers](https://github.com/react-hook-form/resolvers) | `5.1.1` | `5.9.1` | | [@radix-ui/react-accordion](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/accordion) | `1.2.12` | `1.2.20` | | [@radix-ui/react-alert-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/alert-dialog) | `1.1.14` | `1.1.23` | | [@radix-ui/react-checkbox](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/checkbox) | `1.3.2` | `1.3.11` | | [@radix-ui/react-collapsible](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/collapsible) | `1.1.12` | `1.1.20` | | [@radix-ui/react-dialog](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dialog) | `1.1.15` | `1.1.23` | | [@radix-ui/react-dropdown-menu](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/dropdown-menu) | `2.1.15` | `2.1.24` | | [@radix-ui/react-label](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/label) | `2.1.7` | `2.1.15` | | [@radix-ui/react-popover](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/popover) | `1.1.15` | `1.1.23` | | [@radix-ui/react-progress](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/progress) | `1.1.7` | `1.1.16` | | [@radix-ui/react-radio-group](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/radio-group) | `1.3.8` | `1.4.7` | | [@radix-ui/react-scroll-area](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/scroll-area) | `1.2.9` | `1.2.18` | | [@radix-ui/react-select](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/select) | `2.2.5` | `2.3.7` | | [@radix-ui/react-separator](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/separator) | `1.1.7` | `1.1.15` | | [@radix-ui/react-slot](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/slot) | `1.2.3` | `1.3.3` | | [@radix-ui/react-tabs](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tabs) | `1.1.12` | `1.1.21` | | [@radix-ui/react-tooltip](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/tooltip) | `1.2.7` | `1.2.16` | | [@tailwindcss/typography](https://github.com/tailwindlabs/tailwindcss-typography) | `0.5.16` | `0.5.20` | | [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.83.0` | `5.103.3` | | [@uiw/react-md-editor](https://github.com/uiwjs/react-md-editor) | `4.0.8` | `4.1.2` | | [date-fns](https://github.com/date-fns/date-fns) | `4.1.0` | `4.4.0` | | [i18next-browser-languagedetector](https://github.com/i18next/i18next-browser-languageDetector) | `8.2.0` | `8.2.1` | | [katex](https://github.com/KaTeX/KaTeX) | `0.16.47` | `0.18.9` | | [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.3` | `19.3.0` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.1.8` | `19.3.0` | | [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.3` | `19.3.0` | | [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) | `19.1.6` | `19.3.0` | | [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.60.0` | `7.89.0` | | [sonner](https://github.com/emilkowalski/sonner) | `2.0.6` | `2.0.8` | | [tailwind-merge](https://github.com/dcastil/tailwind-merge/tree/HEAD/packages/tailwind-merge) | `3.3.1` | `3.7.0` | | [use-debounce](https://github.com/xnimorz/use-debounce) | `10.0.6` | `10.1.1` | | [zod](https://github.com/colinhacks/zod) | `4.0.5` | `4.6.5` | | [zustand](https://github.com/pmndrs/zustand) | `5.0.6` | `5.0.15` | | [@eslint/eslintrc](https://github.com/eslint/eslintrc) | `3.3.1` | `3.3.7` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.1.11` | `4.3.3` | | [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.1` | `16.3.3` | | [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.1.11` | `4.3.3` | | [tw-animate-css](https://github.com/Wombosvideo/tw-animate-css) | `1.3.5` | `1.4.0` | Updates `@hookform/resolvers` from 5.1.1 to 5.9.1 - [Release notes](https://github.com/react-hook-form/resolvers/releases) - [Commits](https://github.com/react-hook-form/resolvers/compare/v5.1.1...v5.9.1) Updates `@radix-ui/react-accordion` from 1.2.12 to 1.2.20 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/accordion/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/accordion) Updates `@radix-ui/react-alert-dialog` from 1.1.14 to 1.1.23 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/alert-dialog/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/alert-dialog) Updates `@radix-ui/react-checkbox` from 1.3.2 to 1.3.11 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/checkbox/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/checkbox) Updates `@radix-ui/react-collapsible` from 1.1.12 to 1.1.20 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/collapsible/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/collapsible) Updates `@radix-ui/react-dialog` from 1.1.15 to 1.1.23 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dialog) Updates `@radix-ui/react-dropdown-menu` from 2.1.15 to 2.1.24 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/dropdown-menu/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/dropdown-menu) Updates `@radix-ui/react-label` from 2.1.7 to 2.1.15 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/label/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/label) Updates `@radix-ui/react-popover` from 1.1.15 to 1.1.23 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/popover/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/popover) Updates `@radix-ui/react-progress` from 1.1.7 to 1.1.16 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/progress/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/progress) Updates `@radix-ui/react-radio-group` from 1.3.8 to 1.4.7 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/radio-group/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/radio-group) Updates `@radix-ui/react-scroll-area` from 1.2.9 to 1.2.18 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/scroll-area/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/scroll-area) Updates `@radix-ui/react-select` from 2.2.5 to 2.3.7 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/select/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/select) Updates `@radix-ui/react-separator` from 1.1.7 to 1.1.15 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/separator/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/separator) Updates `@radix-ui/react-slot` from 1.2.3 to 1.3.3 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/slot/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/slot) Updates `@radix-ui/react-tabs` from 1.1.12 to 1.1.21 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/tabs/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/tabs) Updates `@radix-ui/react-tooltip` from 1.2.7 to 1.2.16 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/tooltip/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/tooltip) Updates `@tailwindcss/typography` from 0.5.16 to 0.5.20 - [Release notes](https://github.com/tailwindlabs/tailwindcss-typography/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss-typography/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss-typography/compare/v0.5.16...v0.5.20) Updates `@tanstack/react-query` from 5.83.0 to 5.103.3 - [Release notes](https://github.com/TanStack/query/releases) - [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md) - [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.103.3/packages/react-query) Updates `@uiw/react-md-editor` from 4.0.8 to 4.1.2 - [Release notes](https://github.com/uiwjs/react-md-editor/releases) - [Commits](https://github.com/uiwjs/react-md-editor/compare/v4.0.8...v4.1.2) Updates `date-fns` from 4.1.0 to 4.4.0 - [Release notes](https://github.com/date-fns/date-fns/releases) - [Commits](https://github.com/date-fns/date-fns/compare/v4.1.0...v4.4.0) Updates `i18next-browser-languagedetector` from 8.2.0 to 8.2.1 - [Changelog](https://github.com/i18next/i18next-browser-languageDetector/blob/master/CHANGELOG.md) - [Commits](https://github.com/i18next/i18next-browser-languageDetector/compare/v8.2.0...v8.2.1) Updates `katex` from 0.16.47 to 0.18.9 - [Release notes](https://github.com/KaTeX/KaTeX/releases) - [Changelog](https://github.com/KaTeX/KaTeX/blob/main/CHANGELOG.md) - [Commits](https://github.com/KaTeX/KaTeX/compare/v0.16.47...v0.18.9) Updates `react` from 19.2.3 to 19.3.0 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.3.0/packages/react) Updates `@types/react` from 19.1.8 to 19.3.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `react-dom` from 19.2.3 to 19.3.0 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.3.0/packages/react-dom) Updates `@types/react-dom` from 19.1.6 to 19.3.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) Updates `react-hook-form` from 7.60.0 to 7.89.0 - [Release notes](https://github.com/react-hook-form/react-hook-form/releases) - [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md) - [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.60.0...v7.89.0) Updates `sonner` from 2.0.6 to 2.0.8 - [Release notes](https://github.com/emilkowalski/sonner/releases) - [Commits](https://github.com/emilkowalski/sonner/compare/v2.0.6...v2.0.8) Updates `tailwind-merge` from 3.3.1 to 3.7.0 - [Release notes](https://github.com/dcastil/tailwind-merge/releases) - [Commits](https://github.com/dcastil/tailwind-merge/commits/tailwind-merge@3.7.0/packages/tailwind-merge) Updates `use-debounce` from 10.0.6 to 10.1.1 - [Release notes](https://github.com/xnimorz/use-debounce/releases) - [Changelog](https://github.com/xnimorz/use-debounce/blob/master/CHANGELOG.md) - [Commits](https://github.com/xnimorz/use-debounce/commits) Updates `zod` from 4.0.5 to 4.6.5 - [Release notes](https://github.com/colinhacks/zod/releases) - [Commits](https://github.com/colinhacks/zod/compare/v4.0.5...v4.6.5) Updates `zustand` from 5.0.6 to 5.0.15 - [Release notes](https://github.com/pmndrs/zustand/releases) - [Commits](https://github.com/pmndrs/zustand/compare/v5.0.6...v5.0.15) Updates `@eslint/eslintrc` from 3.3.1 to 3.3.7 - [Release notes](https://github.com/eslint/eslintrc/releases) - [Changelog](https://github.com/eslint/eslintrc/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslintrc/compare/v3.3.1...eslintrc-v3.3.7) Updates `@tailwindcss/postcss` from 4.1.11 to 4.3.3 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.3/packages/@tailwindcss-postcss) Updates `@testing-library/react` from 16.3.1 to 16.3.3 - [Release notes](https://github.com/testing-library/react-testing-library/releases) - [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/react-testing-library/compare/v16.3.1...v16.3.3) Updates `@types/react` from 19.1.8 to 19.3.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `@types/react-dom` from 19.1.6 to 19.3.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) Updates `tailwindcss` from 4.1.11 to 4.3.3 - [Release notes](https://github.com/tailwindlabs/tailwindcss/releases) - [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.3/packages/tailwindcss) Updates `tw-animate-css` from 1.3.5 to 1.4.0 - [Release notes](https://github.com/Wombosvideo/tw-animate-css/releases) - [Commits](https://github.com/Wombosvideo/tw-animate-css/compare/v1.3.5...v1.4.0) --- updated-dependencies: - dependency-name: "@hookform/resolvers" dependency-version: 5.9.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: "@radix-ui/react-accordion" dependency-version: 1.2.20 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@radix-ui/react-alert-dialog" dependency-version: 1.1.23 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@radix-ui/react-checkbox" dependency-version: 1.3.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@radix-ui/react-collapsible" dependency-version: 1.1.20 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@radix-ui/react-dialog" dependency-version: 1.1.23 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@radix-ui/react-dropdown-menu" dependency-version: 2.1.24 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@radix-ui/react-label" dependency-version: 2.1.15 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@radix-ui/react-popover" dependency-version: 1.1.23 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@radix-ui/react-progress" dependency-version: 1.1.16 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@radix-ui/react-radio-group" dependency-version: 1.4.7 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: "@radix-ui/react-scroll-area" dependency-version: 1.2.18 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@radix-ui/react-select" dependency-version: 2.3.7 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: "@radix-ui/react-separator" dependency-version: 1.1.15 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@radix-ui/react-slot" dependency-version: 1.3.3 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: "@radix-ui/react-tabs" dependency-version: 1.1.21 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@radix-ui/react-tooltip" dependency-version: 1.2.16 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@tailwindcss/typography" dependency-version: 0.5.20 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@tanstack/react-query" dependency-version: 5.103.3 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: "@uiw/react-md-editor" dependency-version: 4.1.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: date-fns dependency-version: 4.4.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: i18next-browser-languagedetector dependency-version: 8.2.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: katex dependency-version: 0.18.9 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: react dependency-version: 19.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: "@types/react" dependency-version: 19.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: react-dom dependency-version: 19.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: "@types/react-dom" dependency-version: 19.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: react-hook-form dependency-version: 7.89.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: sonner dependency-version: 2.0.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: tailwind-merge dependency-version: 3.7.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: use-debounce dependency-version: 10.1.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: zod dependency-version: 4.6.5 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: zustand dependency-version: 5.0.15 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@eslint/eslintrc" dependency-version: 3.3.7 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@tailwindcss/postcss" dependency-version: 4.3.3 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: "@testing-library/react" dependency-version: 16.3.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: all-npm - dependency-name: "@types/react" dependency-version: 19.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: "@types/react-dom" dependency-version: 19.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: tailwindcss dependency-version: 4.3.3 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: all-npm - dependency-name: tw-animate-css dependency-version: 1.4.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: all-npm ... Signed-off-by: dependabot[bot] <support@github.com> * fix(deps): keep katex on 0.16 to match rehype-katex The group bumped the direct katex dependency (which only provides katex.min.css) to 0.18.9 while rehype-katex keeps rendering with its own katex 0.16.47, so the stylesheet and the generated markup would come from different versions. Keep katex on ^0.16.47 (deduped with rehype-katex) and tell dependabot to skip katex >= 0.17 until rehype-katex moves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GBYpxzSS62Y3TZkgB9NUZy --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Luis Novo <lfnovo@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .claude/agents | ||
| .codex/agents | ||
| .github | ||
| .maintainer | ||
| api | ||
| commands | ||
| docs | ||
| examples | ||
| frontend | ||
| open_notebook | ||
| prompts | ||
| scripts | ||
| tests | ||
| .dockerignore | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .python-version | ||
| .worktreeinclude | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| CODE_OF_CONDUCT.md | ||
| CONFIGURATION.md | ||
| CONTRIBUTING.md | ||
| cubic.yaml | ||
| dev-init.sh | ||
| docker-compose.override.yml.example | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE | ||
| logo.png | ||
| MAINTAINER_GUIDE.md | ||
| Makefile | ||
| mypy.ini | ||
| pyproject.toml | ||
| README.dev.md | ||
| README.md | ||
| run_api.py | ||
| SECURITY.md | ||
| supervisord.conf | ||
| supervisord.surrealdb.conf | ||
| uv.lock | ||
| VISION.md | ||
Open Notebook
An open source, privacy-focused alternative to Google's Notebook LM!
Join our Discord server for help, to share workflow ideas, and suggest features!
Checkout our website »
Follow @lfnovo on X for updates
📚 Get Started
·
📖 User Guide
·
✨ Features
·
🚀 Deploy
A private, multi-model, 100% local, full-featured alternative to Notebook LM
In a world dominated by Artificial Intelligence, having the ability to think 🧠 and acquire new knowledge 💡, is a skill that should not be a privilege for a few, nor restricted to a single provider.
Open Notebook empowers you to:
- 🔒 Control your data - Keep your research private and secure
- 🤖 Choose your AI models - Support for 18+ providers including OpenAI, Anthropic, Ollama, LM Studio, and more
- 📚 Organize multi-modal content - PDFs, videos, audio, web pages, and more
- 🎙️ Generate professional podcasts - Advanced multi-speaker podcast generation
- 🔍 Search intelligently - Full-text and vector search across all your content
- 💬 Chat with context - AI conversations powered by your research
- 🌐 Multi-language UI - English, Portuguese, Chinese (Simplified & Traditional), Japanese, Russian, and Bengali support
Learn more about our project at https://www.open-notebook.ai
🆚 Open Notebook vs Google Notebook LM
| Feature | Open Notebook | Google Notebook LM | Advantage |
|---|---|---|---|
| Privacy & Control | Self-hosted, your data | Google cloud only | Complete data sovereignty |
| AI Provider Choice | 18+ providers (OpenAI, Anthropic, Ollama, LM Studio, etc.) | Google models only | Flexibility and cost optimization |
| Podcast Speakers | 1-4 speakers with custom profiles | 2 speakers only | Extreme flexibility |
| Content Transformations | Custom and built-in | Limited options | Unlimited processing power |
| API Access | Full REST API | No API | Complete automation |
| Deployment | Docker, cloud, or local | Google hosted only | Deploy anywhere |
| Citations | Basic references (will improve) | Comprehensive with sources | Research integrity |
| Customization | Open source, fully customizable | Closed system | Unlimited extensibility |
| Cost | Pay only for AI usage | Free tier + Monthly subscription | Transparent and controllable |
Why Choose Open Notebook?
- 🔒 Privacy First: Your sensitive research stays completely private
- 💰 Cost Control: Choose cheaper AI providers or run locally with Ollama
- 🎙️ Better Podcasts: Full script control and multi-speaker flexibility vs limited 2-speaker deep-dive format
- 🔧 Unlimited Customization: Modify, extend, and integrate as needed
- 🌐 No Vendor Lock-in: Switch providers, deploy anywhere, own your data
Built With
🚀 Quick Start (2 Minutes)
Prerequisites
- Docker Desktop installed
- That's it! (API keys configured later in the UI)
Step 1: Get docker-compose.yml
Option A: Download directly
curl -o docker-compose.yml https://raw.githubusercontent.com/lfnovo/open-notebook/main/docker-compose.yml
Option B: Create the file manually
Copy this into a new file called docker-compose.yml:
services:
surrealdb:
image: surrealdb/surrealdb:v2
# Credentials default to root:root for a zero-config local setup. Before
# exposing this instance to a network, set SURREAL_USER / SURREAL_PASSWORD
# in a .env file (see .env.example) — they are applied here and to the
# open_notebook service below, so the two always stay in sync.
# List (exec) form so each interpolated value stays a single argument —
# a password containing spaces would otherwise be split into several.
command: ["start", "--log", "info", "--user", "${SURREAL_USER:-root}", "--pass", "${SURREAL_PASSWORD:-root}", "rocksdb:/mydata/mydatabase.db"]
user: root # Required for bind mounts on Linux
ports:
# Bound to localhost only: the open_notebook service reaches this over
# the internal compose network regardless, so the host port is purely
# for local debugging (e.g. Surrealist, `surreal sql`). Exposing this
# on 0.0.0.0 would let anyone who can reach the host connect with the
# default root:root credentials.
- "127.0.0.1:8000:8000"
volumes:
- ./surreal_data:/mydata
environment:
- SURREAL_EXPERIMENTAL_GRAPHQL=true
restart: always
pull_policy: always
open_notebook:
image: lfnovo/open_notebook:v1-latest
ports:
- "8502:8502" # Web UI
- "5055:5055" # REST API
environment:
# REQUIRED: Change this to your own secret string
# This encrypts your API keys in the database
- OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string
# Database connection. SURREAL_USER / SURREAL_PASSWORD default to root:root
# for local use; override them in a .env file before exposing the instance
# (the same values configure the surrealdb service above).
- SURREAL_URL=ws://surrealdb:8000/rpc
- SURREAL_USER=${SURREAL_USER:-root}
- SURREAL_PASSWORD=${SURREAL_PASSWORD:-root}
- SURREAL_NAMESPACE=open_notebook
- SURREAL_DATABASE=open_notebook
volumes:
- ./notebook_data:/app/data
depends_on:
- surrealdb
restart: always
pull_policy: always
Step 2: Set Your Encryption Key
Edit docker-compose.yml and change this line:
- OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string
to any secret value (e.g., my-super-secret-key-123)
Step 3: Start Services
docker compose up -d
Wait 15-20 seconds, then open: http://localhost:8502
Step 4: Configure AI Provider
- Go to Models and choose your provider (OpenAI, Anthropic, Google, etc.)
- Click + Add Configuration
- Paste your API key and other info as needed and click Add Configuration
- Click Test to test connection
- Click Sync Models and check models to include
- Under Default Model Assignments, click Auto-Assign Defaults or manually specify which models to use for what
Done! You're ready to create your first notebook.
Need an API key? Get one from: OpenAI · Anthropic · Google · Groq (free tier)
Want free local AI? See examples/docker-compose-ollama.yml for Ollama setup
📚 More Installation Options
- With Ollama (Free Local AI) - Run models locally without API costs
- From Source (Developers) - For development and contributions
- Complete Installation Guide - All deployment scenarios
📖 Need Help?
- 🤖 AI Installation Assistant: CustomGPT to help you install
- 🆘 Troubleshooting: 5-minute troubleshooting guide
- 💬 Community Support: Discord Server
- 🐛 Report Issues: GitHub Issues
Star History
Provider Support Matrix
Thanks to the Esperanto library, we support this providers out of the box!
| Provider | LLM Support | Embedding Support | Speech-to-Text | Text-to-Speech |
|---|---|---|---|---|
| OpenAI | ✅ | ✅ | ✅ | ✅ |
| Anthropic | ✅ | ❌ | ❌ | ❌ |
| Groq | ✅ | ❌ | ✅ | ❌ |
| Google (GenAI) | ✅ | ✅ | ✅ | ✅ |
| Vertex AI | ✅ | ✅ | ❌ | ✅ |
| Ollama | ✅ | ✅ | ❌ | ❌ |
| oMLX | ✅ | ✅ | ❌ | ❌ |
| Perplexity | ✅ | ❌ | ❌ | ❌ |
| ElevenLabs | ❌ | ❌ | ✅ | ✅ |
| Deepgram | ❌ | ❌ | ✅ | ✅ |
| Azure OpenAI | ✅ | ✅ | ✅ | ✅ |
| Mistral | ✅ | ✅ | ✅ | ✅ |
| DeepSeek | ✅ | ❌ | ❌ | ❌ |
| Cohere | ✅ | ✅ | ❌ | ❌ |
| Voyage | ❌ | ✅ | ❌ | ❌ |
| xAI | ✅ | ❌ | ❌ | ✅ |
| OpenRouter | ✅ | ✅ | ✅ | ✅ |
| DashScope (Qwen) | ✅ | ❌ | ❌ | ❌ |
| MiniMax | ✅ | ❌ | ❌ | ✅ |
| Novita | ✅ | ❌ | ❌ | ❌ |
| SiliconFlow | ✅ | ❌ | ❌ | ❌ |
| Z.ai | ✅ | ❌ | ❌ | ❌ |
| PayPerQ (PPQ) | ✅ | ✅ | ✅ | ✅ |
| OpenAI Compatible* | ✅ | ✅ | ✅ | ✅ |
*Supports LM Studio and any OpenAI-compatible endpoint. Prefer the native oMLX provider for oMLX (Apple Silicon); see docs/5-CONFIGURATION/omlx.md.
✨ Key Features
Core Capabilities
- 🔒 Privacy-First: Your data stays under your control - no cloud dependencies
- 🎯 Multi-Notebook Organization: Manage multiple research projects seamlessly
- 📚 Universal Content Support: PDFs, videos, audio, web pages, Office docs, and more
- 🤖 Multi-Model AI Support: 18+ providers including OpenAI, Anthropic, Ollama, Google, LM Studio, and more
- 🎙️ Professional Podcast Generation: Advanced multi-speaker podcasts with Episode Profiles
- 🔍 Intelligent Search: Full-text and vector search across all your content
- 💬 Context-Aware Chat: AI conversations powered by your research materials
- 📝 AI-Assisted Notes: Generate insights or write notes manually
Advanced Features
- ⚡ Reasoning Model Support: Full support for thinking models like DeepSeek-R1 and Qwen3
- 🔧 Content Transformations: Powerful customizable actions to summarize and extract insights
- 🌐 Comprehensive REST API: Full programmatic access for custom integrations
- 🔐 Optional Password Protection: Secure public deployments with authentication
- 📊 Fine-Grained Context Control: Choose exactly what to share with AI models
- 📎 Citations: Get answers with proper source citations
Podcast Feature
📚 Documentation
Getting Started
- 📖 Introduction - Learn what Open Notebook offers
- ⚡ Quick Start with OpenAI - Get up and running in 5 minutes
- 🔧 Installation - Comprehensive setup guide
- 🎯 Run It Fully Local - Ollama/LM Studio, completely private
User Guide
- 📱 Interface Overview - Understanding the layout
- 📚 Notebooks, Sources & Notes - Organizing your research
- 📄 Adding Sources - Managing content types
- 📝 Working with Notes - Creating and managing notes
- 💬 Chatting Effectively - AI conversations
- 🔍 Search - Finding information
Advanced Topics
- 🎙️ Podcast Generation - Create professional podcasts
- 🔧 Content Transformations - Customize content processing
- 🤖 AI Models - AI model configuration
- 🔌 MCP Integration - Connect with Claude Desktop, VS Code and other MCP clients
- 🔧 REST API Reference - Complete API documentation
- 🔐 Security - Password protection and privacy
- 🚀 Deployment - Complete deployment guides for all scenarios
- 🧭 Vision & Principles - What Open Notebook is, and where it's going
- 🛠️ Developer Docs - Architecture, setup, contributing, decision records
🗺️ Roadmap
Upcoming Features
- Live Front-End Updates: Real-time UI updates for smoother experience
- Async Processing: Faster UI through asynchronous content processing
- Cross-Notebook Sources: Reuse research materials across projects
- Bookmark Integration: Connect with your favorite bookmarking apps
Recently Completed ✅
- Next.js Frontend: Modern React-based frontend with improved performance
- Comprehensive REST API: Full programmatic access to all functionality
- Multi-Model Support: 18+ AI providers including OpenAI, Anthropic, Ollama, LM Studio
- Advanced Podcast Generator: Professional multi-speaker podcasts with Episode Profiles
- Content Transformations: Powerful customizable actions for content processing
- Enhanced Citations: Improved layout and finer control for source citations
- Multiple Chat Sessions: Manage different conversations within notebooks
Explore GitHub Discussions for proposed features and product ideas, and open Issues for known bugs and approved work.
📖 Need Help?
- 🤖 AI Installation Assistant: We have a CustomGPT built to help you install Open Notebook - it will guide you through each step!
- New to Open Notebook? Start with our Getting Started Guide
- Need installation help? Check our Installation Guide
- Want to see it in action? Try our Quick Start Tutorial
🤝 Community & Contributing
Join the Community
- 💬 Discord Server - Get help, share ideas, and connect with other users
- 𝕏 Follow @lfnovo on X - Project updates and news from the maintainer
- 💡 GitHub Discussions - Ask questions and shape features, product direction, design, and architecture
- 🐛 GitHub Issues - Report reproducible bugs and find approved work
- ⭐ Star this repo - Show your support and help others discover Open Notebook
Contributing
We welcome contributions! We're especially looking for help with:
- Frontend Development: Help improve our modern Next.js/React UI
- Testing & Bug Fixes: Make Open Notebook more robust
- Feature Development: Build the coolest research tool together
- Documentation: Improve guides and tutorials
Current Tech Stack: Python, FastAPI, Next.js, React, SurrealDB Future Roadmap: Real-time updates, enhanced async processing
See our Contributing Guide for detailed information on how to get started, including our guidelines for AI-assisted contributions. To understand what we're building (and what we'll say no to), read VISION.md.
📄 License
Open Notebook is MIT licensed. See the LICENSE file for details.
Community Support:
- 💬 Discord Server - Get help, share ideas, and connect with users
- 𝕏 Follow @lfnovo on X - Project updates and news from the maintainer
- 💡 GitHub Discussions - Ask questions and shape ideas
- 🐛 GitHub Issues - Report reproducible bugs and find approved work
- 🌐 Website - Learn more about the project

