Label Alchemy Get early access →
VS Code Extension for Salesforce Developers

Stop writing
Custom Labels by hand.

Every Salesforce project hides hundreds of hardcoded strings, and turning each one into a Custom Label is slow, repetitive work. Label Alchemy finds them all across Apex, LWC, and Aura and converts them in seconds, right inside VS Code.

Free tier at launch · No credit card · Built by a Salesforce dev, for Salesforce devs

AccountController.cls
// Before — AccountController.cls
// Hardcoded strings scattered everywhere
String msg = 'Account saved successfully';
String err = 'You do not have permission to edit this record';
// + same strings repeated in 6 other files
// After — Label Alchemy (deterministic naming, offline)
// One label per unique string — reused across all files ✓
String msg = Label.Account_Saved_Successfully;
String err = Label.Error_NoPermissionToEdit;

Label Alchemy detects, names, and replaces — you just review and apply

✓ Apex · LWC · Aura ✓ Deterministic naming — offline, no API key ✓ Diff preview + per-label approval ✓ Project Audit Report free ✓ Reviewable change record — no git required ✓ Optional AI naming - context aware labels

Technical debt — until it's a blocker.

Hunt down each string, hand-edit CustomLabels.labels-meta.xml, update every reference, repeat a hundred times — across three different syntaxes. Hours of zero-value work most teams keep postponing.

Until the day it lands on the critical path:

You need to go multi-language

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.

You're facing a code or security review

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.

You're packaging for AppExchange

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.

How it works

Three steps. Seconds, not hours.

1

Scan

Run Label Alchemy on a file or your entire project. It finds every user-facing hardcoded string and generates a clean, consistent label name — instantly, with nothing to configure.

2

Review

A side-by-side diff shows exactly what will change before anything is touched. Edit label names, exclude strings you want to keep, and confirm only what you're happy with.

3

Apply

One click updates your code and generates the Custom Label metadata — ready to deploy. No manual Setup clicks. No hand-edited XML. And every conversion writes a timestamped change record — a summary plus a deployable package.xml — to your project, no git required.

Launching soon · Founding Member spots are limited

Be first in line — and lock in the $39 founding price.

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.

No spam — just one email at launch, and the founding offer. Unsubscribe anytime.

✓ One email at launch — no spam ✓ Founding price locked for the first 100 ✓ 7-day refund · PPP pricing

Demo coming soon

Features

Everything you need to clear the debt.

Most of it's free. The heavy lifting — your whole project at once — is the paid upgrade.

Offline-first, no API key needed Free

Deterministic naming runs entirely on your machine — fast, free, and private. Want richer names? Bring your own LLM or a local model — your choice, every time. See how AI naming works →

Apex, LWC, and Aura — all covered Free

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.

Diff view + per-label approval Free

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.

Organize labels into categories Free

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.

Smart label reuse — identical text Free

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.

Bulk convert — entire project Paid

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. Grouped by component bundle, with streaming writes that handle thousand-file projects without breaking a sweat.

Deploy to org on approve Paid

After you approve the diff, it runs sf project deploy start on just the modified files and new labels — 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.

Catch diverging-name duplicates Paid

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 — one prompt, no duplicate-value sprawl.

Tune the scanner to your codebase Paid

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.

Built in — every tier
Free

Every conversion leaves a trail.

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.

Reviewable, migratable, yours — clean to hand to a code or security reviewer.

labelalchemy-changes/
└─ 2026-06-15_1432/
   ├─ summary.md
   ├─ summary.csv
   └─ package.xml

Written on every convert · deploy package.xml or hand it off

Optional AI naming — all tiers

Your code never has to leave your machine.

Naming works offline out of the box — no API key, 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 — clean for security reviews, locked-down enterprise orgs, and strict data-governance policies.

Ollama · local OpenAI Anthropic Gemini DeepSeek OpenRouter LM Studio
Free → done in one click

See your debt for free. Fix all of it in one click.

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.

Project Audit Report Free
1,284
hardcoded strings found
Apex (.cls)612
LWC (.js / .html)487
Aura (.cmp / .js)185

Read-only · across 96 files · hand it to a lead or client

Bulk Convert Paid · one click
0
left after one pass
  • All 1,284 strings → Custom Labels, deduped
  • One approval flow, grouped by bundle
  • Deploy-ready metadata generated
Unlock bulk convert →

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.

Pricing

Buy it once. Own it for good.

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.

Founding Member — first 100 only

The full license for $39 one-time $49

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.

Get the founding deal →

PPP pricing at checkout · Limited to the first 100 buyers

Free

$0

Always free · no credit card

Notify me at launch →
  • Single file scan (Apex, LWC, Aura)
  • Offline deterministic naming
  • Optional AI naming (BYOK)
  • Diff preview + per-label approval
  • One-click apply & XML generation
  • Organize labels into categories
  • Project Audit Report (read-only)
  • Community support (GitHub)
  • Bulk convert across files
  • Deploy to org on approve

Individual

Most popular
$49 personal · or $99 commercial

One-time · perpetual license · 12 months of updates included

Notify me at launch →
Personal

Paid with your own money. Use it anywhere, including at work. Yours across employers.

Commercial

Paid or reimbursed by a company.

  • Everything in Free
  • Bulk convert — entire project
  • Deploy to org on approve
  • Project-wide AI naming (BYOK) — consistent labels across your codebase, using your own key or local model
  • Custom denylist — teach the scanner to ignore your brand names, enum values, and status codes; commit it so the whole team scans the same way
  • Catch diverging-name duplicates — reuse-or-create prompt before write
  • Audit Report CSV export
  • Priority email support
  • 12 months of updates included — the version is yours to keep forever
  • Optional renewal to extend updates — ~$25/yr personal, $50/yr commercial

Why updates matter: Salesforce ships ~3 API versions a year — staying current keeps Label Alchemy compatible with your org and tooling.

Team

Coming soon
For firms

A per-seat subscription for growing teams

Join the waitlist →
  • Everything in Individual
  • Shared team config & naming enforcement — one convention across every dev
  • PR / git-diff CI scan — catch new hardcoded strings before they merge
  • Centralized billing & seat management

Built for consulting firms and implementation partners who hit this on every client project. Want it sooner? Join the waitlist and help shape what ships first.

Paid license: secure checkout via Lemon Squeezy · PPP pricing for India & emerging markets · 7-day refund

FAQ

Do I need an API key to use Label Alchemy?
No. The default deterministic naming mode works completely offline with no API key. Optionally, you can connect your own key for any supported provider — OpenAI, Anthropic, Gemini, DeepSeek, OpenRouter — or run a local model via Ollama or LM Studio for context-aware label naming. It's never required.
What languages and file types are supported?
Salesforce Apex (.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.
Will it flag our brand names, enum values, and status codes?
By default it filters a built-in technical denylist for free — HTTP verbs and headers, charset and MIME tokens, and dynamic-SOQL fragments — so generic noise never appears. Every codebase also has its own noise: brand and product names, integration/enum API values, status codes, feature-flag names, log tags. With a license you can add those to a custom denylist from a QuickPick or the Manage denylist link in the Audit Report — matching is whole-value and case-insensitive (so 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.
Will it change my code automatically without asking?
Never. Every change is shown in a diff view first. You review exactly what will be modified, can edit label names, exclude specific strings, and only apply when you're ready. Nothing touches your codebase until you say so.
What's the difference between Free and the paid license?
Free gives you the full scan-review-apply loop for a single file, plus a read-only project-wide Audit Report so you can see the full scope of hardcoded strings across your codebase. The paid license unlocks bulk convert (apply changes across your whole project at once), deploy to org on approve — eliminating the manual terminal step entirely — and CSV export of the Audit Report.
How does pricing work? Is there a subscription?
The Individual license is a one-time, perpetual purchase — the version you buy is yours to keep forever. It includes 12 months of updates and compatibility fixes. Price depends on who pays: $49 Personal (paid with your own money — use it anywhere, including at work, and keep it across employers) or $99 Commercial (paid or reimbursed by a company). After 12 months you can keep using your version forever, or optionally renew updates for about $25/year personal or $50/year commercial.

A per-seat Team subscription is coming soon, built for firms who use it across many client projects. And the Founding Member offer gives the first 100 buyers the full license for a one-time $39, plus early access to new features and a direct line to the developer.
Does Label Alchemy keep a record of what it changed?
Yes — on every conversion, no git required. Label Alchemy writes a timestamped folder to 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.
Does my code get sent anywhere?
In the default deterministic mode, nothing leaves your machine — all naming is local and offline. Optional AI naming is available on all tiers, including Free: if you enable it, your file content is sent only to the LLM provider you configure (your key, your account). Choose a local model via Ollama or LM Studio and your code still never leaves your machine. Your API keys and license key are stored in VS Code's encrypted secret storage, never in settings.json.
Is PPP (Purchasing Power Parity) available?
Yes. Pricing is automatically adjusted for your country via Lemon Squeezy's PPP support. Developers in India and other regions will see a localized price at checkout.
Shipped & actively maintained

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.

Your next project ships
without the label grind.

Free at launch. No API key. No credit card.

Get early access →