Lumberjack Theme
Precision color themes for VS Code and Cursor, generated from one TypeScript theme engine.

Why This Theme
- Strong contrast with careful token grouping.
- Five variations for different workflows and accessibility needs.
- Multi-editor output from one canonical source of truth.
- Automated packaging and publishing pipeline.
Theme Variations
Lumberjack Theme (Default) - Bearded/WebDevCody inspired dark baseline.
Lumberjack Forest Night - Cooler dark variant.
Lumberjack White Birch - Clean light variant.
Lumberjack Ember OLED - True-black OLED variant.
Lumberjack Signal Colorblind - Contrast-biased colorblind-safe variant.
Install
VS Code / Cursor Marketplace
- Open Extensions.
- Search
Lumberjack Theme.
- Install.
From VSIX
- Open Extensions.
- Use
... -> Install from VSIX....
- Select the latest packaged file, e.g.
lumberjack-theme-<version>.vsix.
Activate
- Open Command Palette (
Cmd/Ctrl+Shift+P).
- Run
Preferences: Color Theme.
- Select a Lumberjack variation.
Development
npm run typecheck
npm run build
npm run validate:engine
npm run test:engine
Useful commands
npm run package - build and package VSIX.
npm run targets - list output targets.
npm run tokens:diff - compare generated VS Code token coverage.
npm run release:note -- 0.0.5 - generate a release-note template.
Release Notes Convention
Release notes are versioned and stored in releases/:
- One markdown file per version:
releases/<version>.md
- Required sections:
Summary
Highlights
Added
Changed
Fixed
Breaking Changes (when needed)
Verification
Assets
See releases/README.md and releases/_template.md.
Automated Publish On Push
Workflow: .github/workflows/auto-publish.yml
On each push it will:
- Install dependencies.
- Validate publish secrets.
- Bump patch version.
- Typecheck/build/validate/test.
- Auto-generate
releases/<version>.md from commit history.
- Commit version + release note and create tag.
- Package a new VSIX.
- Upload VSIX as artifact and GitHub release asset.
- Publish to VS Code Marketplace.
- Publish to Open VSX.
- Verify that the published version is visible on both registries.
- Push release commit and tag.
- Create a GitHub Release with release notes and VSIX asset.
Required GitHub secrets:
CI And Main Protection
Workflow: .github/workflows/ci.yml
On each PR and main push it runs:
npm ci
npm run typecheck
npm run build
npm run validate:engine
npm run test:engine
Apply main branch protection (requires admin token):
GITHUB_TOKEN=... npm run repo:protect-main
Optional branch-protection inputs:
REQUIRED_CHECKS (default: CI / ci, comma-separated)
- positional argument
<owner/repo> to target a different repository
License
GNU GPL v3.0 only. See LICENSE.