// Programmatically interact with the Hub
await createRepo({
repo: { type: "model", name: "my-user/nlp-model" },
accessToken: HF_TOKEN
});
await uploadFile({
repo: "my-user/nlp-model",
accessToken: HF_TOKEN,
// Can work with native File in browsers
file: {
path: "pytorch_model.bin",
content: new Blob(...)
}
});
// Use all supported Inference Providers!
await inference.chatCompletion({
model: "meta-llama/Llama-3.1-8B-Instruct",
provider: "sambanova", // or together, fal-ai, replicate, cohere …
messages: [
{
role: "user",
content: "Hello, nice to meet you!",
},
],
max_tokens: 512,
temperature: 0.5,
});
await inference.textToImage({
model: "black-forest-labs/FLUX.1-dev",
provider: "replicate",
inputs: "a picture of a green bird",
});
// and much more…
Hugging Face JS libraries
This is a collection of JS libraries to interact with the Hugging Face API, with TS types included.
@huggingface/hub: Interact with huggingface.co to create or delete repos and commit / download files
@huggingface/inference: Use all supported (serverless) Inference Providers or switch to Inference Endpoints (dedicated) to make calls to 100,000+ Machine Learning models
@huggingface/mcp-client: A Model Context Protocol (MCP) client, and a tiny Agent library, built on top of InferenceClient.
@huggingface/gguf: A GGUF parser that works on remotely hosted files.
@huggingface/dduf: Similar package for DDUF (DDUF Diffusers Unified Format)
@huggingface/tasks: The definition files and source-of-truth for the Hub’s main primitives like pipeline tasks, model libraries, etc.
@huggingface/jinja: A minimalistic JS implementation of the Jinja templating engine, to be used for ML chat templates.
import { createRepo, commit, deleteRepo, listFiles } from "@huggingface/hub";
import { InferenceClient } from "@huggingface/inference";
import { McpClient } from "@huggingface/mcp-client";
import type { RepoId } from "@huggingface/hub";
From CDN or Static hosting
You can run our packages with vanilla JS, without any bundler, by using a CDN or static hosting. Using ES modules, i.e. <script type="module">, you can import the libraries in your code:
<script type="module">
import { InferenceClient } from 'https://cdn.jsdelivr.net/npm/@huggingface/inference@4.13.15/+esm';
import { createRepo, commit, deleteRepo, listFiles } from "https://cdn.jsdelivr.net/npm/@huggingface/hub@2.11.0/+esm";
</script>
Deno
// esm.sh
import { InferenceClient } from "https://esm.sh/@huggingface/inference"
import { createRepo, commit, deleteRepo, listFiles } from "https://esm.sh/@huggingface/hub"
// or npm:
import { InferenceClient } from "npm:@huggingface/inference"
import { createRepo, commit, deleteRepo, listFiles } from "npm:@huggingface/hub"
Hugging Face JS libraries
This is a collection of JS libraries to interact with the Hugging Face API, with TS types included.
mini_headeroutside Hugging FaceWe use modern features to avoid polyfills and dependencies, so the libraries will only work on modern browsers / Node.js >= 18 / Bun / Deno.
The libraries are still very young, please help us by opening issues!
Installation
From NPM
To install via NPM, you can download the libraries as needed:
Then import the libraries in your code:
From CDN or Static hosting
You can run our packages with vanilla JS, without any bundler, by using a CDN or static hosting. Using ES modules, i.e.
<script type="module">, you can import the libraries in your code:Deno
Usage examples
Get your HF access token in your account settings.
@huggingface/inference examples
@huggingface/hub examples
@huggingface/mcp-client example
There are more features of course, check each library’s README!
Formatting & testing
Building
This will generate ESM and CJS javascript files in
packages/*/dist, egpackages/inference/dist/index.mjs.