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
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
✨ Key Features
| 🎨 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
stringer url-i18n --scaffold
stringer url-i18n --enable
stringer url-i18n --disable
stringer url-i18n --revert
📖 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)
stringer login
stringer logout
stringer auth-status
stringer -v
stringer convert
stringer translate
stringer align
stringer help
stringer --help-path
📦 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?