Skip to content

fix: improve llms.txt path generation for docs embedded in the NPM packages#142

Merged
pkosiec merged 5 commits intomainfrom
pkosiec/llms-txt-improvements
Mar 2, 2026
Merged

fix: improve llms.txt path generation for docs embedded in the NPM packages#142
pkosiec merged 5 commits intomainfrom
pkosiec/llms-txt-improvements

Conversation

@pkosiec
Copy link
Member

@pkosiec pkosiec commented Feb 27, 2026

Changes

Embedded docs

  • split llms.txt into multiple categories
  • mark API reference sections as collapsed for the npx appkit docs command
  • ensure all Markdown files have links with correct paths, ready to use by npx appkit docs
  • flatten the docs into ./docs
  • fix paths for appkit API reference (were broken because of not strict enough regex)

npx appkit docs command

  • collapse API reference sections for npx appkit docs by default (as they are the longest ones)
  • support appkit docs {section name}
    • section name doesn't need to be exact
    • if there are two sections with the same substrings, both are returned (e.g. npx appkit docs api -> both ui and appkit API reference sections are matched)

Resolves https://databricks.atlassian.net/browse/LKB-9342

Demo

llms2.mp4

Sample llms.txt after the changes

NOTE: The [collapsed] sections are, collapsed by default when using the appkit docs command. They can be printed with appkit docs --full or appkit docs {partial-or-full-section-name}, like appkit docs ui api.

Details

# AppKit

> Node.js + React SDK for Databricks Apps. Built for humans and AI.


## General docs

- [Getting started](/appkit/docs.md): Learn how to get started with AppKit.
- [API reference](/appkit/docs/api.md): This section contains the API reference for the AppKit packages.
- [App management](/appkit/docs/app-management.md): Manage your AppKit application throughout its lifecycle using the Databricks CLI. This guide covers deploying, starting, stopping, monitoring, and deleting apps.
- [Architecture](/appkit/docs/architecture.md): AppKit follows a plugin-based architecture designed for building production-ready Databricks applications. This document provides a high-level overview of the system components and their interactions.
- [Configuration](/appkit/docs/configuration.md): This guide covers environment variables and configuration options for AppKit applications.
- [Core principles](/appkit/docs/core-principles.md): Learn about the fundamental concepts and principles behind AppKit.
- [Development](/appkit/docs/development.md): AppKit provides multiple development workflows to suit different needs: local development with hot reload, AI-assisted development with MCP, and remote tunneling to deployed backends.
- [Plugins](/appkit/docs/plugins.md): Plugins are modular extensions that add capabilities to your AppKit application. They follow a defined lifecycle and have access to shared services like caching, telemetry, and streaming.

## Development

- [AI-Assisted development](/appkit/docs/development/ai-assisted-development.md): AppKit-specific agent skills for AI coding assistants are coming soon. This documentation will be updated with instructions when available.
- [LLM Guide](/appkit/docs/development/llm-guide.md): This document provides prescriptive guidance for AI coding assistants generating code with Databricks AppKit. It is intentionally opinionated to ensure consistent, production-ready code generation.
- [Local development](/appkit/docs/development/local-development.md): Once your app is bootstrapped according to the Quick start guide, you can start the development server with hot reload for both UI and backend code.
- [Project setup](/appkit/docs/development/project-setup.md): This guide covers the recommended project structure and scaffolding for AppKit applications.
- [Remote Bridge](/appkit/docs/development/remote-bridge.md): Remote bridge allows you to develop against a deployed backend while keeping your UI and queries local. This is useful for testing against production data or debugging deployed backend code without redeploying your app.
- [Type generation](/appkit/docs/development/type-generation.md): AppKit can automatically generate TypeScript types for your SQL queries, providing end-to-end type safety from database to UI.

## Plugins

- [Analytics plugin](/appkit/docs/plugins/analytics.md): Enables SQL query execution against Databricks SQL Warehouses.
- [Caching](/appkit/docs/plugins/caching.md): AppKit provides both global and plugin-level caching capabilities.
- [Creating custom plugins](/appkit/docs/plugins/custom-plugins.md): If you need custom API routes or background logic, implement an AppKit plugin. The fastest way is to use the CLI:
- [Execution context](/appkit/docs/plugins/execution-context.md): AppKit manages Databricks authentication via two contexts:
- [Lakebase plugin](/appkit/docs/plugins/lakebase.md): Currently, the Lakebase plugin currently requires a one-time manual setup to connect your Databricks App with your Lakebase database. An automated setup process is planned for an upcoming future release.
- [Plugin management](/appkit/docs/plugins/plugin-management.md): AppKit includes a CLI for managing plugins. All commands are available under npx @databricks/appkit plugin.
- [Server plugin](/appkit/docs/plugins/server.md): Provides HTTP server capabilities with development and production modes.

## appkit API reference [collapsed]

- [@databricks/appkit](/appkit/docs/api/appkit.md): Core library for building Databricks applications with type-safe SQL queries,
- [Abstract Class: AppKitError](/appkit/docs/api/appkit/Class.AppKitError.md): Base error class for all AppKit errors.
- [Class: AuthenticationError](/appkit/docs/api/appkit/Class.AuthenticationError.md): Error thrown when authentication fails.
- [Class: ConfigurationError](/appkit/docs/api/appkit/Class.ConfigurationError.md): Error thrown when configuration is missing or invalid.
- [Class: ConnectionError](/appkit/docs/api/appkit/Class.ConnectionError.md): Error thrown when a connection or network operation fails.
- [Class: ExecutionError](/appkit/docs/api/appkit/Class.ExecutionError.md): Error thrown when an operation execution fails.
- [Class: InitializationError](/appkit/docs/api/appkit/Class.InitializationError.md): Error thrown when a service or component is not properly initialized.
- [Abstract Class: Plugin<TConfig>](/appkit/docs/api/appkit/Class.Plugin.md): Base abstract class for creating AppKit plugins.
- [Class: ResourceRegistry](/appkit/docs/api/appkit/Class.ResourceRegistry.md): Central registry for tracking plugin resource requirements.
- [Class: ServerError](/appkit/docs/api/appkit/Class.ServerError.md): Error thrown when server lifecycle operations fail.
- [Class: TunnelError](/appkit/docs/api/appkit/Class.TunnelError.md): Error thrown when remote tunnel operations fail.
- [Class: ValidationError](/appkit/docs/api/appkit/Class.ValidationError.md): Error thrown when input validation fails.
- [Enumeration: RequestedClaimsPermissionSet](/appkit/docs/api/appkit/Enumeration.RequestedClaimsPermissionSet.md): Permission set for Unity Catalog table access
- [Enumeration: ResourceType](/appkit/docs/api/appkit/Enumeration.ResourceType.md): Resource types from schema $defs.resourceType.enum
- [Function: appKitTypesPlugin()](/appkit/docs/api/appkit/Function.appKitTypesPlugin.md): Vite plugin to generate types for AppKit queries.
- [Function: createApp()](/appkit/docs/api/appkit/Function.createApp.md): Bootstraps AppKit with the provided configuration.
- [Function: createLakebasePool()](/appkit/docs/api/appkit/Function.createLakebasePool.md): Create a Lakebase pool with appkit's logger integration.
- [Function: generateDatabaseCredential()](/appkit/docs/api/appkit/Function.generateDatabaseCredential.md): Generate OAuth credentials for Postgres database connection using the proper Postgres API.
- [Function: getExecutionContext()](/appkit/docs/api/appkit/Function.getExecutionContext.md): Get the current execution context.
- [Function: getLakebaseOrmConfig()](/appkit/docs/api/appkit/Function.getLakebaseOrmConfig.md): Get Lakebase connection configuration for ORMs that don't accept pg.Pool directly.
- [Function: getLakebasePgConfig()](/appkit/docs/api/appkit/Function.getLakebasePgConfig.md): Get Lakebase connection configuration for PostgreSQL clients.
- [Function: getPluginManifest()](/appkit/docs/api/appkit/Function.getPluginManifest.md): Loads and validates the manifest from a plugin constructor.
- [Function: getResourceRequirements()](/appkit/docs/api/appkit/Function.getResourceRequirements.md): Gets the resource requirements from a plugin's manifest.
- [Function: getUsernameWithApiLookup()](/appkit/docs/api/appkit/Function.getUsernameWithApiLookup.md): Resolves the PostgreSQL username for a Lakebase connection.
- [Function: getWorkspaceClient()](/appkit/docs/api/appkit/Function.getWorkspaceClient.md): Get workspace client from config or SDK default auth chain
- [Function: isSQLTypeMarker()](/appkit/docs/api/appkit/Function.isSQLTypeMarker.md): Type guard to check if a value is a SQL type marker
- [Interface: BasePluginConfig](/appkit/docs/api/appkit/Interface.BasePluginConfig.md): Base configuration interface for AppKit plugins
- [Interface: CacheConfig](/appkit/docs/api/appkit/Interface.CacheConfig.md): Configuration for caching
- [Interface: DatabaseCredential](/appkit/docs/api/appkit/Interface.DatabaseCredential.md): Database credentials with OAuth token for Postgres connection
- [Interface: GenerateDatabaseCredentialRequest](/appkit/docs/api/appkit/Interface.GenerateDatabaseCredentialRequest.md): Request parameters for generating database OAuth credentials
- [Interface: ITelemetry](/appkit/docs/api/appkit/Interface.ITelemetry.md): Plugin-facing interface for OpenTelemetry instrumentation.
- [Interface: LakebasePoolConfig](/appkit/docs/api/appkit/Interface.LakebasePoolConfig.md): Configuration for creating a Lakebase connection pool
- [Interface: PluginManifest](/appkit/docs/api/appkit/Interface.PluginManifest.md): Plugin manifest that declares metadata and resource requirements.
- [Interface: RequestedClaims](/appkit/docs/api/appkit/Interface.RequestedClaims.md): Optional claims for fine-grained Unity Catalog table permissions
- [Interface: RequestedResource](/appkit/docs/api/appkit/Interface.RequestedResource.md): Resource to request permissions for in Unity Catalog
- [Interface: ResourceEntry](/appkit/docs/api/appkit/Interface.ResourceEntry.md): Internal representation of a resource in the registry.
- [Interface: ResourceFieldEntry](/appkit/docs/api/appkit/Interface.ResourceFieldEntry.md): Defines a single field for a resource. Each field has its own environment variable and optional description.
- [Interface: ResourceRequirement](/appkit/docs/api/appkit/Interface.ResourceRequirement.md): Declares a resource requirement for a plugin.
- [Interface: StreamExecutionSettings](/appkit/docs/api/appkit/Interface.StreamExecutionSettings.md): Configuration for streaming execution with default and user-scoped settings
- [Interface: TelemetryConfig](/appkit/docs/api/appkit/Interface.TelemetryConfig.md): OpenTelemetry configuration for AppKit applications
- [Interface: ValidationResult](/appkit/docs/api/appkit/Interface.ValidationResult.md): Result of validating all registered resources against the environment.
- [Type Alias: ConfigSchema](/appkit/docs/api/appkit/TypeAlias.ConfigSchema.md): Configuration schema definition for plugin config.
- [Type Alias: IAppRouter](/appkit/docs/api/appkit/TypeAlias.IAppRouter.md): Express router type for plugin route registration
- [Type Alias: ResourcePermission](/appkit/docs/api/appkit/TypeAlias.ResourcePermission.md): Union of all possible permission levels across all resource types.
- [Type Alias: ToPlugin()<T, U, N>](/appkit/docs/api/appkit/TypeAlias.ToPlugin.md): Type Parameters
- [Variable: sql](/appkit/docs/api/appkit/Variable.sql.md): SQL helper namespace

## appkit-ui API reference [collapsed]

- [@databricks/appkit-ui](/appkit/docs/api/appkit-ui.md): The library provides a set of UI primitives for building Databricks apps in React.
- [AreaChart](/appkit/docs/api/appkit-ui/data/AreaChart.md): Area Chart component for trend visualization with filled areas.
- [BarChart](/appkit/docs/api/appkit-ui/data/BarChart.md): Bar Chart component for categorical comparisons.
- [DataTable](/appkit/docs/api/appkit-ui/data/DataTable.md): Production-ready data table with automatic data fetching and state management
- [DonutChart](/appkit/docs/api/appkit-ui/data/DonutChart.md): Donut Chart component (Pie chart with inner radius).
- [HeatmapChart](/appkit/docs/api/appkit-ui/data/HeatmapChart.md): Heatmap Chart component for matrix-style data visualization.
- [LineChart](/appkit/docs/api/appkit-ui/data/LineChart.md): Line Chart component for time-series and trend visualization.
- [PieChart](/appkit/docs/api/appkit-ui/data/PieChart.md): Pie Chart component for proportional data visualization.
- [RadarChart](/appkit/docs/api/appkit-ui/data/RadarChart.md): Radar Chart component for multi-dimensional data comparison.
- [ScatterChart](/appkit/docs/api/appkit-ui/data/ScatterChart.md): Scatter Chart component for correlation and distribution visualization.
- [Styling](/appkit/docs/api/appkit-ui/styling.md): This guide covers how to style AppKit UI components using CSS variables and theming.
- [Accordion](/appkit/docs/api/appkit-ui/ui/Accordion.md): Collapsible content sections organized in a vertical stack
- [Alert](/appkit/docs/api/appkit-ui/ui/Alert.md): Displays important information with optional icon and multiple variants
- [AlertDialog](/appkit/docs/api/appkit-ui/ui/AlertDialog.md): Modal dialog that interrupts the user with critical information requiring immediate action
- [AspectRatio](/appkit/docs/api/appkit-ui/ui/AspectRatio.md): Container that maintains a specific aspect ratio for its content
- [Avatar](/appkit/docs/api/appkit-ui/ui/Avatar.md): Displays user profile picture or initials in a circular container
- [Badge](/appkit/docs/api/appkit-ui/ui/Badge.md): Small label for displaying status, categories, or counts
- [Breadcrumb](/appkit/docs/api/appkit-ui/ui/Breadcrumb.md): Navigation component showing the current page's location in the site hierarchy
- [Button](/appkit/docs/api/appkit-ui/ui/Button.md): Clickable button with multiple variants and sizes
- [ButtonGroup](/appkit/docs/api/appkit-ui/ui/ButtonGroup.md): Container for grouping related buttons together with shared borders
- [Calendar](/appkit/docs/api/appkit-ui/ui/Calendar.md): Date picker component for selecting single dates or date ranges
- [Card](/appkit/docs/api/appkit-ui/ui/Card.md): Container for grouping related content with header, body, and footer sections
- [Carousel](/appkit/docs/api/appkit-ui/ui/Carousel.md): Slideshow component for cycling through content with navigation controls
- [ChartContainer](/appkit/docs/api/appkit-ui/ui/ChartContainer.md): Container for rendering data visualizations using Recharts
- [Checkbox](/appkit/docs/api/appkit-ui/ui/Checkbox.md): Checkbox input for selecting multiple options
- [Collapsible](/appkit/docs/api/appkit-ui/ui/Collapsible.md): Interactive component that expands and collapses content
- [Command](/appkit/docs/api/appkit-ui/ui/Command.md): Command palette for keyboard-driven navigation and actions
- [ContextMenu](/appkit/docs/api/appkit-ui/ui/ContextMenu.md): Menu triggered by right-clicking an element
- [Dialog](/appkit/docs/api/appkit-ui/ui/Dialog.md): Modal dialog that overlays the page content
- [Drawer](/appkit/docs/api/appkit-ui/ui/Drawer.md): Draggable panel that slides in from screen edges
- [DropdownMenu](/appkit/docs/api/appkit-ui/ui/DropdownMenu.md): Menu that displays when triggered by a button or element
- [Empty](/appkit/docs/api/appkit-ui/ui/Empty.md): Empty state component for displaying no-data scenarios
- [Field](/appkit/docs/api/appkit-ui/ui/Field.md): Form field wrapper with label and input positioning
- [FormControl](/appkit/docs/api/appkit-ui/ui/FormControl.md): Wrapper for form control elements with accessibility attributes
- [HoverCard](/appkit/docs/api/appkit-ui/ui/HoverCard.md): Content card that appears when hovering over an element
- [Input](/appkit/docs/api/appkit-ui/ui/Input.md): Text input field for single-line user input
- [InputGroup](/appkit/docs/api/appkit-ui/ui/InputGroup.md): Container for combining input fields with addons and buttons
- [InputOTP](/appkit/docs/api/appkit-ui/ui/InputOTP.md): One-time password input with individual character slots
- [Item](/appkit/docs/api/appkit-ui/ui/Item.md): Flexible container for list items with media, content, and actions
- [Kbd](/appkit/docs/api/appkit-ui/ui/Kbd.md): Visual representation of keyboard keys
- [Label](/appkit/docs/api/appkit-ui/ui/Label.md): Text label associated with form controls
- [Menubar](/appkit/docs/api/appkit-ui/ui/Menubar.md): Horizontal menu bar with dropdown menus
- [NavigationMenu](/appkit/docs/api/appkit-ui/ui/NavigationMenu.md): Horizontal navigation menu with dropdown submenus
- [Pagination](/appkit/docs/api/appkit-ui/ui/Pagination.md): Navigation component for paginated content
- [Popover](/appkit/docs/api/appkit-ui/ui/Popover.md): Floating content panel anchored to a trigger element
- [Progress](/appkit/docs/api/appkit-ui/ui/Progress.md): Visual indicator showing task completion percentage
- [RadioGroup](/appkit/docs/api/appkit-ui/ui/RadioGroup.md): Group of radio buttons for selecting a single option
- [ResizableHandle](/appkit/docs/api/appkit-ui/ui/ResizableHandle.md): Draggable handle for resizing panels
- [ScrollArea](/appkit/docs/api/appkit-ui/ui/ScrollArea.md): Container with custom scrollbars for overflow content
- [Select](/appkit/docs/api/appkit-ui/ui/Select.md): Dropdown control for selecting a value from a list
- [Separator](/appkit/docs/api/appkit-ui/ui/Separator.md): Visual divider line between content sections
- [Sheet](/appkit/docs/api/appkit-ui/ui/Sheet.md): Sliding panel that overlays content from screen edges
- [Sidebar](/appkit/docs/api/appkit-ui/ui/Sidebar.md): Collapsible navigation sidebar with mobile support
- [Skeleton](/appkit/docs/api/appkit-ui/ui/Skeleton.md): Loading placeholder with pulsing animation
- [Slider](/appkit/docs/api/appkit-ui/ui/Slider.md): Draggable input for selecting numeric values within a range
- [Spinner](/appkit/docs/api/appkit-ui/ui/Spinner.md): Animated loading indicator
- [Switch](/appkit/docs/api/appkit-ui/ui/Switch.md): Toggle control for switching between on and off states
- [Table](/appkit/docs/api/appkit-ui/ui/Table.md): Structured data display with rows and columns
- [Tabs](/appkit/docs/api/appkit-ui/ui/Tabs.md): Tabbed interface for organizing content into separate panels
- [Textarea](/appkit/docs/api/appkit-ui/ui/Textarea.md): Multi-line text input field
- [Toaster](/appkit/docs/api/appkit-ui/ui/Toaster.md): Toast notification system for displaying temporary messages
- [Toggle](/appkit/docs/api/appkit-ui/ui/Toggle.md): Button that toggles between pressed and unpressed states
- [ToggleGroup](/appkit/docs/api/appkit-ui/ui/ToggleGroup.md): Group of toggle buttons for selecting one or more options
- [Tooltip](/appkit/docs/api/appkit-ui/ui/Tooltip.md): Brief informational message that appears on hover


Testing

# From repo root
pnpm i
pnpm clean
pnpm pack:sdk

# Then install the local tarball in your test location
cd apps/dev-playground
npm install ../../packages/appkit/tmp/*.tgz --force

# Now, test the commands
npx @databricks/appkit docs
npx @databricks/appkit docs --full
npx @databricks/appkit docs docs.md
npx @databricks/appkit docs plugin
npx @databricks/appkit docs plugins
npx @databricks/appkit docs api
npx @databricks/appkit docs development

@pkosiec pkosiec marked this pull request as ready for review February 27, 2026 13:31
@pkosiec pkosiec requested a review from arsenyinfo February 27, 2026 13:35
@pkosiec
Copy link
Member Author

pkosiec commented Feb 27, 2026

@arsenyinfo PTAL - no need to check the code but at least the PR description with the demo. Thanks!

@pkosiec pkosiec merged commit c03dceb into main Mar 2, 2026
6 checks passed
@pkosiec pkosiec deleted the pkosiec/llms-txt-improvements branch March 2, 2026 17:22
pkosiec added a commit to databricks/databricks-agent-skills that referenced this pull request Mar 2, 2026
…on reference (#24)

## Summary

This PR updates UI components, type generation for AppKit, as well as
how to access the embedded docs with `npx @databricks/appkit` for
upcoming AppKit version.

Related PR: databricks/appkit#142
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants