>
ora
Add terminal spinners with Ora. Use when showing loading indicators in CLI tools, displaying progress during async operations, or building polished command-line interfaces with status feedback.
#ora#cli#spinner#loading#terminal
terminal-skillsv1.0.0
Works with:claude-codeopenai-codexgemini-clicursor
Usage
$
✓ Installed ora v1.0.0
Getting Started
- Install the skill using the command above
- Open your AI coding agent (Claude Code, Codex, Gemini CLI, or Cursor)
- Reference the skill in your prompt
- The AI will use the skill's capabilities automatically
Example Prompts
- "Review the open pull requests and summarize what needs attention"
- "Generate a changelog from the last 20 commits on the main branch"
Documentation
Overview
Ora creates elegant terminal spinners. Show progress during async operations (API calls, file processing, builds), then succeed/fail with a final status. Used by create-next-app, Vercel CLI, Angular CLI.
Instructions
Step 1: Basic Spinner
typescript
import ora from 'ora'
const spinner = ora('Installing dependencies...').start()
try {
await exec('npm install')
spinner.succeed('Dependencies installed')
} catch (err) {
spinner.fail('Installation failed')
process.exit(1)
}
Step 2: Multi-Step Operations
typescript
async function deploy(env: string) {
const spinner = ora()
spinner.start('Building project...')
await build()
spinner.succeed('Build complete')
spinner.start('Running tests...')
const results = await runTests()
spinner.succeed(`${results.passed} tests passed`)
spinner.start(`Deploying to ${env}...`)
const url = await deployToCloud(env)
spinner.succeed(`Deployed to ${url}`)
spinner.start('Verifying deployment...')
await healthCheck(url)
spinner.succeed('Deployment verified ✓')
}
Step 3: With Other Libraries
typescript
import ora from 'ora'
import chalk from 'chalk'
const spinner = ora({
text: 'Processing files...',
color: 'cyan',
spinner: 'dots', // or 'line', 'arc', 'bouncingBar'
})
spinner.start()
spinner.text = `Processing ${chalk.bold('image-001.png')}...`
// ... after processing
spinner.text = `Processing ${chalk.bold('image-002.png')}...`
spinner.stopAndPersist({
symbol: chalk.green('✓'),
text: `Processed ${chalk.bold('42')} files in ${chalk.gray('3.2s')}`,
})
Guidelines
succeed()/fail()/warn()/info()stop the spinner with a status icon.stopAndPersist()for custom symbols/text when the built-in statuses don't fit.- Update
spinner.textduring long operations to show progress. - Ora is ESM-only since v6. Use
import ora from 'ora'. - In CI environments, ora falls back to static text (no animation).
Information
- Version
- 1.0.0
- Author
- terminal-skills
- Category
- Development
- License
- Apache-2.0