Smiths & Delvers IDE Theme Hoard
Aulendur Labs' extension library of VS Code themes. A hoard of retro cassette-futurism themes — the optimistic, utilitarian tech of 1970s–80s sci-fi (matte console plastics, satin metal, glowing CRT phosphor) — forged in a high-fantasy dwarven vibe. One gem per color, walking the spectrum.
Ships as a single pack (aulendur-labs publisher) containing 10 themes — eight dark gems and two light stones:
Each theme carries a parenthetical retro alias — a sci-fi/pop-culture reference paired with a recording format matched to that reference's era.
| Theme |
Retro alias |
Hue |
Feel |
| Garnet Forge |
HAL Reel-to-Reel |
red |
Ember-red keywords over forge-shadow black, moss + brass accents. |
| Copper Vault |
Nostromo Cassette |
amber |
The classic amber-CRT console. |
| Gold Hoard |
C-3PO 8-Track |
gold |
Warm gold phosphor on dark olive-brown. |
| Emerald Deep |
Matrix MiniDisc |
green |
Classic green-monitor glow, mint + gold accents. |
| Aquamarine Reach |
TRON LaserDisc |
cyan |
Cool teal phosphor on deep sea-black. |
| Sapphire Delve |
TARDIS Vinyl |
blue |
Bright blue on dark navy, green + gold accents. |
| Amethyst Crypt |
Akira VHS |
violet |
Lavender phosphor over violet-black, moss contrast. |
| Rose Quartz Seam |
Miami Vice Betamax |
magenta |
Pink/orchid on dark plum. |
| Old Parchment |
Datacard Floppy |
light warm |
Cream printout, chocolate text, olive + teal. |
| Mithril Ledger |
RoboCop CD |
light cool |
Pale silver stone, steel-blue + pine, bronze numbers. |
Install & preview locally
git clone git@github.com:AulendurForge/Smiths-and-Delvers-IDE-Theme-Hoard.git
cd Smiths-and-Delvers-IDE-Theme-Hoard
code --install-extension . # or open the folder and press F5 for an Extension Development Host
Pick a theme with Ctrl/Cmd+K Ctrl/Cmd+T → any Smiths & Delvers: entry.
Cursor / VSCodium users: these editors can't install from the Microsoft Marketplace. Either build a .vsix (below) and run cursor --install-extension <file>.vsix, or install from Open VSX once published there.
For the team: maintaining the hoard
New contributor? See CONTRIBUTING.md for the full step-by-step loop, the spec field reference, and readability tips. The summary below is the quick version.
Everything here is generated from code — you do not hand-edit the big theme JSON files. Each theme is a compact palette spec; a build script expands it into a full VS Code theme so the whole set stays consistent.
Repo layout
package.json # pack manifest — lists every theme under contributes.themes
scripts/build-themes.js # THE source of truth: palette specs + the generator
scripts/make-icon.js # generates images/icon.png (the gem hoard)
themes/*.json # GENERATED — do not edit by hand; they're overwritten by the build
images/icon.png # GENERATED
One-time setup
npm install -g @vscode/vsce # packaging/publishing CLI (Node 18+ required)
Add a new theme (a new gem)
- Open
scripts/build-themes.js and copy an existing entry in the SPECS array. Each spec is ~15 colors:
- base:
bg, fg, fgDim, line, sel
- signal:
signal (status bar / accents), signalFg, cursor
- syntax:
kw, str, fn, num, cls, varc, op, punc, comment, err
- light themes also set
bgChrome, bgTitle, activityFg
- Give it a unique
slug and a label like "Smiths & Delvers: <Gem Name>".
- Regenerate:
npm run build
This rewrites themes/*.json and prints an updated contributes.themes array to scripts/themes.contributes.json.
- Add your new theme's entry to
contributes.themes in package.json (copy the matching block from the generated scripts/themes.contributes.json).
- Test it (see below), then commit.
Tweak an existing theme's colors
Edit that theme's spec in scripts/build-themes.js, then npm run build. Never edit themes/*.json directly — the next build overwrites it.
Change the icon
Edit scripts/make-icon.js, then npm run icon.
Test your changes
- Fastest: open the folder in VS Code and press F5 → an Extension Development Host launches with the pack loaded; switch themes with Ctrl/Cmd+K Ctrl/Cmd+T.
- Full install:
vsce package then code --install-extension <file>.vsix (or cursor --install-extension ...).
Cut a release (automated)
Publishing runs in GitHub Actions (.github/workflows/publish.yml) — no one publishes from a laptop or handles tokens by hand. Pushing a version tag publishes to both the VS Code Marketplace and Open VSX and creates a GitHub Release.
# 1. bump the version + changelog (via a PR to main)
# - edit "version" in package.json (patch = tweaks, minor = new themes)
# - add a note to CHANGELOG.md
# 2. once merged, tag main with the SAME version and push the tag:
git checkout main && git pull
git tag v0.2.2 # must match package.json's version, prefixed with v
git push origin v0.2.2
The workflow then: rebuilds the themes and fails if themes/*.json drifted from the generator, checks the tag matches package.json, packages the .vsix, publishes to both registries, and attaches the .vsix to a GitHub Release. Every ordinary push and PR runs the same build + package steps (minus publishing) so broken themes never reach main.
One-time setup (repo admin, in Settings → Secrets and variables → Actions):
| Secret |
Required? |
What it is |
VSCE_PAT |
Yes |
Azure DevOps Personal Access Token, Marketplace → Manage scope, org = All accessible organizations (https://dev.azure.com → User settings → Personal access tokens). |
OVSX_PAT |
Optional |
Open VSX access token from https://open-vsx.org (sign in with GitHub → Settings → Access Tokens), for Cursor/VSCodium reach. If this secret is absent, the Open VSX step is skipped automatically and the Marketplace publish is unaffected — add it whenever you're ready (it also needs the one-time Eclipse publisher agreement; the workflow creates the aulendur-labs namespace for you). |
Never paste either token into chat, a commit, or a file — they live only as GitHub Actions secrets. Rotate them if they leak.
Prefer to publish by hand (e.g. first-ever push)? The manual path still works from a clean checkout:
vsce package
vsce login aulendur-labs # paste the Azure DevOps PAT at the prompt
vsce publish
npx ovsx publish *.vsix -p <OPEN_VSX_TOKEN>
Git workflow
git checkout -b add-<gem>-theme
# ...edit specs, npm run build, test...
git add -A && git commit -m "Add <Gem> theme"
git push -u origin add-<gem>-theme
# open a PR for a quick color review, then merge
themes/*.json are committed (so the extension works from a fresh clone without a build step); just remember they're generated, so regenerate rather than hand-editing.
License
MIT © Aulendur Labs. See LICENSE.