# Libra SDK - [Libra SDK](https://sdk.docs.libratech.ai/index.md): Embed Libra's AI legal research chat in any Wolters Kluwer product with one script and one function call - [Quickstart](https://sdk.docs.libratech.ai/getting-started/quickstart.md): From an empty page to a working Libra chat widget - [How it works](https://sdk.docs.libratech.ai/getting-started/how-it-works.md): The SDK's lifecycle, its isolation model, and what survives between calls - [Playground](https://sdk.docs.libratech.ai/getting-started/playground.md): Exercise every SDK call against staging without writing code - [Installation](https://sdk.docs.libratech.ai/guides/installation.md): npm from WK Artifactory, or the WK CDN as an ES module or classic script - [Embedding](https://sdk.docs.libratech.ai/guides/embedding.md): Containers, header ownership, stacking context, and SPA route changes - [Panel and placement](https://sdk.docs.libratech.ai/guides/panel-and-placement.md): Where the widget lives on your page, how wide it should be, and who owns the frame around it - [Authentication](https://sdk.docs.libratech.ai/guides/authentication.md): The built-in Auth0 popup flow, auth events, account gating, and sign-out - [Proxy mode (BFF)](https://sdk.docs.libratech.ai/guides/proxy-mode.md): Route every SDK request through your own backend and exchange your product's token for a Libra token server-side - [Locales](https://sdk.docs.libratech.ai/guides/locales.md): Ship only the languages you need and switch them at runtime - [Citation clicks](https://sdk.docs.libratech.ai/guides/citations.md): Open cited sources inside your own platform instead of a new tab - [Document suggestions](https://sdk.docs.libratech.ai/guides/document-suggestions.md): Offer the document the user is reading as context for the conversation - [Chat handoff](https://sdk.docs.libratech.ai/guides/chat-handoff.md): Reopen a cited chat from your product, and how users move between the widget and the main Libra app - [Security headers](https://sdk.docs.libratech.ai/guides/security-headers.md): The CSP, framing and permissions headers an SDK-enabled page needs - [Integration best practices](https://sdk.docs.libratech.ai/guides/best-practices.md): A checklist distilled from the SDK's contract and the integrations that went smoothly - [Capabilities](https://sdk.docs.libratech.ai/capabilities/overview.md): What end users get when a Wolters Kluwer product embeds the Libra SDK - [The chat surface](https://sdk.docs.libratech.ai/capabilities/chat.md): The composer, answer modes, voice input, answer actions, and how citations are presented - [Context and sources](https://sdk.docs.libratech.ai/capabilities/context-and-sources.md): What the widget can draw on: research sources, the document on screen, uploads, mentions, projects and history - [Plans and limits](https://sdk.docs.libratech.ai/capabilities/plans-and-limits.md): What each subscription includes, the usage limits users hit, and what only the Libra Workspace can do - [Products and sources](https://sdk.docs.libratech.ai/capabilities/products-and-sources.md): The product IDs the SDK accepts and the research sources each one can search - [API reference](https://sdk.docs.libratech.ai/reference/api.md): Every Libra.* method and every init() option - [Types](https://sdk.docs.libratech.ai/reference/types.md): The TypeScript types exported by @libra/sdk - [Changelog](https://sdk.docs.libratech.ai/changelog.md): Every @libra/sdk release, newest first This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.