npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

nihon-name-generator

v1.0.0

Published

A comprehensive library for generating authentic Japanese names with meanings, kanji readings, and cultural context

Readme

Nihon Name Generator

npm version License: MIT

A comprehensive Node.js library for generating authentic Japanese names with kanji, hiragana readings, romaji, and detailed meanings. Perfect for game development, creative writing, testing, and cultural projects.

✨ Features

  • 🎌 Comprehensive Database: Over 2000+ authentic Japanese names
    • 300+ surnames (family names)
    • 600+ male given names
    • 600+ female given names
    • 500+ unisex given names
  • 📖 Detailed Information: Each name includes:
    • Kanji characters (漢字)
    • Hiragana reading (ひらがな)
    • Romaji transliteration
    • Meaning and etymology
    • Kanji count
    • Thematic tags (nature, peace, strength, beauty, love, light, wisdom)
  • 🎯 Flexible Filtering: Filter by gender, kanji count, meaning tags
  • 🔍 Search Functionality: Search names by kanji, romaji, or meaning
  • 📊 Statistics: Get database statistics and available tags
  • 🌐 Full Name Generation: Automatically combine surnames and given names

📦 Installation

npm install nihon-name-generator

🚀 Quick Start

const { 
  generateSurnames, 
  generateGivenNames, 
  generateFullNames,
  searchNames 
} = require('nihon-name-generator');

// Generate random surnames
const surnames = generateSurnames({ count: 3 });
console.log(surnames);
// Output:
// [
//   {
//     kanji: '佐藤',
//     reading: 'さとう',
//     romaji: 'Sato',
//     meaning: 'Sa (help) + To (Fujiwara clan)',
//     kanjiCount: 2,
//     tags: ['strength']
//   },
//   ...
// ]

// Generate male given names
const maleNames = generateGivenNames({ 
  count: 2, 
  gender: 'male',
  tag: 'strength' 
});

// Generate full names
const fullNames = generateFullNames({ 
  count: 5, 
  gender: 'female' 
});

// Search for names
const results = searchNames('yuki', { type: 'given' });

📚 API Documentation

generateSurnames(options)

Generate random Japanese surnames.

Parameters:

  • options.count (number, optional): Number of names to generate (1-10). Default: 1
  • options.kanjiCount (string|number, optional): Filter by kanji count (1, 2, 3, or 'all'). Default: 'all'
  • options.tag (string, optional): Filter by tag ('nature', 'peace', 'strength', 'beauty', 'love', 'light', 'wisdom', or 'all'). Default: 'all'

Returns: Array of surname objects

generateGivenNames(options)

Generate random Japanese given names.

Parameters:

  • options.count (number, optional): Number of names to generate (1-10). Default: 1
  • options.gender (string, optional): Gender filter ('male', 'female', 'unisex', or 'all'). Default: 'all'
  • options.kanjiCount (string|number, optional): Filter by kanji count. Default: 'all'
  • options.tag (string, optional): Filter by tag. Default: 'all'

Returns: Array of given name objects

generateFullNames(options)

Generate complete Japanese names (surname + given name).

Parameters:

  • options.count (number, optional): Number of full names to generate (1-10). Default: 1
  • options.gender (string, optional): Gender filter for given name. Default: 'all'
  • options.tag (string, optional): Filter by tag. Default: 'all'

Returns: Array of full name objects with combined information

searchNames(query, options)

Search for names by kanji, romaji, or meaning.

Parameters:

  • query (string): Search term
  • options.type (string, optional): Type filter ('surname', 'given', or 'all'). Default: 'all'
  • options.gender (string, optional): Gender filter for given names. Default: 'all'

Returns: Array of matching name objects

getAvailableTags()

Get list of all available meaning tags.

Returns: Array of tag strings

getStats()

Get database statistics.

Returns: Object with counts of surnames, male/female/unisex names, and available tags

💡 Usage Examples

Example 1: Character Name Generator

const { generateFullNames } = require('nihon-name-generator');

function createCharacter(gender, theme) {
  const names = generateFullNames({ 
    count: 1, 
    gender: gender,
    tag: theme 
  });
  
  const character = names[0];
  console.log(`
Character Name: ${character.kanji}
Reading: ${character.reading}
Romaji: ${character.romaji}
Meaning: ${character.meaning}
Themes: ${character.tags.join(', ')}
  `);
}

createCharacter('female', 'beauty');

Example 2: Name with Specific Kanji Count

const { generateGivenNames } = require('nihon-name-generator');

// Generate names with exactly 2 kanji characters
const names = generateGivenNames({ 
  count: 5, 
  gender: 'male',
  kanjiCount: 2 
});

names.forEach(name => {
  console.log(`${name.kanji} (${name.romaji}) - ${name.meaning}`);
});

Example 3: Theme-Based Name Generator

const { generateFullNames } = require('nihon-name-generator');

// Generate names with nature theme
const natureNames = generateFullNames({ 
  count: 10, 
  tag: 'nature' 
});

console.log('Nature-themed Japanese names:');
natureNames.forEach(name => {
  console.log(`${name.romaji}: ${name.kanji} - ${name.meaning}`);
});

Example 4: Name Search

const { searchNames } = require('nihon-name-generator');

// Search for names containing "sakura" (cherry blossom)
const results = searchNames('sakura');

console.log(`Found ${results.length} names related to "sakura":`);
results.forEach(result => {
  console.log(`- ${result.kanji} (${result.romaji}): ${result.meaning}`);
});

🎨 Meaning Tags

Names are categorized with thematic tags:

  • nature: Names related to natural elements (trees, mountains, rivers, flowers)
  • peace: Names representing harmony, tranquility, and peace
  • strength: Names symbolizing power, courage, and resilience
  • beauty: Names associated with aesthetics and elegance
  • love: Names expressing affection, kindness, and warmth
  • light: Names related to brightness, illumination, and clarity
  • wisdom: Names representing knowledge, intelligence, and enlightenment

🌐 Website

Check out the interactive web version: Japanese Name Generator

The website features:

  • Interactive name generation with real-time filters
  • Beautiful cherry blossom animations
  • Detailed name explanations
  • Name search functionality
  • Cultural insights about Japanese naming traditions

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

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

🙏 Acknowledgments

  • Name database compiled from authentic Japanese naming resources
  • Cultural meanings and readings verified for accuracy
  • Inspired by traditional Japanese naming conventions and kanji etymology

📮 Support

If you have any questions or suggestions, please:

🔗 Related Projects


Made with ❤️ for Japanese language and culture enthusiasts