Skip to content
| Marketplace
Sign in
Visual Studio Code>Snippets>Smart TransformNew to Visual Studio Code? Get it now.
Smart Transform

Smart Transform

John Pires

|
1 install
| (0) | Free
One shortcut. Detects what your selection is (JSON, JWT, base64, URL-encoded, timestamp, UUID, hex color, case) and offers the right transformations — instantly. No more jwt.io tabs.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Smart Transform

Smart Transform

One shortcut. Detects what you selected. Transforms it instantly.

Stop opening jwt.io, base64decode.org, epochconverter.com in your browser.
Stop installing five separate extensions for case-conversion, hashing, encoding, and JSON formatting.


See it in action

Smart Transform — decoding a JWT in one shortcut

Select any text in VS Code, press Cmd+Shift+. (Mac) or Ctrl+Shift+. (Windows/Linux), and Smart Transform shows you only the transformations that make sense for what you selected. No menu hunting. No command-name memorizing.

What it can do (at a glance)

Select a JWT       →  "JWT — decode payload only"  →  decoded JSON
Select 1747526400  →  "Timestamp → ISO 8601"        →  2025-05-18T00:00:00.000Z
Select #ff6600     →  "Color → hsl()"               →  hsl(24, 100%, 50%)
Select customerFullName  →  "Case → snake_case"     →  customer_full_name

…and 28 more. All from one shortcut.

How it works

When you trigger Smart Transform, the extension scans your selection and runs lightweight detectors. The QuickPick that opens only shows transformations relevant to what you have, ranked by how likely they are to be what you want. Detected content types:

  • JWT tokens (header + payload + signature, with expiration hint)
  • JSON (valid object, array, or quoted string)
  • base64 encoded text
  • URL-encoded strings
  • Unix timestamps (seconds and milliseconds)
  • UUIDs (v1 through v8)
  • Hex colors (#fff, #ff6600, with optional alpha)
  • Numbers and identifiers for case conversions
  • Plain strings for everything else

Transformations included (v0.1)

Group Transformations
JWT decode full token, decode payload only (with expiration hint)
JSON prettify, minify, escape as string, unescape from string
Encode / Decode base64 ⇄ text, base64 URL-safe encode, URL ⇄ text, HTML escape/unescape
Time Unix → ISO, Unix → local, Unix → relative, ISO → Unix
Case camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, url-slug
Hash MD5, SHA-1, SHA-256, SHA-512
Color hex → rgb(), hex → hsl()
Other UUID generate (v4), UUID version/variant info

32 transformations in v0.1. More added every release — open an issue if there's something you'd use weekly.

Roadmap

Already on the list for upcoming releases:

  • XML / YAML — prettify, minify, convert to JSON
  • More colors — oklch(), named CSS colors, color palette suggestions
  • CSV ⇄ JSON — quick conversions for one-off data work
  • Regex helpers — explain a regex in plain English, test against the selection
  • More hashes — bcrypt verify, HMAC variants
  • Repeat last — tap the shortcut twice to re-run the previous transformation

Vote on these (or suggest new ones) by opening an issue.

Keyboard shortcut

  • Mac: Cmd+Shift+.
  • Windows / Linux: Ctrl+Shift+.
  • Right-click menu: when you have a selection, "Smart Transform: Transform Selection" appears in the context menu.

You can rebind it from Keyboard Shortcuts — search for Smart Transform: Transform Selection.

Settings

Setting Default What it does
smartTransform.defaultAction replaceInPlace What to do with the result: replaceInPlace, openNewDocument, or copyToClipboard.
smartTransform.showAllTransformations false Show every transformation in the picker, not just the ones detected as relevant.

JWT decoding always opens in a new tab (because you want to read the payload, not replace your token with it). Everything else respects your default action.

Why this exists

Most editor utilities for these tasks are either single-purpose extensions (one for JWT, one for base64, one for case conversion) or web tools that pull you out of your flow. Smart Transform collapses them into one shortcut that knows what you selected.

No remembering command names. No tab-switching. No five-extension bloat.

Contributing

PRs welcome — the architecture makes adding a new transformation a 15-line file.

  1. Add src/transforms/yourTransform.ts exporting a Transformation.
  2. Register it in src/transforms/index.ts.
  3. If it needs a new detection kind, add it to src/detect.ts and transforms/types.ts.

See vsc-extension-quickstart.md for the development setup.

License

MIT © John Pires


Built for the Destino Dev community.
If this saved you a browser tab, star the repo — it really helps.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft