Node.js Kaomoji for Interactive Terminal Apps
askiimon adds kaomoji animations to your Node.js terminal apps. Perfect for CLI tools, scripts, and bots.
npm i askiimon
Animated faces for every mood
Lightweight & fast
Perfect for CLI apps
Teach new moods
const askiimon = require('askiimon')
// Birth your personal goblin
const goblin = askiimon.birth('happy', 'Hello!', 'nodejs')
console.log(goblin.kaomoji) // Current face
console.log(goblin.mood) // Current mood
// Give it mood swings
goblin.setMood('excited')
const askiimon = require('askiimon')
const goblin = askiimon.birth('idle')
const moods = ['idle', 'thinking', 'happy']
let i = 0
const spin = setInterval(() => {
goblin.setMood(moods[i % 3])
process.stdout.clearLine()
process.stdout.cursorTo(0)
process.stdout.write(`${goblin.kaomoji} Loading ${i++}%`)
if (i > 100) clearInterval(spin)
}, 100)
const goblin = askiimon.birth('idle')
for (let i = 0; i <= 100; i += 10) {
goblin.setMood(i > 50 ? 'happy' : 'thinking')
process.stdout.clearLine()
process.stdout.cursorTo(0)
process.stdout.write(`${goblin.kaomoji} ${i}%`)
await new Promise(r => setTimeout(r, 150))
}
const readline = require('readline')
const askiimon = require('askiimon')
const goblin = askiimon.birth('idle')
const rl = readline.createInterface({
input: process.stdin, output: process.stdout
})
goblin.setShowWarnings(true)
rl.on('line', input => {
const [cmd, ...args] = input.trim().split(' ')
if (cmd === 'mood') goblin.setMood(args[0])
else if (cmd === 'msg') goblin.setMessage(args.join(' '))
else if (cmd === 'warn') goblin.setShowWarnings(!goblin.showWarnings)
else if (cmd === 'learn') goblin.learnMood(args[0], args[1])
else if (cmd === 'exit') process.exit()
process.stdout.moveCursor(0, -2)
process.stdout.clearLine(0)
process.stdout.write(`${goblin.kaomoji} ${goblin.mood} | ${goblin.message || ''}`)
process.stdout.write('\n$ ')
})
Full docs in sidebar!
const mon = askiimon.birth(state, message, env)
// Defaults: 'idle', '', 'nodejs'
goblin.setMood('happy')
goblin.setMood('angry')
goblin.setMood('sad')
goblin.setMood('excited')
goblin.setMood('crush')
goblin.setMood('laughing')
goblin.setShowWarnings(true) // Enable warnings
goblin.setMood('puppy-eyes') // Unknown mood
goblin.learnMood('puppy-eyes', '(^◕.◕^)')
goblin.setMessage('Hello World!')
goblin.setMessage('Processing...')
setMood('happy');
setMessage('text');
setShowWarning(true);
learnMood('name', 'face');
setIntervals(true, 5000);
// boolean interval
^_^
happy
:(
sad
>.<
excited
(?_?)
confused
>:(
angry
O.O
surprised
// Train new moods
askiimon.learnMood('super', '(*≧ω≦*)')
askiimon.learnMood('cry', '(ಥ﹏ಥ)')
// Use them
askiimon.setMood('super')
npm i askiimon
node your-cli.js