Your next Fable binding starts here.
Generate F# bindings from TypeScript declarations. Bring npm packages into your Fable project, with a report of the types that need your attention.
Declarations in. F# out.
Install the tool, cache its matching TypeScript compiler, and point it at an installed package.
dotnet tool install --global xantham
xantham tsc init
xantham generate ./node_modules/your-package
From generated files to your app
Add the support packages, put files in compile order, and call the package from F#.
Using bindings → Know what changedSee where types lose precision
The generation report identifies widened and unsupported types so you can review the APIs you use.
Reading the report →The types behind your bindings
Use the shared support libraries alongside the generated F#.
Xantham.Fable.Core
F# representations for property keys, indexed access, and nominal brands. Erased by Fable at runtime.
Explore the support library → ECMAScript & DOMXantham.Fable.Core.TS
Generated bindings for TypeScript’s standard libraries, including promises, collections, and browser APIs.
Use the standard libraries →Working with Node.js? See the Node bindings and their current status.
TypeScript.Wire
The .NET client for TypeScript 7’s compiler API. Read syntax trees, query types, and inspect diagnostics from your own tools.
Behind the bindings
15 September 2026How Xantham relates to Glutinum
Shared roots, package graphs, and reusable compiler access from .NET.
Read the post →Help shape Xantham
A small declaration that reproduces a problem, a clearer example, or a generator improvement makes a useful contribution.
Contributor guide →