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

robuscode

v1.2.1

Published

Générateur sécurisé de mots de passe en ligne de commande.

Readme

Robuscode CLI

Robuscode CLI est un générateur de mots de passe sécurisé utilisable directement depuis un terminal. Il est conçu pour être lancé rapidement avec npx, sans installation globale obligatoire.

Le nom npm du package est robuscode, et la commande exécutée est robuscode.

Mode interactif (plein écran)

Lancer npx robuscode sans option ouvre une interface plein écran dans le terminal :

  • Un seul input qui porte toute la configuration, dans un parcours guidé : le libellé dans la bordure indique l'étape en cours (Longueur du mot de passe · 1/7)
  • Nom en gros caractères : logo dégradé, avec une police adaptée à la largeur du terminal
  • Tout est aligné sur le nom : logo, tagline, résumé, cartes et barre de raccourcis partagent exactement la même colonne
  • Entropie en direct : le bloc résultats affiche le nombre de bits et la force estimée
  • Thème automatique : sombre ou clair selon COLORFGBG, forçable avec --theme dark|light
  • Copie dans le presse-papier avec c (Windows, macOS, Linux), avec retour ✔ copié ou ✖ rien à copier
  • Compatible NO_COLOR, et se dégrade proprement sur terminal étroit

Le parcours

valide l'étape courante et passe à la suivante : longueur → nombre de mots de passe → minuscules → majuscules → chiffres → symboles → caractères ambigus → prêt à générer. L'étape finale affiche l'entropie et un ⏎ générer.

Rien n'est imposé : g génère à tout moment avec les valeurs par défaut, et ↑ ↓ permet de sauter directement à n'importe quel réglage.

Raccourcis

| Touche | Action | |---|---| | g / r | Générer / régénérer, à tout moment | | | Valider l'étape et passer à la suivante (génère à l'étape « prêt ») | | / k j | Sauter à un réglage (ou choisir un résultat) | | | Déplacer le curseur pendant la saisie (retour en arrière à l'étape « prêt ») | | Espace | Activer / désactiver une catégorie | | Tab | Basculer entre les réglages et les résultats | | c | Copier le mot de passe sélectionné | | v | Masquer ou révéler | | h | Afficher l'aide | | q / Ctrl+C | Quitter (les mots de passe restent affichés) | | Échap | Annuler la saisie en cours |

La barre du bas est contextuelle : elle n'affiche que les commandes disponibles à cet instant, et se réduit automatiquement sur terminal étroit.

npx robuscode
npx robuscode --theme light

Pour une génération scriptable (sans saisie), passer directement les options ci-dessous.

Pour générer un mot de passe de 24 caractères en sélectionnant explicitement les quatre catégories principales :

npx robuscode --length 24 --lowercase --uppercase --digits --symbols

Pour éviter les caractères ambigus, comme O, 0, I, l et 1 :

npx robuscode --length 24 -L -U -d -s --exclude "O0Il1"

Par défaut, si aucune catégorie n’est indiquée, les minuscules, les majuscules, les chiffres et les symboles sont utilisés.

Options disponibles

| Option | Description | Exemple | |---|---|---| | -l, --length | Définit la longueur du mot de passe. La valeur par défaut est 20. | --length 32 | | -n, --count | Définit le nombre de mots de passe à générer. La valeur par défaut est 1. | --count 5 | | -L, --lowercase | Ajoute les lettres minuscules. | -L | | -U, --uppercase | Ajoute les lettres majuscules. | -U | | -d, --digits | Ajoute les chiffres. | -d | | -s, --symbols | Ajoute les symboles. | -s | | -c, --custom | Ajoute un alphabet personnalisé. | --custom "ABC123" | | -x, --exclude | Retire des caractères de l’alphabet final. | --exclude "O0Il1" | | --theme | Thème de l’interface : auto (défaut), dark ou light. | --theme light | | -h, --help | Affiche l’aide. | --help | | -v, --version | Affiche la version installée. | --version |

Exemples

Générer cinq mots de passe de 32 caractères :

npx robuscode --length 32 --count 5

Utiliser uniquement des minuscules et des chiffres :

npx robuscode --length 16 --lowercase --digits

Utiliser une liste personnalisée de caractères :

npx robuscode --length 16 --custom "ABCDEFGHJKLMNPQRSTUVWXYZ23456789"

Afficher l’aide complète :

npx robuscode --help

Installation locale pour continuer le développement

Le projet nécessite Node.js 18 ou une version plus récente. Après téléchargement et extraction du dossier :

cd robuscode-cli
npm install
npm test
npm run check

Pour exécuter la commande locale sans publication npm :

npm start -- --length 24 --count 2 --uppercase --digits --symbols

Il est également possible de simuler une installation de commande globale avec le lien npm local :

npm link
robuscode --length 20

Pour supprimer ensuite ce lien :

npm unlink -g robuscode-cli

Publication sur npm

Le package doit d’abord recevoir un compte npm et un nom disponible. Depuis le dossier du projet :

npm login
npm publish

Après publication, n’importe quel utilisateur pourra lancer :

npx robuscode

Le nom affiché est Robuscode CLI, tandis que l'identifiant npm du package est robuscode.

Structure du projet

robuscode-cli/
├── src/
│   ├── cli.js                 # Parsing des arguments, aide, point d'entrée
│   ├── generator.js           # Génération sécurisée des mots de passe (node:crypto)
│   ├── ansi.js                # Utilitaires ANSI : largeur visible, centrage, alternate screen
│   ├── theme.js               # Palettes sombre/clair, thème auto, dégradé de marque
│   ├── logo.js                # Logo adaptatif (block / slick / chrome / wordmark)
│   ├── state.js               # Modèle de l'interface : champs, curseur, édition, entropie
│   ├── screen.js              # Rendu de l'écran (logo, carte, résultats, raccourcis)
│   ├── tui-ink.js             # Interface plein écran (Ink + React, alt-screen, presse-papier)
│   └── tui.js                 # Rendu de secours sans dépendance (fallback)
├── test/
│   ├── cli.test.js            # Tests de l'interface CLI
│   ├── generator.test.js      # Tests du générateur
│   ├── logo.test.js           # Tests du logo adaptatif
│   ├── screen.test.js         # Tests du rendu d'écran (largeurs, thème, alignement)
│   ├── state.test.js          # Tests du modèle d'interface et de l'entropie
│   ├── theme.test.js          # Tests des palettes et de la détection de thème
│   ├── tui.test.js            # Tests du rendu de secours
│   └── tui-ink.test.js         # Test de rendu Ink sur TTY simulé
├── package.json               # Configuration npm et commande npx
├── README.md                  # Documentation
├── LICENSE                    # Licence MIT
└── .gitignore

Le générateur s’appuie sur le module natif node:crypto et sa fonction randomInt, plutôt que sur un générateur aléatoire destiné à des usages non sensibles. Chaque catégorie sélectionnée est représentée au moins une fois dans le mot de passe final, puis les caractères sont mélangés avec une permutation sécurisée.

L'interface est rendue par des fonctions pures : la largeur, l'alignement et le choix du logo sont donc vérifiables par les tests, et une interface de secours fonctionne même si Ink est indisponible.

Résultat des tests

La suite contient 75 tests automatisés couvrant la longueur, les catégories de caractères, les exclusions, les alphabets personnalisés, la génération multiple, l'aide, la version, les erreurs de saisie, le logo adaptatif, la détection de thème, le parcours guidé (avance d'étape, validation des bornes, annulation, zones, sélection), ainsi que le rendu de l'écran (absence de débordement de 40 à 120 colonnes, centrage, alignement de tous les éléments sur la colonne du nom, disparition du bouton, barre contextuelle, mode monochrome, barre adaptative, mode masqué, aide) et le rendu réel de l'interface Ink sur un TTY simulé.

Licence

Ce projet est distribué sous licence MIT. Voir le fichier LICENSE.

Auteur

Prince Kouamé — Product & Software Engineering

Builder: Prince Kouamé — https://www.princekouame.com

  • 🌐 Site: https://www.princekouame.com
  • 🐙 GitHub: https://github.com/kouame09
  • 💼 LinkedIn: https://linkedin.com/in/princekouame
  • 📧 Email: [email protected]