π¦ CHONK your texts in TypeScript with Chonkie!β¨ The no-nonsense lightweight and efficient chunking library.
Installation β’ Usage β’ Chunkers β’ Acknowledgements β’ Citation
We built chonkie-ts
while developing a TypeScript web app that needed fast, on-the-fly text chunking for RAG applications. After trying several existing libraries, we found them either too heavy or not flexible enough for our needs. chonkie-ts
is a port of the original chonkie
library, but with some type-safety and a few extra features to make it more useful for TypeScript developers!
π Feature-rich: All the CHONKs you'd ever need
β¨ Easy to use: Install, Import, CHONK
β‘ Fast: CHONK at the max speed of TypeScript! tssssooooooom
πͺΆ Light-weight: No bloat, just CHONK
π¦ Cute CHONK mascot: psst it's a pygmy hippo btw
β€οΈ Moto Moto's favorite TypeScript library
Chonkie is a chunking library that "just works" β¨
Note
This library is not a binding but a port of the original chonkie
library written in Python, to TypeScript. This library is still under active development and not at feature parity with the original chonkie
library yet. Please bear with us! π«
Simply install Chonkie using npm:
npm install chonkie
Chonkie believes in having minimum default dependencies, and maximum flexibility, and so we have a lot of optional dependencies that you can opt out of if you don't need them. You can get the minimal install by running:
npm install chonkie --omit=optional
Learn more about the optional dependencies in the DOCS.md file.
Chonkie is a simple and easy to use library for chunking text. It is designed to be used in any project that needs to chunk text, and is a great way to get started with text chunking.
import { TokenChunker } from 'chonkie';
async function main() {
// Create a token chunker with default options
const chunker = await TokenChunker.create();
// Chunk a string
const chunks = await chunker.chunk('Woah! Chonkie is such a great ts library!');
// Print the chunks
for (const chunk of chunks) {
console.log(chunk.text);
console.log(chunk.token_count);
}
}
main();
More examples can be found in the DOCS or in the examples folder.
chonkie-ts
is currently a work in progress and does not have feature parity with the original chonkie
library yet. Here's an overview of the chunkers that are currently implemented:
Name | Description |
---|---|
TokenChunker |
Splits text into fixed-size token chunks |
SentenceChunker |
Splits text into chunks based on sentences. |
RecursiveChunker |
Splits text hierarchically using customizable rules to create semantically meaningful chunks. |
CodeChunker |
Splits code into structurally meaningful chunks. |
Want to help grow Chonkie? Check out CONTRIBUTING.md to get started! Whether you're fixing bugs, adding features, improving docs, or simply leaving a βοΈ on the repo, every contribution helps make Chonkie a better CHONK for everyone.
Remember: No contribution is too small for this tiny hippo!
Chonkie would like to CHONK its way through a special thanks to all the users and contributors who have helped make this library what it is today! Your feedback, issue reports, and improvements have helped make Chonkie the CHONKIEST it can be.
And of course, special thanks to Moto Moto for endorsing Chonkie with his famous quote:
"I like them big, I like them chonkie in TypeScript" ~ Moto Moto... definitly did not say this
If you use Chonkie in your research, please cite it as follows:
@software{chonkie2025,
author = {Bhavnick Minhas and Shreyash Nigam},
title = {Chonkie: A no-nonsense fast, lightweight, and efficient text chunking library},
year = {2025},
publisher = {GitHub},
howpublished = {\url{https://github.com/chonkie-inc/chonkie}},
}