## For AI Agents/Assistants

To view specific documentation files referenced below, use the appkit CLI:

```bash
npx @databricks/appkit docs <path>
```

Examples:
- View main documentation: `npx @databricks/appkit docs`
- View specific file: `npx @databricks/appkit docs ./docs/docs.md`
- View API reference: `npx @databricks/appkit docs ./docs/docs/api.md`
- View component docs: `npx @databricks/appkit docs ./docs/docs/api/appkit-ui/components/Sidebar.md`

The CLI will display the documentation content directly in the terminal.

---

# AppKit

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


## Appkit

- [Getting started](./docs/docs.md): Learn how to get started with AppKit.
- [API reference](./docs/docs/api.md): This section contains the API reference for the AppKit packages.
- [@databricks/appkit](./docs/docs/api/appkit.md): Core library for building Databricks applications with type-safe SQL queries,
- [Abstract Class: AppKitError](./docs/docs/api./docs/Class.AppKitError.md): Base error class for all AppKit errors.
- [Class: AuthenticationError](./docs/docs/api./docs/Class.AuthenticationError.md): Error thrown when authentication fails.
- [Class: ConfigurationError](./docs/docs/api./docs/Class.ConfigurationError.md): Error thrown when configuration is missing or invalid.
- [Class: ConnectionError](./docs/docs/api./docs/Class.ConnectionError.md): Error thrown when a connection or network operation fails.
- [Class: ExecutionError](./docs/docs/api./docs/Class.ExecutionError.md): Error thrown when an operation execution fails.
- [Class: InitializationError](./docs/docs/api./docs/Class.InitializationError.md): Error thrown when a service or component is not properly initialized.
- [Abstract Class: Plugin<TConfig>](./docs/docs/api./docs/Class.Plugin.md): Base abstract class for creating AppKit plugins.
- [Class: ResourceRegistry](./docs/docs/api./docs/Class.ResourceRegistry.md): Central registry for tracking plugin resource requirements.
- [Class: ServerError](./docs/docs/api./docs/Class.ServerError.md): Error thrown when server lifecycle operations fail.
- [Class: TunnelError](./docs/docs/api./docs/Class.TunnelError.md): Error thrown when remote tunnel operations fail.
- [Class: ValidationError](./docs/docs/api./docs/Class.ValidationError.md): Error thrown when input validation fails.
- [Enumeration: RequestedClaimsPermissionSet](./docs/docs/api./docs/Enumeration.RequestedClaimsPermissionSet.md): Permission set for Unity Catalog table access
- [Enumeration: ResourceType](./docs/docs/api./docs/Enumeration.ResourceType.md): Resource types from schema $defs.resourceType.enum
- [Function: appKitTypesPlugin()](./docs/docs/api./docs/Function.appKitTypesPlugin.md): Vite plugin to generate types for AppKit queries.
- [Function: createApp()](./docs/docs/api./docs/Function.createApp.md): Bootstraps AppKit with the provided configuration.
- [Function: createLakebasePool()](./docs/docs/api./docs/Function.createLakebasePool.md): Create a Lakebase pool with appkit's logger integration.
- [Function: generateDatabaseCredential()](./docs/docs/api./docs/Function.generateDatabaseCredential.md): Generate OAuth credentials for Postgres database connection using the proper Postgres API.
- [Function: getExecutionContext()](./docs/docs/api./docs/Function.getExecutionContext.md): Get the current execution context.
- [Function: getLakebaseOrmConfig()](./docs/docs/api./docs/Function.getLakebaseOrmConfig.md): Get Lakebase connection configuration for ORMs that don't accept pg.Pool directly.
- [Function: getLakebasePgConfig()](./docs/docs/api./docs/Function.getLakebasePgConfig.md): Get Lakebase connection configuration for PostgreSQL clients.
- [Function: getPluginManifest()](./docs/docs/api./docs/Function.getPluginManifest.md): Loads and validates the manifest from a plugin constructor.
- [Function: getResourceRequirements()](./docs/docs/api./docs/Function.getResourceRequirements.md): Gets the resource requirements from a plugin's manifest.
- [Function: getUsernameWithApiLookup()](./docs/docs/api./docs/Function.getUsernameWithApiLookup.md): Resolves the PostgreSQL username for a Lakebase connection.
- [Function: getWorkspaceClient()](./docs/docs/api./docs/Function.getWorkspaceClient.md): Get workspace client from config or SDK default auth chain
- [Function: isSQLTypeMarker()](./docs/docs/api./docs/Function.isSQLTypeMarker.md): Type guard to check if a value is a SQL type marker
- [Interface: BasePluginConfig](./docs/docs/api./docs/Interface.BasePluginConfig.md): Base configuration interface for AppKit plugins
- [Interface: CacheConfig](./docs/docs/api./docs/Interface.CacheConfig.md): Configuration for caching
- [Interface: DatabaseCredential](./docs/docs/api./docs/Interface.DatabaseCredential.md): Database credentials with OAuth token for Postgres connection
- [Interface: GenerateDatabaseCredentialRequest](./docs/docs/api./docs/Interface.GenerateDatabaseCredentialRequest.md): Request parameters for generating database OAuth credentials
- [Interface: ITelemetry](./docs/docs/api./docs/Interface.ITelemetry.md): Plugin-facing interface for OpenTelemetry instrumentation.
- [Interface: LakebasePoolConfig](./docs/docs/api./docs/Interface.LakebasePoolConfig.md): Configuration for creating a Lakebase connection pool
- [Interface: PluginManifest](./docs/docs/api./docs/Interface.PluginManifest.md): Plugin manifest that declares metadata and resource requirements.
- [Interface: RequestedClaims](./docs/docs/api./docs/Interface.RequestedClaims.md): Optional claims for fine-grained Unity Catalog table permissions
- [Interface: RequestedResource](./docs/docs/api./docs/Interface.RequestedResource.md): Resource to request permissions for in Unity Catalog
- [Interface: ResourceEntry](./docs/docs/api./docs/Interface.ResourceEntry.md): Internal representation of a resource in the registry.
- [Interface: ResourceFieldEntry](./docs/docs/api./docs/Interface.ResourceFieldEntry.md): Defines a single field for a resource. Each field has its own environment variable and optional description.
- [Interface: ResourceRequirement](./docs/docs/api./docs/Interface.ResourceRequirement.md): Declares a resource requirement for a plugin.
- [Interface: StreamExecutionSettings](./docs/docs/api./docs/Interface.StreamExecutionSettings.md): Configuration for streaming execution with default and user-scoped settings
- [Interface: TelemetryConfig](./docs/docs/api./docs/Interface.TelemetryConfig.md): OpenTelemetry configuration for AppKit applications
- [Interface: ValidationResult](./docs/docs/api./docs/Interface.ValidationResult.md): Result of validating all registered resources against the environment.
- [Type Alias: ConfigSchema](./docs/docs/api./docs/TypeAlias.ConfigSchema.md): Configuration schema definition for plugin config.
- [Type Alias: IAppRouter](./docs/docs/api./docs/TypeAlias.IAppRouter.md): Express router type for plugin route registration
- [Type Alias: ResourcePermission](./docs/docs/api./docs/TypeAlias.ResourcePermission.md): Union of all possible permission levels across all resource types.
- [Type Alias: ToPlugin()<T, U, N>](./docs/docs/api./docs/TypeAlias.ToPlugin.md): Type Parameters
- [Variable: sql](./docs/docs/api./docs/Variable.sql.md): SQL helper namespace
- [@databricks/appkit-ui](./docs/docs/api/appkit-ui.md): The library provides a set of UI primitives for building Databricks apps in React.
- [AreaChart](./docs/docs/api/appkit-ui/data/AreaChart.md): Area Chart component for trend visualization with filled areas.
- [BarChart](./docs/docs/api/appkit-ui/data/BarChart.md): Bar Chart component for categorical comparisons.
- [DataTable](./docs/docs/api/appkit-ui/data/DataTable.md): Production-ready data table with automatic data fetching and state management
- [DonutChart](./docs/docs/api/appkit-ui/data/DonutChart.md): Donut Chart component (Pie chart with inner radius).
- [HeatmapChart](./docs/docs/api/appkit-ui/data/HeatmapChart.md): Heatmap Chart component for matrix-style data visualization.
- [LineChart](./docs/docs/api/appkit-ui/data/LineChart.md): Line Chart component for time-series and trend visualization.
- [PieChart](./docs/docs/api/appkit-ui/data/PieChart.md): Pie Chart component for proportional data visualization.
- [RadarChart](./docs/docs/api/appkit-ui/data/RadarChart.md): Radar Chart component for multi-dimensional data comparison.
- [ScatterChart](./docs/docs/api/appkit-ui/data/ScatterChart.md): Scatter Chart component for correlation and distribution visualization.
- [Styling](./docs/docs/api/appkit-ui/styling.md): This guide covers how to style AppKit UI components using CSS variables and theming.
- [Accordion](./docs/docs/api/appkit-ui/ui/Accordion.md): Collapsible content sections organized in a vertical stack
- [Alert](./docs/docs/api/appkit-ui/ui/Alert.md): Displays important information with optional icon and multiple variants
- [AlertDialog](./docs/docs/api/appkit-ui/ui/AlertDialog.md): Modal dialog that interrupts the user with critical information requiring immediate action
- [AspectRatio](./docs/docs/api/appkit-ui/ui/AspectRatio.md): Container that maintains a specific aspect ratio for its content
- [Avatar](./docs/docs/api/appkit-ui/ui/Avatar.md): Displays user profile picture or initials in a circular container
- [Badge](./docs/docs/api/appkit-ui/ui/Badge.md): Small label for displaying status, categories, or counts
- [Breadcrumb](./docs/docs/api/appkit-ui/ui/Breadcrumb.md): Navigation component showing the current page's location in the site hierarchy
- [Button](./docs/docs/api/appkit-ui/ui/Button.md): Clickable button with multiple variants and sizes
- [ButtonGroup](./docs/docs/api/appkit-ui/ui/ButtonGroup.md): Container for grouping related buttons together with shared borders
- [Calendar](./docs/docs/api/appkit-ui/ui/Calendar.md): Date picker component for selecting single dates or date ranges
- [Card](./docs/docs/api/appkit-ui/ui/Card.md): Container for grouping related content with header, body, and footer sections
- [Carousel](./docs/docs/api/appkit-ui/ui/Carousel.md): Slideshow component for cycling through content with navigation controls
- [ChartContainer](./docs/docs/api/appkit-ui/ui/ChartContainer.md): Container for rendering data visualizations using Recharts
- [Checkbox](./docs/docs/api/appkit-ui/ui/Checkbox.md): Checkbox input for selecting multiple options
- [Collapsible](./docs/docs/api/appkit-ui/ui/Collapsible.md): Interactive component that expands and collapses content
- [Command](./docs/docs/api/appkit-ui/ui/Command.md): Command palette for keyboard-driven navigation and actions
- [ContextMenu](./docs/docs/api/appkit-ui/ui/ContextMenu.md): Menu triggered by right-clicking an element
- [Dialog](./docs/docs/api/appkit-ui/ui/Dialog.md): Modal dialog that overlays the page content
- [Drawer](./docs/docs/api/appkit-ui/ui/Drawer.md): Draggable panel that slides in from screen edges
- [DropdownMenu](./docs/docs/api/appkit-ui/ui/DropdownMenu.md): Menu that displays when triggered by a button or element
- [Empty](./docs/docs/api/appkit-ui/ui/Empty.md): Empty state component for displaying no-data scenarios
- [Field](./docs/docs/api/appkit-ui/ui/Field.md): Form field wrapper with label and input positioning
- [FormControl](./docs/docs/api/appkit-ui/ui/FormControl.md): Wrapper for form control elements with accessibility attributes
- [HoverCard](./docs/docs/api/appkit-ui/ui/HoverCard.md): Content card that appears when hovering over an element
- [Input](./docs/docs/api/appkit-ui/ui/Input.md): Text input field for single-line user input
- [InputGroup](./docs/docs/api/appkit-ui/ui/InputGroup.md): Container for combining input fields with addons and buttons
- [InputOTP](./docs/docs/api/appkit-ui/ui/InputOTP.md): One-time password input with individual character slots
- [Item](./docs/docs/api/appkit-ui/ui/Item.md): Flexible container for list items with media, content, and actions
- [Kbd](./docs/docs/api/appkit-ui/ui/Kbd.md): Visual representation of keyboard keys
- [Label](./docs/docs/api/appkit-ui/ui/Label.md): Text label associated with form controls
- [Menubar](./docs/docs/api/appkit-ui/ui/Menubar.md): Horizontal menu bar with dropdown menus
- [NavigationMenu](./docs/docs/api/appkit-ui/ui/NavigationMenu.md): Horizontal navigation menu with dropdown submenus
- [Pagination](./docs/docs/api/appkit-ui/ui/Pagination.md): Navigation component for paginated content
- [Popover](./docs/docs/api/appkit-ui/ui/Popover.md): Floating content panel anchored to a trigger element
- [Progress](./docs/docs/api/appkit-ui/ui/Progress.md): Visual indicator showing task completion percentage
- [RadioGroup](./docs/docs/api/appkit-ui/ui/RadioGroup.md): Group of radio buttons for selecting a single option
- [ResizableHandle](./docs/docs/api/appkit-ui/ui/ResizableHandle.md): Draggable handle for resizing panels
- [ScrollArea](./docs/docs/api/appkit-ui/ui/ScrollArea.md): Container with custom scrollbars for overflow content
- [Select](./docs/docs/api/appkit-ui/ui/Select.md): Dropdown control for selecting a value from a list
- [Separator](./docs/docs/api/appkit-ui/ui/Separator.md): Visual divider line between content sections
- [Sheet](./docs/docs/api/appkit-ui/ui/Sheet.md): Sliding panel that overlays content from screen edges
- [Sidebar](./docs/docs/api/appkit-ui/ui/Sidebar.md): Collapsible navigation sidebar with mobile support
- [Skeleton](./docs/docs/api/appkit-ui/ui/Skeleton.md): Loading placeholder with pulsing animation
- [Slider](./docs/docs/api/appkit-ui/ui/Slider.md): Draggable input for selecting numeric values within a range
- [Spinner](./docs/docs/api/appkit-ui/ui/Spinner.md): Animated loading indicator
- [Switch](./docs/docs/api/appkit-ui/ui/Switch.md): Toggle control for switching between on and off states
- [Table](./docs/docs/api/appkit-ui/ui/Table.md): Structured data display with rows and columns
- [Tabs](./docs/docs/api/appkit-ui/ui/Tabs.md): Tabbed interface for organizing content into separate panels
- [Textarea](./docs/docs/api/appkit-ui/ui/Textarea.md): Multi-line text input field
- [Toaster](./docs/docs/api/appkit-ui/ui/Toaster.md): Toast notification system for displaying temporary messages
- [Toggle](./docs/docs/api/appkit-ui/ui/Toggle.md): Button that toggles between pressed and unpressed states
- [ToggleGroup](./docs/docs/api/appkit-ui/ui/ToggleGroup.md): Group of toggle buttons for selecting one or more options
- [Tooltip](./docs/docs/api/appkit-ui/ui/Tooltip.md): Brief informational message that appears on hover
- [App management](./docs/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](./docs/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.
- [Development](./docs/docs/category/development.md): Guides for developing AppKit applications
- [Configuration](./docs/docs/configuration.md): This guide covers environment variables and configuration options for AppKit applications.
- [Core principles](./docs/docs/core-principles.md): Learn about the fundamental concepts and principles behind AppKit.
- [Development](./docs/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.
- [AI-Assisted development](./docs/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](./docs/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](./docs/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](./docs/docs/development/project-setup.md): This guide covers the recommended project structure and scaffolding for AppKit applications.
- [Remote Bridge](./docs/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](./docs/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](./docs/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.
- [Analytics plugin](./docs/docs/plugins/analytics.md): Enables SQL query execution against Databricks SQL Warehouses.
- [Caching](./docs/docs/plugins/caching.md): AppKit provides both global and plugin-level caching capabilities.
- [Creating custom plugins](./docs/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](./docs/docs/plugins/execution-context.md): AppKit manages Databricks authentication via two contexts:
- [Lakebase plugin](./docs/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](./docs/docs/plugins/plugin-management.md): AppKit includes a CLI for managing plugins. All commands are available under npx @databricks/appkit plugin.
- [Server plugin](./docs/docs/plugins/server.md): Provides HTTP server capabilities with development and production modes.
