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

@adrianlynch/clingon

v0.1.9

Published

Generate tiny deterministic terminal characters.

Readme

@adrianlynch/clingon

Generate tiny deterministic terminal characters.

100% created by AI. Use at your own risk. Obviously.

Each clingon is created from a readable name. Save the name and you can render the same character again later, or keep the same shape and generate a new set of colors.

      ##      
  [][][]    
[][]. []. [][]
[][][][][][][]
  []# [] #[]  
  . .    . .  

Screenshots

Sizes

Terminal dimensions are large 22x8, normal 14x6, small 10x5, and tiny 8x4.

Option Examples

Install

npm install @adrianlynch/clingon

Run it without installing:

npx @adrianlynch/clingon --small

Use In zsh

Install it globally so shell startup does not need to run npx:

npm install -g @adrianlynch/clingon

Add this to ~/.zshrc to show a random tiny clingon in each terminal:

clingon --tiny --pad=1

Use a saved name for the same startup clingon every time:

clingon --with-name orlando-reginald-morris-junior --tiny --pad=1

Show welcome text and local context beside it:

clingon --with-name orlando-reginald-morris-junior --tiny --welcome --date --cwd --git --pad=1

--welcome picks a time-aware greeting from English, Spanish, or romanized Japanese. Clingon names are hidden by default. Add --name where you want the name to appear beside it. --pad=1 adds a blank line above and below the character plus one space of left padding.

CLI

Generate a random clingon:

clingon

Generate a compact clingon:

clingon --small

Generate a tiny four-line clingon:

clingon --tiny

Regenerate a specific clingon:

clingon --with-name orlando-reginald-morris-junior

Show the clingon name beside the art:

clingon --name
clingon --with-name orlando-reginald-morris-junior --name

Keep the same shape, but choose a new random palette:

clingon --with-name orlando-reginald-morris-junior --recolor

Print the JavaScript needed to recreate the same clingon:

clingon --with-name orlando-reginald-morris-junior --small --script

Print structured output:

clingon --small --json

Print only the character art, useful in shell startup files:

clingon --tiny

Show up to five lines of text beside the clingon:

clingon --tiny --name
clingon --tiny --welcome
clingon --tiny --message "Ready"
clingon --tiny --date --cwd --git
clingon --tiny --git --message "Ready" --name

--cwd is shown as ~ directory-name, and --git is shown as * branch-name. Label flags are shown in the order you pass them.

Add space around terminal output:

clingon --tiny --pad=1
clingon --tiny --pad-h=2 --pad-v=1

Options

clingon [options]

Options:
      --with-name <name>
                    Regenerate a specific clingon name
  -n, --name          Show the clingon name beside the art
  -r, --recolor       Keep the shape from --with-name but choose new colors
      --large         Render the largest clingon
      --small         Render a smaller clingon
      --tiny          Render the tiniest clingon
      --size <size>   Render size: tiny, small, normal, or large
  -s, --script        Print the JavaScript needed to recreate the clingon
  -j, --json          Print JSON data instead of terminal art
      --welcome       Show a time-aware greeting beside the clingon
      --message <msg> Show a custom message beside the clingon
      --date          Show today's date beside the clingon
      --cwd           Show the current directory beside the clingon
      --git           Show the current git branch beside the clingon
      --pad <n>       Add padding around terminal output
      --pad-h <n>     Add spaces before each terminal output line
      --pad-v <n>     Add blank lines before and after terminal output
      --no-color      Render without ANSI color
  -h, --help          Show help
  -v, --version       Show version

JavaScript API

import { generateClingon } from '@adrianlynch/clingon';

const clingon = generateClingon({
  name: 'orlando-reginald-morris-junior',
  size: 'tiny'
});

console.log(clingon.ansi);
console.log(clingon.name);

Random clingon:

import { generateClingon } from '@adrianlynch/clingon';

const clingon = generateClingon();
console.log(clingon.ansi);

Render-only helper:

import { renderClingon } from '@adrianlynch/clingon';

console.log(renderClingon({
  name: 'orlando-reginald-morris-junior',
  size: 'tiny'
}));

Returned Data

generateClingon() returns:

{
  name: 'orlando-reginald-morris-junior',
  code: 'orlando-reginald-morris-junior',
  size: 'tiny',
  shapeSeed: 0,
  paletteSeed: 0,
  palette: {
    body: '#f06a0d',
    accent: '#2bce67',
    dark: '#7c2d12'
  },
  pixels: [[0, 0, 0]],
  ansi: '...',
  text: '...'
}

The first and third words control the shape. The second and fourth words control the palette.

Older clg-... seed codes are still accepted through --with-name:

clingon --with-name clg-00000rs-00000rt

Development

npm test
npm start -- --small
npm run docs:assets
npm pack --dry-run