Every Salesforce project hides hundreds of hardcoded strings. Label Alchemy finds them across Apex, LWC, and Aura, then converts each one to a Custom Label in seconds without leaving VS Code.
Runs offline with no API key · Diff preview before anything changes · Free tier at launch · Built by a Salesforce developer
You review the diff. It writes the labels and the metadata.
Hunt down each string, hand-edit CustomLabels.labels-meta.xml, and update every reference, across three different syntaxes, a hundred times over. It's hours of zero-value work, so most teams keep putting it off.
Until the day it lands on the critical path:
Custom Labels are how Salesforce translates UI text. Every hardcoded string is one that can't be translated, so localization stalls until they're all converted.
Hardcoded user-facing strings get flagged in peer reviews, PMD scans, and the AppExchange security review. Reviewers expect Custom Labels, and send the work back when they're missing.
Once a string is hardcoded inside a managed package, changing one word means a whole package version and upgrade cycle. Convert before you package, not painfully after.
Label Alchemy converts them all in seconds, so it never becomes the thing blocking your release.
Run Label Alchemy on one file or the whole project. It finds every user-facing string and generates a clean, consistent name for each, with nothing to configure.
A side-by-side diff shows what will change before anything is touched. Edit label names, exclude strings you want to keep, and confirm only what you approve.
One click updates your code and writes the Custom Label metadata, ready to deploy. No manual Setup clicks or hand-edited XML. Every conversion also drops a timestamped change record into your project: a summary plus a deployable package.xml, no git required.
Scan, review the diff, approve, and see your whole project's hardcoded-string count drop, all in a couple of minutes.
Label Alchemy is almost ready. Drop your email and you'll be the first to know the moment it's live on the VS Code Marketplace, plus first crack at the Founding Member deal: the full perpetual license for $39 (then $49), with early access to new features, limited to the first 100.
You're on the list. Watch your inbox for a confirmation email — you'll get the launch + founding-member link first. If it's not there in a minute, check your spam or promotions folder.
Most of it's free. The heavy lifting, your whole project at once, is the paid upgrade.
Deterministic naming runs entirely on your machine, so it's fast and private. Want richer names? Bring your own LLM or run a local model. See how AI naming works →
Understands each language's syntax. Detects the right strings (toast messages, error text, labels, placeholders) and skips API names, SOQL, debug calls, and framework internals automatically.
Nothing changes without your review. Check or uncheck individual labels, edit any name inline (validated live against Salesforce rules), then apply only what you're happy with.
Check, rename, or exclude each label before anything is written
Set a Salesforce category on your labels right in the review panel — per label, or across a whole file in one click. It writes straight to <categories>, so your labels land in the org already sorted instead of dumped in one bucket.
Same text again? Label Alchemy automatically reuses the label it already has — across files in one pass, and across separate scans, days apart by reading your existing labels file. Identical strings collapse to one shared label with zero clicks, and new labels merge into your XML for you.
One approval flow across your whole project, deduped as it goes: the same text anywhere converts to one shared label, so there's no duplicate sprawl to clean up. It groups by component bundle and streams its writes, so thousand-file projects don't choke.
One approval flow · deploy-ready metadata at the end
After you approve the diff, it runs sf project deploy start on just the modified files and new labels, with no terminal step. Re-deploy any file or folder from the context menu. A guardrail blocks production orgs; deploys go to sandboxes and scratch orgs only.
Automatic reuse handles identical text. But what about a value that already has a label under a different name? That slips through when you rename a label by hand or let AI name it fresh. Label Alchemy flags it at write time and lets you reuse the existing label or create a new one anyway, in a single prompt.
A built-in technical denylist ships free: HTTP verbs, MIME/charset tokens, and dynamic-SOQL fragments never get flagged. With a license, add your noise (brand and product names, enum/API values, status codes, feature-flag names) so the scanner leaves them alone. Manage it in a click from the Audit Report (no JSON editing); matching is whole-value and case-insensitive. Commit it to your workspace so every developer scans by the same rules.
No git required. Each convert writes a timestamped record to labelalchemy-changes/: a readable summary.md, the same data as CSV, and a portable package.xml you can deploy or hand to a teammate. A one-click Open summary appears the moment it finishes, whether or not you deploy.
Yours to keep, and clean to hand to a code or security reviewer.
Written on every convert · deploy package.xml or hand it off
Naming works offline out of the box, with no API key and nothing sent anywhere. Want richer, context-aware names? Bring your own LLM, or run a fully local model via Ollama. Either way your source stays put, which keeps it clean for security reviews and locked-down enterprise orgs.
Drag to match your project. The math is yours to check.
That's roughly 40 hours of find-create-name-replace you'd do by hand, about 5 working days.
Estimate only, based on the per-string time you set above. Your free Audit Report counts your project's real strings — no guessing.
See your real numbers, free →The free Audit Report scans your whole project and tells you exactly how much hardcoded-string debt you're carrying. Bulk convert clears it in a single pass.
Read-only · across 96 files · hand it to a lead or client
Run the audit free, anytime. Numbers shown are illustrative — yours will reflect your actual codebase.
With a license, a custom denylist keeps your brand names and enum values out of the count — so the estimate reflects real UI text.
Scanning and single-file conversion are free, forever. To convert and deploy your whole project, buy a one-time license, yours to keep, with 12 months of updates included. No subscription to forget about; a per-seat Team plan is coming soon.
Early-bird price for the first 100 buyers: the complete perpetual license, plus early access to new features and a direct line to the developer. After 100, the price returns to normal.
Prices in USD · PPP pricing at checkout · Limited to the first 100 buyers
Free
Always free · no credit card
Notify me at launch →Individual
Most popularOne-time · perpetual license · 12 months of updates included
Notify me at launch →Paid with your own money. Use it anywhere, including at work. Yours across employers.
Paid or reimbursed by a company.
Why updates matter: Salesforce ships ~3 API versions a year; staying current keeps Label Alchemy compatible with your org and tooling.
Team
Coming soonA per-seat subscription for growing teams
Join the waitlist →Built for consulting firms and implementation partners who hit this on every client project. Want it sooner? Join the waitlist and tell me what your team needs first.
All prices in USD · Paid license: secure checkout via Lemon Squeezy · PPP pricing for India & emerging markets · 7-day refund
Shared naming config, PR/CI scanning, and centralized billing, all built for firms hitting this on every client project. Tell me you're interested and I'll involve you early as it takes shape.
You're on the Team waitlist. I'll be in touch as Team plans take shape, and may reach out to hear what would help your team most. Check your spam or promotions folder if you don't see a confirmation.
.cls), Lightning Web Components (.js and .html — with the sidecar .js label import added automatically), and Aura components (.js controllers, .cmp, .app). That's the full modern Salesforce UI stack. Need another format? Tell us.
Acme Corp is dropped while Acme Corporation is kept), and editing from the report re-scans in place. Save it to your workspace (.vscode/settings.json) and every developer's scan obeys the same rules.
labelalchemy-changes/ in your project containing a human-readable summary.md (labels created, files modified, component breakdown, and deploy status), a summary.csv of the same data, and a portable package.xml you can deploy or hand to a teammate. A one-click Open summary notification appears as soon as the conversion finishes, whether or not you deploy — so you always have a clear, reviewable trail of which strings became labels and which files were touched. This is free on every tier.
Still have questions? Read the full FAQ and documentation, or ask in the community.
Everything on this page is live in v1 today: single-file and project-wide scanning, bulk convert, deploy-on-approve, and project-wide AI naming (with your own key or local model). Your license includes 12 months of updates as Salesforce, LWC, and VS Code evolve.
Free at launch. No API key. No credit card.
Get early access →