A Markov Chain library written in Typescript.

Usage no npm install needed!

<script type="module">
  import 0x77MarkovTypescript from 'https://cdn.skypack.dev/@0x77/markov-typescript';



A Markov Chain library written in TypeScript, inspired by otac0n/markov and chriscore/MarkovSharp.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.


yarn add @0x77/markov-typescript


Import types from package:

import * as Markov from "@0x77/markov-typescript";

Code sample

const chain = new MarkovChain<string>(2);
chain.learn("the quick brown fox jumped over the lazy dog".split(" "));
chain.learn("the quick brown dog jumped over the lazy cat".split(" "));
chain.learn("the quick brown cat jumped over the lazy fox".split(" "));
for (let x = 0; x < 10; x++) {
  console.log(chain.walk().join(" "));

Building the project

yarn build


We use SemVer for versioning. For the versions available, see the tags on this repository.


  • Tom Wolfe - Initial work - trwolfe13
  • Mikahil Marynenko - Dependencies, package optimizations - trwolfe13

See also the list of contributors who participated in this project.


This project is licensed under the MIT License - see the LICENSE file for details


  • Thanks to otac0n for the original .NET codebase.
  • Thanks to chriscore for the second reference and unit tests.