Dev setup
What a Windows PC needs to work on EDGEfab. The shared tools are the same as in REDcode’s setup guide and EDGEmat’s. There is no code yet: F0 decides the details, and this page then gains its build steps with exact versions.
1. Base tools
| Tool | Version used | Why | Install |
|---|---|---|---|
| Git for Windows | as REDcode | Source control | winget install --id Git.Git -e |
| nvm for Windows and Node.js | as REDcode (Node 24) | The tool will be TypeScript, as the rest of the ecosystem | winget install --id CoreyButler.NVMforWindows -e, then nvm install 24 and nvm use 24 |
| Python | 3.10 or later | Brand tooling | |
| Chrome or Edge | any | Renders the brand images | Already present on Windows |
| REDbridge | 0.8.0 or later | Reads and writes game files (0.8.0 adds TweakDB reading) | See REDbridge’s setup guide |
| Blender | to record in F0 | Making and rigging models; converting FBX and OBJ to GLB | To record in F0 |
2. Repository and GitHub
git clone https://github.com/Edgemodders/EDGEfab.git
cd EDGEfab
git config user.name "CyberbuildsAI"
git config user.email "340969962+CyberbuildsAI@users.noreply.github.com"
git config credential.https://github.com.username CyberbuildsAI
3. Build and run
The extension is in extensions/edgefab, its MCP server in packages/edgefab-mcp, one npm workspace. The server bundles the extension’s src/core, which has no VS Code imports.
npm install
npm run build # the extension (dist/extension.js), the core alone (dist/core.js) and the MCP server, both copies
npm run typecheck
npm run smoke -- "<a textured model>.glb" # makes a prop from it with the bundled core, into a temporary folder
F5 in VS Code runs EDGEfab in an extension development host (.vscode/launch.json). npm run mcp:start runs the MCP server on stdio.
| Package | Version | License | Why |
|---|---|---|---|
@gltf-transform/core, functions, extensions |
4.5.1 | MIT | Reading, changing and writing glTF in Node: transforms, welding, simplifying, tangents |
meshoptimizer |
1.3.0 | MIT | The simplifier behind the levels of detail (WebAssembly, bundled) |
gl-matrix |
3.4.4 | MIT | Not used directly: glTF-Transform carries a copy of it. Installed so its license goes into the notices |
mikktspace |
1.1.1 | MIT | MikkTSpace tangents, as Blender makes them; WolvenKit needs tangents. Its .wasm is copied beside each bundle by the build |
@modelcontextprotocol/sdk, zod |
1.32, 3.25 | MIT | The MCP server, as EDGEmat’s |
esbuild, typescript, @types/* |
0.28, 5.9 | MIT, Apache-2.0 | Building and type checks |
All are bundled into the extension and the server, so neither ships node_modules. glTF-Transform’s texture compression needs sharp, a native library EDGEfab doesn’t use: the build leaves it out.
Packaging and releasing work as EDGEmat’s (copied in F1): npm run edgefab:package makes dist/edgefab-<version>.vsix (it writes the extension’s CHANGELOG.md from docs/changelog.md and its THIRD-PARTY-NOTICES.txt from the bundles’ source maps); node tools/version.mjs <version> raises the extension’s and the server’s one version; .github/workflows/release.yml builds and, with Make a release, publishes. No release until every test since the last one has passed (CLAUDE.md, release gate). tools/nexus/ is REDnode’s, copied unchanged; the Nexus page isn’t made yet (nexus/README.md). tools/build/plugins.mjs holds the build’s two esbuild plugins: sharp left out, and mikktspace’s WebAssembly put inside each bundle, so the MCP server is one file.
4. Game access for checks
Through REDcode’s MCP server, as in EDGEmat’s dev setup: redcode-mcp for the game’s files, and REDnode’s MCP server (rednode in Claude Code) for the running game.
claude mcp add redcode -- node "E:\Modding\Cyberpunk 2077\REDcode\packages\redcode-mcp\dist\server.cjs"
Or install EDGEchat, the EDGE plugin for Claude Code, which sets up redcode, rednode, edgedeck and edgemat together. In Claude Code: /plugin marketplace add Edgemodders/EDGEchat, then /plugin install edge@edgemodders, then /edge:setup to check each connection. Do not also add by hand a server the plugin already has: it would show twice.
5. Docs site and brand images
The site at https://edgemodders.github.io/EDGEfab/ is built by .github/workflows/pages.yml on every push to main. Settings > Pages > Source must be GitHub Actions.
.\tools\brand\render.ps1 # banner, social preview, icon, badges
| Output | Used by |
|---|---|
docs/assets/brand/banner.png |
README header |
docs/assets/brand/social.png |
Upload by hand in Settings > General > Social preview |
docs/assets/brand/icon.png |
Site icon, and the extension’s Marketplace icon later |
docs/assets/brand/badges/*.svg |
README badges. Edit the list in tools/brand/badges.py |
tools/brand/activity.svg |
The activity bar icon. Drawn by hand, not rendered: 24 × 24, stroke 2, currentColor, the family’s HUD brackets around a cube. F1 copies it to extensions/edgefab/images/activity.svg |