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

@konpyu/dictcli

v1.0.0

Published

LLM-First Dictation TUI App for Japanese English learners

Readme

DictCLI

npm version License: MIT

DictCLI is an LLM-powered dictation practice tool for English learners worldwide. It runs in your terminal and uses OpenAI API to generate sentences, play audio, and provide detailed feedback in your native language.

✨ Features

  • 🤖 LLM-Powered: Dynamic sentence generation using OpenAI API
  • 🎯 Level-Based Learning: Choose from 6 CEFR levels (A1-C2)
  • 🔊 Voice Options: 6 different voices (3 male, 3 female)
  • 🌍 Multilingual Feedback: Error explanations in 20+ languages (auto-detected)
  • Fast Learning Cycle: Complete rounds in under a minute
  • 🎨 Beautiful TUI: Polished terminal UI with Ink v4

📋 Requirements

  • Node.js v20 or higher
  • macOS (for audio playback feature)
  • OpenAI API key

🚀 Installation

Global Installation (Recommended)

npm install -g dictcli

Local Installation

git clone https://github.com/yourusername/dictcli.git
cd dictcli
npm install
npm run build
npm link

After installation, you can run it from any terminal:

dictcli

To uninstall:

npm unlink -g dictcli

🔧 Setup

1. Set OpenAI API Key

Set your OpenAI API key as an environment variable:

export OPENAI_API_KEY=your-api-key-here

To make it permanent, add it to your shell configuration file (.bashrc, .zshrc, etc.).

2. Getting an API Key

  1. Visit OpenAI Platform
  2. Create an account or sign in
  3. Generate a key on the API Keys page
  4. Copy the generated key and set it as an environment variable

🌍 Language Support

DictCLI automatically detects your system language and provides feedback in your native language. Currently supports:

  • 🇯🇵 Japanese
  • 🇬🇧 English
  • 🇨🇳 Chinese
  • 🇰🇷 Korean
  • 🇪🇸 Spanish
  • 🇫🇷 French
  • 🇩🇪 German
  • 🇮🇹 Italian
  • 🇵🇹 Portuguese
  • 🇷🇺 Russian
  • 🇸🇦 Arabic
  • 🇮🇳 Hindi
  • 🇹🇭 Thai
  • 🇻🇳 Vietnamese
  • And many more...

The dictation audio remains in English while error explanations adapt to your system language.

📖 Usage

Basic Usage

dictcli

Starts with default settings (Business English, A1 level, 10 words).

With Options

dictcli --topic Technology --level CEFR_B1 --words 15 --voice SARA

Available Options

| Option | Description | Choices | Default | |--------|-------------|---------|---------| | --topic | Learning topic | EverydayLife, Travel, Technology, Health, Entertainment, Business, Random | Business | | --level | Difficulty level | CEFR_A1, CEFR_A2, CEFR_B1, CEFR_B2, CEFR_C1, CEFR_C2 | CEFR_A1 | | --words | Word count | 5-30 | 6 | | --voice | Voice type | ALEX, SARA, EVAN, NOVA, NICK, FAYE | ALEX |

Voice Descriptions

| Name | Gender | Characteristics | |------|--------|-----------------| | ALEX | Male | Friendly, standard voice | | SARA | Female | Clear and easy to understand | | EVAN | Male | Calm voice | | NOVA | Female | Modern voice | | NICK | Male | Deep voice | | FAYE | Female | Gentle voice |

🎮 Controls

Learning Screen

  • Type your answer: Enter the sentence you hear and press Enter
  • Slash commands: Type / to open command menu
    • /replay - Replay audio
    • /settings - Open settings
    • /giveup - Show hint (answer with blanks)
    • /quit - Quit application

Result Screen

  • Enter or N - Next question
  • R - Replay audio
  • S - Open settings
  • Q - Quit application

Settings Screen

  • ↑↓ - Select item
  • ←→ - Change value (Voice, Level, Topic)
  • -+ - Increase/decrease (Word Count)
  • Enter - Save and continue to next question
  • Esc - Cancel

💡 Learning Tips

Effective Study Methods

  1. Level Selection: Start with a level where you can answer about 80% correctly
  2. Repetitive Practice: Practice the same topic repeatedly to master specialized vocabulary
  3. Speed Adjustment: Adjust playback speed in /settings (0.8x-1.2x)
  4. Error Analysis: Carefully read explanations in your native language to understand error patterns

Level Guidelines

  • A1: Basic words and simple sentences
  • A2: Everyday expressions and basic grammar
  • B1: Practical expressions for work and travel
  • B2: More complex grammar and vocabulary
  • C1: Fluent and natural expressions
  • C2: Native-level advanced expressions

🐛 Troubleshooting

Common Issues

Q: Audio doesn't play

  • A: This only works on macOS. Audio features are not available on other OS.

Q: "OPENAI_API_KEY environment variable is required" error

  • A: Verify that the environment variable is set:
    echo $OPENAI_API_KEY

Q: Frequent API errors

  • A: Check if you have remaining OpenAI API credits.

Q: Characters are garbled

  • A: Make sure your terminal supports UTF-8 and has fonts for your language installed.

Debug Mode

If problems persist, you can check detailed information in debug mode:

DICTCLI_DEBUG=true dictcli

🤝 Contributing

Please report bugs and suggest features via GitHub Issues.

Pull requests are welcome!

📄 License

MIT License - See LICENSE file for details.