Non Programming Manager

    TypeScript icon, indicating that this package has built-in type declarations

    6.4.0 • Public • Published


    Build Status dependencies Status Code Climate JavaScript Style Guide

    Secure passwords that humans can read 🔒💬


    // pick up your style!
    yarn add semantic-password-generator
    npm install semantic-password-generator


    The Semantic Password Generator (spg) uses the official Wikipedia API to get random articles which are transformed into the passwords. Hence, to allow a better usage of the network bandwich spg generates the password in 2 steps:

    1. Load a generator with a Wikipedia article
    2. Use the generator to get passwords
    import spg from 'semantic-password-generator'
    const generator = await spg()
    const password = generator()

    You can then safely generate multiple (similar) passwords with the same generator.

    while (passwords.length < 50) {

    The generator accepts a length argument. Note that the length won't be enforced. This means that if you want, say, a 10 chars length password. spg probably will return a bit longer one that you can trim if you want to. This is because spg tries to keep a logic sentences as much as possible and forcing a hard length will cut the last word almost all the times.

    const spg = require('semantic-password-generator')
    spg().then((generator) => {
      const password = generator(32)

    Notice that internally spg ensures a minimum password length of 8. And a maximum as large as the Wikipedia article can provide. If you need less than 8 (please don't) you can trim it. If you want a larger one you can combine multiple generated passwords.


    To explore the lib and explore it check out the /demo directory. Here's a snapshot of the final component:

    import React from 'react'
    import spg from 'semantic-password-generator'
    class App extends React.Component {
      constructor (props) {
        this.state = { password: '' }
      async renewGenerator () {
        this.generator = await spg()
      onClickGenerate () {
        return () => {
          if (this.generator) {
            // always renew the generator to get 100% different passwords
            // using the current generator create a new one with default values
              password: this.generator()
      render () {
        return (
            <button onClick={this.onClickGenerate()}>

      This feature is exclusive to Teams

      Illustration of wombats

      The package file explorer is only available for Teams at the moment.

      We may support exploring this package in the future. Check back soon.


      npm i semantic-password-generator

      DownloadsWeekly Downloads






      Unpacked Size

      66.6 kB

      Total Files


      Last publish


      • sospedra