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

stringer-cli

v1.5.0-beta

Published

A powerful CLI tool to extract, manage, and translate text strings in your codebase. Supports Vue, React, Next.js, Nuxt, and more.

Downloads

64

Readme

Stringer CLI

Effortless i18n for modern web apps

Transform your codebase into a globally-ready application with intelligent string extraction, seamless translation workflows, and framework-specific optimizations.

🚀 Get Started📚 Documentation📦 VSCode Extension💬 Discord


⚡ Installation

npm install -g stringer-cli

🔄 Updating Stringer CLI

If you're updating to a new version and the stringer command doesn't use the latest version, uninstall and reinstall:

# For npm users
npm uninstall -g stringer-cli
npm install -g stringer-cli

# For pnpm users
pnpm uninstall -g stringer-cli
pnpm install -g stringer-cli

This ensures the global symlink is properly updated. The postinstall script will verify your installation automatically.

Who is behind Stringer CLI?

Stringer CLI is a project by Titus Decali, a full-stack developer living in Seoul, S. Korea.

This project was selected and funded in part by the Korean government's K-Startup Social Venture program in February of 2025.

After the pain of localizing many React and Vue projects using i18n, I decided to build a tool that would make this complex and frustrating process easier for all devs. Stringer handles the intricacies of i18n for you: manually extracting, translating and managing text strings in your app.

The CLI itself is built with Clack and utilizes Stringer's own open-source clack-tree-select prompt for selecting files to process: clack-tree-select.

🎯 Why Stringer CLI?

Stop wrestling with manual string extraction and translation management. Stringer CLI automates the entire internationalization process, letting you focus on building great products while we handle the complexity of going global.

Beyond simple string extraction, Stringer handles the heavy lifting of i18n configuration—URL-based routing, automatic link prefixing, and even middleware repair to ensure your existing code works seamlessly with i18n routing (without breaking what you've already built). Under the hood, a multi-step processing pipeline combines logical operations with fine-tuned AI to deliver accurate results quickly and affordably.

From this:

<h1>Welcome to our application</h1>
<p>Please enter your email address</p>

To this in seconds:

<h1>{{ t('welcome.9824') }}</h1>
<p>{{ t('welcome.2516') }}</p>

And will even generate the i18n locale files for you!

{
  "welcome": {
    "9824": "Welcome to our application",
    "2516": "Please enter your email address"
  }
}

🚀 Quick Start

  1. Start the magic:

    stringer
  2. Follow the beautiful interactive prompts - we'll guide you through everything!

✨ Key Features

| Feature | Description | | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | 🎨 Interactive CLI | Beautiful prompts that guide you through the entire process | | 🧠 Framework Support | Vue, Nuxt, React, and Next.js with automatic i18n setup | | ⚡ Fast Processing | Handles large codebases efficiently | | 🌍 Translation Management | Convert strings and translate to multiple languages | | 🔧 Zero Config | Get started immediately without complex setup | | 🔒 Secure | Your code is encrypted in transit and never stored | | 🧩 VS Code Extension | Stringer i18n Helper for inline previews and quick key additions |

📚 See full documentation →

🔄 Team Sync

When working with a team, Stringer automatically tracks changes to your base language file via a .stringer-sync.json file in your locales folder. This file should be committed to Git — it enables automatic sync detection across all team members without any additional setup.

Key benefits:

  • 🔄 Automatic re-translation: Modified base language text automatically re-translates to all supported languages
  • 💰 Token efficiency: Only changed keys are re-translated, dramatically reducing token usage compared to full re-translation

⚠️ Important: Do not add .stringer-sync.json to your .gitignore — this file must be committed to enable team sync.

🌐 URL-based i18n (SEO-friendly locale prefixes)

Add language prefixes to your URLs (e.g., /en/..., /fr/...) to improve global SEO while minimizing risk to existing routing and middleware.

  • Opt-in and reversible: You'll be prompted during the convert flow.
  • Safe scaffolds per framework (no auto-writes unless you choose to integrate)
stringer url-i18n --analyze    # Analyze your project without changes
stringer url-i18n --scaffold   # Generate scaffold files
stringer url-i18n --enable     # Toggle feature on
stringer url-i18n --disable    # Toggle feature off
stringer url-i18n --revert     # Remove generated scaffolds

📖 Commands

🎪 Interactive Mode (Recommended)

stringer

The most user-friendly way to work with Stringer. Perfect for first-time users and complex workflows.

Direct Commands (For Power Users)

# Authentication
stringer login              # Connect your account
stringer logout             # Log out of your account
stringer auth-status        # Check connection status
stringer -v                 # Check version

# Core Operations (all available in interactive mode via `stringer` command)
stringer convert            # Extract and convert strings
stringer translate          # Translate to target languages
stringer align              # Sync translation files

# Utilities
stringer help               # Get detailed help
stringer --help-path        # Fix PATH issues (for users of OhMyZSH, etc.)

📦 Supported Frameworks

  • Vue 3
  • Nuxt.js
  • React
  • Next.js

🐛 Known Issues

  • If using 🦁 Brave browser, you will need to disable the Ad Blocker to complete authentication between the Stringer-cli.com site and the CLI.

🚀 Ready to Go Global?

Getting started with internationalization has never been easier. Join thousands of developers who trust Stringer CLI to power their global applications.

Create your free account →

💰 Simple, Usage-Based Pricing

Pay only for what you use. Convert your React/Vue strings to i18n format, then translate them.

  • Conversion: $0.00035 per token
  • Translation: $0.00055 per token

🎉 Launch promo: 45% off until February 28th, 2026

View pricing →

🛠️ System Requirements

  • Node.js 16.0.0 or higher
  • Vue 3 & Nuxt 3/4 are supported currently, with support for React & Next.js coming very soon!
  • Unfortunately, we are not supporting the Options API in Vue projects at this time.

🆘 Need Help?