
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
stringer-cli
Advanced tools
A powerful CLI tool to extract, manage, and translate text strings in your codebase. Supports Vue, React, Next.js, Nuxt, and more.
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
npm install -g 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.
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.
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"
}
}
Start the magic:
stringer
Follow the beautiful interactive prompts - we'll guide you through everything!
| 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 |
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:
⚠️ Important: Do not add
.stringer-sync.jsonto your.gitignore— this file must be committed to enable team sync.
Add language prefixes to your URLs (e.g., /en/..., /fr/...) to improve global SEO while minimizing risk to existing routing and middleware.
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
stringer
The most user-friendly way to work with Stringer. Perfect for first-time users and complex workflows.
# 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.)
Getting started with internationalization has never been easier. Join thousands of developers who trust Stringer CLI to power their global applications.
Pay only for what you use. Convert your React/Vue strings to i18n format, then translate them.
🎉 Launch promo: 45% off until February 28th, 2026
FAQs
A powerful CLI tool to extract, manage, and translate text strings in your codebase. Supports Vue, React, Next.js, Nuxt, and more.
We found that stringer-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.