Generate readable random usernames from adjective, noun, and number patterns.
aliasforge is a small TypeScript utility for creating friendly usernames such as BraveRiver42, calm-lake-07, or HAPPY_FOX_99.
npm install aliasforge
yarn add aliasforge
pnpm add aliasforgeimport { generateUsername } from "aliasforge";
const username = generateUsername();
console.log(username);
// Example: "BrightForest42"import { generateUsername } from "aliasforge";
const username = generateUsername({
separator: "dash",
casing: "lower",
digits: 3,
});
console.log(username);
// Example: "gentle-river-204"Controls how username parts are joined.
Available values:
"none" | "dash" | "underscore" | "dot" | "space";Examples:
generateUsername({ separator: "none" });
// "BraveRiver42"
generateUsername({ separator: "dash" });
// "Brave-River-42"
generateUsername({ separator: "underscore" });
// "Brave_River_42"
generateUsername({ separator: "dot" });
// "Brave.River.42"
generateUsername({ separator: "space" });
// "Brave River 42"Default: "none"
Controls the casing applied to the generated username.
Available values:
"pascal" | "camel" | "lower" | "upper";Examples:
generateUsername({ casing: "pascal" });
// "BraveRiver42"
generateUsername({ casing: "camel" });
// "braveRiver42"
generateUsername({ casing: "lower" });
// "braveriver42"
generateUsername({ casing: "upper" });
// "BRAVERIVER42"Default: "pascal"
Controls how many random digits are appended to the username.
generateUsername({ digits: 4 });
// Example: "BraveRiver2048"
generateUsername({ digits: 0 });
// Example: "BraveRiver"digits must be a non-negative integer.
Default: 2
You can provide custom word lists.
generateUsername({
adjectives: ["quiet", "bright"],
nouns: ["forest", "river"],
});By default, aliasforge includes:
200adjectives300nouns
You can provide a custom random function for deterministic output, useful for testing or seeded generation.
generateUsername({
adjectives: ["calm", "bold"],
nouns: ["lake", "fox"],
digits: 2,
random: () => 0,
});
// "CalmLake00"The function must return a number from 0 to 1, similar to Math.random().
Default: Math.random
Generates a readable random username.
import { generateUsername } from "aliasforge";
const username = generateUsername({
separator: "underscore",
casing: "upper",
digits: 2,
});type GenerateUsernameOptions = {
separator?: UsernameSeparator;
casing?: UsernameCasing;
digits?: number;
adjectives?: readonly string[];
nouns?: readonly string[];
random?: () => number;
};type UsernameSeparator = "none" | "dash" | "underscore" | "dot" | "space";type UsernameCasing = "pascal" | "camel" | "lower" | "upper";The default word lists are also exported.
import { adjectives, nouns } from "aliasforge";
console.log(adjectives.length); // 200
console.log(nouns.length); // 300Install dependencies:
yarn installRun tests:
yarn testBuild the package:
yarn buildMIT