Dev setup
What a Windows PC needs to work on EDGEmat. The shared tools are the same as in REDcode’s setup guide. The code starts in M1: the extension in extensions/edgemat and the MCP server in packages/edgemat-mcp, one npm workspace.
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 (0.7.0 or later works for M1) | Reads and writes game files | See REDbridge’s setup guide |
2. Repository and GitHub
git clone https://github.com/Edgemodders/EDGEmat.git
cd EDGEmat
git config user.name "CyberbuildsAI"
git config user.email "340969962+CyberbuildsAI@users.noreply.github.com"
3. Game access for spec checks
M0 checks the behavior spec against the game through REDcode’s MCP server, redcode-mcp, which runs REDbridge. Nothing is installed into EDGEmat itself. Set up on the dev PC on 2026-10-14:
| Tool | Version used | Notes |
|---|---|---|
| REDcode checkout | commit 31dd076 |
redcode-mcp 0.1.0, already built at packages\redcode-mcp\dist\server.cjs |
| REDbridge | bridge_info reports 0.7.0, WolvenKit 9.1.0 |
The built exe is older than its source (0.7.2). Nothing used here needs 0.7.1 or later |
| Claude Code | 2.1.299 | The MCP client |
| Node.js | 24.11.1 | Runs the server |
| Python | 3.13.9, with Pillow 11.3.0 and numpy 2.4.3 already present | Mask analysis in the scratchpad |
# In the REDcode checkout, only if dist\server.cjs is missing:
npm install
npm run mcp:build
# Register it for Claude Code sessions in this repo (local scope, not committed):
claude mcp add redcode -- node "E:\Modding\Cyberpunk 2077\REDcode\packages\redcode-mcp\dist\server.cjs"
claude mcp list # redcode: ... - Connected
The server finds REDbridge and the game from REDcode’s VS Code settings (redcode.bridgePath, redcode.gamePath), so no arguments are needed on a PC with REDcode set up. A session already running when the server is added cannot see its tools; it can still drive the server as a plain MCP client over stdio.
In-game tests use a WolvenKit project outside the repo, E:\Modding\Cyberpunk 2077\Projects\EDGEmat_M0. Game files and anything extracted from them stay there or in the session scratchpad, never in this repo.
4. Build, test and package
Installed with npm install at the repository root on 2026-10-16 (Node 24.11.1, npm 11.14.1):
| Package | Version | Used by |
|---|---|---|
vscode-jsonrpc |
9.0.3 | The bridge client (copied from REDcode), bundled into the extension and the MCP server |
pngjs |
7.0.0 | Thumbnails, pure JavaScript, bundled |
@modelcontextprotocol/sdk |
1.32.1 | The MCP server, bundled |
zod |
3.25.76 | The MCP server’s tool schemas, bundled |
esbuild |
0.28.2 | Bundling |
typescript |
5.9.3 | Type checks |
@types/vscode |
1.70.0 | The extension’s API level (VS Code 1.70 or later) |
@vscode/vsce |
4.0.0 | Packaging the VSIX |
npm install
npm run typecheck # both packages
npm run build # extensions/edgemat/dist and packages/edgemat-mcp/dist
npm run smoke # M1's test: builds the library from the game and checks its counts
npm run edgemat:package # dist\edgemat-0.1.0.vsix
code --install-extension dist\edgemat-0.1.0.vsix
The smoke test finds the game and REDbridge from the VS Code settings (edgemat.*, then redcode.*), as the extension does, and writes the library to %LOCALAPPDATA%\EDGEmat. F5 in VS Code, with the repository open, runs the extension in a development host (.vscode/launch.json, “Run EDGEmat”); build first.
Register the MCP server with Claude Code (no options needed on a PC with REDcode set up):
claude mcp add edgemat -- node "E:\Modding\Cyberpunk 2077\EDGEmat\packages\edgemat-mcp\dist\server.cjs"
5. Docs site and brand images
The site at https://edgemodders.github.io/EDGEmat/ 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 |
tools/brand/activity.svg |
The activity bar icon. Drawn by hand, not rendered: 24 × 24, stroke 2, currentColor, the family’s HUD brackets as in REDcode and REDdeck. M1 copies it to extensions/edgemat/images/activity.svg |
docs/assets/brand/badges/*.svg |
README badges. Edit the list in tools/brand/badges.py |