{"id":18216,"library":"cli-step","title":"cli-step","description":"A Node.js module to create animated CLI step indicators similar to Yarn's output. Version 1.0.2 is the latest stable release; it has no recent updates and appears to be in maintenance mode. Key differentiators: supports emoji step indicators, records execution time, and provides a simple API for start/success/error states. It is a UI-only layer, not a task runner.","status":"maintenance","version":"1.0.2","language":"javascript","source_language":"en","source_url":"https://github.com/poppinss/cli-step","tags":["javascript","cli","yarn","cli-steps"],"install":[{"cmd":"npm install cli-step","lang":"bash","label":"npm"},{"cmd":"yarn add cli-step","lang":"bash","label":"yarn"},{"cmd":"pnpm add cli-step","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Provides emoji lookup by string name","package":"node-emoji","optional":false}],"imports":[{"note":"CJS only. Not an ES module.","wrong":"import Steps from 'cli-step' // ESM not supported","symbol":"Steps","correct":"const Steps = require('cli-step')"},{"note":"No default export in ESM; bundlers may shim require().","wrong":"const Steps = require('cli-step').default // incorrect for this package","symbol":"Steps (ESM bundler)","correct":"import Steps from 'cli-step'"},{"note":"advance() is an instance method on a Steps object.","wrong":"Steps.advance() // static method does not exist","symbol":"Step instance methods","correct":"const steps = new Steps(5); const step = steps.advance('text', 'emoji').start()"}],"quickstart":{"code":"const Steps = require('cli-step');\nconst steps = new Steps(3);\nconst step1 = steps.advance('Resolving packages', 'mag').start();\nsetTimeout(() => { step1.success('Resolved', 'white_check_mark'); }, 200);\nconst step2 = steps.advance('Fetching', 'truck').start();\nsetTimeout(() => { step2.success('Fetched', 'white_check_mark'); }, 400);\nconst step3 = steps.advance('Linking', 'link').start();\nsetTimeout(() => { step3.success('Linked', 'white_check_mark'); }, 600);","lang":"javascript","description":"Creates three animated CLI steps with emoji, completing each after a timeout."},"warnings":[{"fix":"Ensure the total passed to Steps matches the number of advance() calls.","message":"Emitted steps count must match Steps(totalSteps) constructor argument; if you call advance more or fewer times, no validation is performed.","severity":"gotcha","affected_versions":"all"},{"fix":"Consider using oclif/listr or other actively maintained CLI step libraries.","message":"Package last published in 2017 with no updates; modern Node.js versions may have compatibility issues.","severity":"deprecated","affected_versions":"all"},{"fix":"Use known emoji names from the node-emoji library.","message":"Emoji names must match node-emoji's list exactly; unknown names throw no error but display as undefined.","severity":"gotcha","affected_versions":"all"},{"fix":"Avoid using with other direct stdout writing libraries simultaneously.","message":"The step animation uses process.stdout.write directly; it may conflict with other output libraries or piping.","severity":"gotcha","affected_versions":"all"},{"fix":"Use process.hrtime.bigint for more accurate measurements if needed.","message":"startRecording/stopRecording measure wall-clock time, not CPU time; high system load may skew results.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Add const Steps = require('cli-step') at the top of your file.","cause":"Missing require('cli-step')","error":"ReferenceError: Steps is not defined"},{"fix":"Ensure you use const Steps = require('cli-step') and do not reassign Steps.","cause":"Using import incorrectly or shadowing variable name","error":"TypeError: Steps is not a constructor"},{"fix":"Call step.start() before step.success() or step.error().","cause":"Calling success() before start()","error":"TypeError: step1.success is not a function"},{"fix":"Run npm install node-emoji in your project.","cause":"Missing dependency node-emoji","error":"Cannot find module 'node-emoji'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}