尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
Checks the three.js code your coding agent writes: version-pinned review, headless page checks, safe fixes and 3D models from code. MCP server, CLI and Claude Code plugin.
翻译准备中
正在加载完整 README。
查看完整 README ↗three.js ships a release almost every month and removes old APIs. Coding agents learned it from years of code that used
THREE.Geometry, outputEncoding, three/examples/js and import paths that no longer exist, and they cannot see the
canvas they draw on. Threesmith is the check between the agent and your project: the API of the three version you
have installed, a scored review, the assets and decoders the code needs, the live scene in headless Chromium, and
safe, undoable edits. Everything runs locally; nothing leaves the machine.
| Your agent... | On its own | With Threesmith |
|---|---|---|
| writes three.js | Geometry, outputEncoding, BoxBufferGeometry, examples/js: old habits | 97 rules pinned to the installed release flag each line with the fix; fix does the 23 pure renames |
| calls an API | guesses a name or an import path from memory | three_api reads node_modules/three: signature, deprecation and the right three/addons/... path |
| writes a shader | #include <encodings_fragment>, gl_FragColor with GLSL3, a .replace() on a chunk that is gone | includes checked against the installed ShaderChunk, patches that silently do nothing found, renames fixed |
| loads a model | /models/Car.glb that is a 404 on Linux, Draco without a decoder | three_assets resolves every path like the server does and names the missing decoder setup |
| says "it works" | never opened the page | three_check opens it headless: errors with causes, blank frames, a screenshot, baselines |
| gets a black screen | guesses: more light? move the camera? | three_inspect reads the live scene and says why each object is not visible |
| fixes a bug | cannot show it was there, or that it is gone | three_play runs steps and judges claims frame by frame; three_scenario keeps it as a regression test |
| makes it fast | changes things and hopes | three_perf counts draw calls, triangles and programs against a budget and the last run; three_leaks names what is never disposed |
| ships it | builds once, deploys, sees a 404 | three_build builds, finds two copies of three, missing assets and sub-path URLs, then opens the built page |
| needs a 3D model | needs Blender or a placeholder cube | three_model_build makes a clean .glb from one of 110 kinds, then shows it as text views and lints it |
| does not know the project | reads twenty files | three_scan and three_doctor give the map and the order to fix things in one call |
1. See what is wrong. Nothing to install but the package:
npx -y threesmith doctor # what is wrong, grouped by cause, most urgent first, with next steps
npx -y threesmith review # score 0-100, `file:line severity [rule] message Fix: ...`
npx -y threesmith check . # open the page headless, errors and a screenshot
2. Give it to your agent. In Claude Code:
/plugin marketplace add laaielichter/Threesmith
/plugin install threesmith@threesmith
3. Ask for something. "Find out why the scene is black and fix it." Every three.js file Claude edits is reviewed right after the edit, its errors and broken asset paths go straight back to Claude, and the session starts with a brief of the project.
| Client | How |
|---|---|
| Claude Code | /plugin install threesmith@threesmith after /plugin marketplace add laaielichter/Threesmith (MCP server, hooks incl. protected paths, 8 skills, 2 subagents, settings for tool sets and read-only) |
| Claude Code, MCP only | claude mcp add threesmith -- npx -y threesmith mcp |
| Codex | codex mcp add threesmith -- npx -y threesmith mcp --tier premium |
| Cursor, VS Code | the buttons at the top |
| Gemini CLI | gemini extensions install https://github.com/laaielichter/Threesmith |
| Cline and others | llms-install.md, or { "mcpServers": { "threesmith": { "command": "npx", "args": ["-y", "threesmith", "mcp"] } } } |
| Docker | Dockerfile |
Run the agent from the project folder, or pass --project <path>. Needs Node.js 22.12+ and three installed in the
project. The browser tools need playwright-core and a Chromium (npx playwright-core install chromium);
threesmith doctor --env shows what is missing.
--tier cheap (the default) gives short, capped output and numbered step-by-step instructions, so
small models follow the right order; --tier premium gives full detail for large models.--tools core loads 14 tools; add run, live, build, model when you need them, or name single
tools. A tool list the client pays for in every turn stays small. The server instructions only ever name tools
that are loaded.three_review with only_new: true shows new findings in full, the ones the agent
already saw as one short line, and how many are fixed. code + file reviews code before it is saved.structuredContent with an output schema next to the text.file:line severity [rule] message Fix: ..., the same in the CLI (--compact), MCP and hooks.three_undo takes back; a
file changed by hand since is left alone. "protect" in threesmith.json (or THREESMITH_PROTECT) names
folders no write may touch. --read-only leaves out the tools that always write and refuses write options.three_feedback is hidden from then on; lessons kept
with three_lesson_add come back under the same error. Only hashes, counters and scrubbed text, on this machine.以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗