Real output · not a mock-up
One ExtendScript file for Photoshop and Illustrator that names exports from
the document, instead of leaving you with Artboard 1 copy 2.png.
//E:jscript — the same ES3 language
level ExtendScript uses. The same eight layer names go into all five templates.
Nothing here was typed by hand or edited afterwards.
{doc:kebab}-{name:kebab}-{n:2}tokens used: doc name n
The everyday one. Note icon/small → icon-small: a path separator would make a filename your OS refuses, so it is treated as a word break.
| What the app gives you | What you get |
|---|---|
| Artboard 1 | brand-kit-artboard-1-01.png |
| Artboard 1 copy | brand-kit-artboard-1-copy-02.png |
| Artboard 1 copy 2 | brand-kit-artboard-1-copy-2-03.png |
| Untitled-3 | brand-kit-untitled-3-04.png |
| Logo | brand-kit-logo-05.png |
| Logo | brand-kit-logo-06.png |
| Hero Banner@2x | brand-kit-hero-banner@2x-07.png |
| icon/small | brand-kit-icon-small-08.png |
{name:snake}_{w}x{h}tokens used: name w h
Dimensions come from the document, so the two Logo layers no longer collide — they differ at 512 and 256.
| What the app gives you | What you get |
|---|---|
| Artboard 1 | artboard_1_1200x630.png |
| Artboard 1 copy | artboard_1_copy_1200x630.png |
| Artboard 1 copy 2 | artboard_1_copy_2_1200x630.png |
| Untitled-3 | untitled_3_512x512.png |
| Logo | logo_512x512.png |
| Logo | logo_256x256.png |
| Hero Banner@2x | hero_banner@2x_2400x1260.png |
| icon/small | icon_small_64x64.png |
{doc:camel}{name:pascal}tokens used: doc name
Deliberately wrong, and shown on purpose. There is no camel or pascal modifier. An unrecognised one returns the value unchanged, so this looks like it worked and did not — the spaces are still there. The four real modifiers are kebab, snake, lower and upper, plus numeric zero-padding.
| What the app gives you | What you get |
|---|---|
| Artboard 1 | brand kitArtboard 1.webp |
| Artboard 1 copy | brand kitArtboard 1 copy.webp |
| Artboard 1 copy 2 | brand kitArtboard 1 copy 2.webp |
| Untitled-3 | brand kitUntitled-3.webp |
| Logo | brand kitLogo.webp |
| Logo | brand kitLogo-2.webp |
| Hero Banner@2x | brand kitHero Banner@2x.webp |
| icon/small | brand kiticon_small.webp |
{date}_{n:3}_{name:kebab}tokens used: date n name
Zero-padding via {n:3}, so 10 sorts after 9 instead of after 1.
| What the app gives you | What you get |
|---|---|
| Artboard 1 | 2026-09-30_001_artboard-1.jpg |
| Artboard 1 copy | 2026-09-30_002_artboard-1-copy.jpg |
| Artboard 1 copy 2 | 2026-09-30_003_artboard-1-copy-2.jpg |
| Untitled-3 | 2026-09-30_004_untitled-3.jpg |
| Logo | 2026-09-30_005_logo.jpg |
| Logo | 2026-09-30_006_logo.jpg |
| Hero Banner@2x | 2026-09-30_007_hero-banner@2x.jpg |
| icon/small | 2026-09-30_008_icon-small.jpg |
{name:kebab}_{nope}tokens used: name nope
A mistyped token is left in the output verbatim rather than silently vanishing, so you see the typo in the preview instead of in a folder of 200 files.
| What the app gives you | What you get |
|---|---|
| Artboard 1 | artboard-1_{nope}.png |
| Artboard 1 copy | artboard-1-copy_{nope}.png |
| Artboard 1 copy 2 | artboard-1-copy-2_{nope}.png |
| Untitled-3 | untitled-3_{nope}.png |
| Logo | logo_{nope}.png |
| Logo | logo_{nope}-2.png |
| Hero Banner@2x | hero-banner@2x_{nope}.png |
| icon/small | icon-small_{nope}.png |
One .jsx file.
No install, no panel, no Creative Cloud add-on. Sold as-is, no support.