artcraft-skills
AGENTS.md66 starsChanged 6 days agoMITView on GitHub
You are a coding agent. This folder is the persistence archive of the artcraft-skills project: 18 evidence-verified skills for the ArtCraft desktop apps (17 storytold apps — the 13 pure-Rust craft apps plus ArtCraft Studio's AI image and video workspace, Craft Anything's rebuild workbench, TextureCraft's 3D texture painting and MaterialCraft's node-based procedural materials — and Tangency Labs' SolidCraft parametric CAD). If the user asks you to install, update, or verify these skills, do it for the agent you are running…
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,700 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository18 other files it gives its agents.
- artcraft-studioSkill
- cadcraftSkill
- craft-anythingSkill
- deckcraftSkill
- designcraftSkill
- effectcraftSkill
- figcraftSkill
- filmcraftSkill
- gridcraftSkill
- lightcraftSkill
- materialcraftSkill
- pdfcraftSkill
- photocraftSkill
- solidcraftSkill
- soundcraftSkill
- texturecraftSkill
- vectorcraftSkill
- wordcraftSkill
The file
We split this AGENTS.md into the rules it gives an agent
8 rules. About 0 are common, 1 is distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 52
All 18 skill directories must exist under the chosen target — artcraft-studio, cadcraft, craft-anything, deckcraft, designcraft, …
- Very specific: line 80
If the app was installed per-user, point at %LOCALAPPDATA%\Programs\ArtCraft\<App>\<app>.exe instead.
- Distinctive: line 83
If no window appears, the agent is in a non-interactive session — a Windows service / session 0, or a runner that sandboxed its window …
- Very specific: line 105
If an earlier background launch did mark the adapter, reset the choice before blaming the GPU: close the app, change Preferences › …
- Very specific: line 115
WordCraft: read the key from %APPDATA%\<App>\control-key.local-<port> (mode 0600, deleted on exit).
- Very specific: line 117
CADCraft: every request needs "token": "<session token>", read from cadcraft-control-<port>.token (%LOCALAPPDATA% on Windows.
- Very specific: line 120
TextureCraft: every connection's first request must authenticate — {"id":0,"method":"auth","params":{"token":"…"}} with …
- Very specific: line 121
ArtCraft Studio: no control channel, CLI or MCP server — it is a Tauri GUI app.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AGENTS.md — ArtCraft Skills archive
You are a coding agent. This folder is the persistence archive of the artcraft-skills project: 18 evidence-verified skills for the ArtCraft desktop apps (17 storytold apps — the 13 pure-Rust craft apps plus ArtCraft Studio's AI image and video workspace, Craft Anything's rebuild workbench, TextureCraft's 3D texture painting and MaterialCraft's node-based procedural materials — and Tangency Labs' SolidCraft parametric CAD). If the user asks you to install, update, or verify these skills, do it for the agent you are running as.
Install (pick your target)
From the packaged release in this folder — the 18 skill folders sit at the zip root
(pick the newest artcraft-skills-v*.zip):
ZIP="$(ls -t releases/artcraft-skills-v*.zip | head -1)"
# Default: OpenAI Codex, ChatGPT desktop, ZCode, Devin, CommandCode, Gemini CLI (~/.agents/skills)
unzip -o "$ZIP" -d ~/.agents/skills/
# Claude Code
unzip -o "$ZIP" -d ~/.claude/skills/
# OpenCode
unzip -o "$ZIP" -d ~/.config/opencode/skills/
# Gemini CLI
unzip -o "$ZIP" -d ~/.gemini/skills/
# Google Antigravity
unzip -o "$ZIP" -d ~/.gemini/config/skills/Windows PowerShell:
$zip = Get-ChildItem releases\artcraft-skills-v*.zip | Sort-Object LastWriteTime -Descending | Select-Object -First 1
Expand-Archive $zip -DestinationPath $HOME\.agents\skills # or .claude\skills / .config\opencode\skills / .gemini\skills / .gemini\config\skillsOr from source (latest state):
git clone https://github.com/midasmatterhorn/artcraft-skills.git && cd artcraft-skills
bash install.sh # default → ~/.agents/skills/ (add --claude, --opencode, --gemini or --antigravity to retarget)
.\install.ps1 # Windows; -Claude / -OpenCode / -Gemini / -Antigravity switches, -Force to overwriteVerify
All 18 skill directories must exist under the chosen target — artcraft-studio, cadcraft, craft-anything,
deckcraft, designcraft, effectcraft, figcraft, filmcraft, gridcraft, lightcraft,
materialcraft, pdfcraft, photocraft, solidcraft, soundcraft, texturecraft,
vectorcraft, wordcraft — each containing
SKILL.md and agents/openai.yaml. Print the target directory you used, then tell the
user to restart their agent session so the skills are discovered.
Windows: driving the GUI apps live
Agents on Windows often spawn processes in a non-interactive window station
(CREATE_NO_WINDOW); the ArtCraft GUI apps (egui/DirectX) can exit immediately with code 0
and no window when launched that way. An app that dies before its first frame may also
record the display adapter as bad and leave it out on later starts — VectorCraft writes
%APPDATA%\VectorCraft\logs\graphics-start.json, FilmCraft keeps a similar start record —
so the GPU can look "disabled" until that memory is cleared.
Try the direct launch first. CREATE_NO_WINDOW only hides a console; it does not move
the process to another window station. An agent running in the user's logged-on session (a
terminal, an IDE, a desktop app) can start the GUI itself. A fresh MSI install from the
launcher v0.16.0 is machine-wide — C:\Program Files\ArtCraft\<App>, or
Program Files (x86) for a 32-bit build — and Windows asks for elevation once; an app
already installed for one account (%LOCALAPPDATA%\Programs\ArtCraft\<App>) keeps that
folder and scope when it is updated (crates/native/src/msi_context.rs::install_scope):
cmd.exe /c start "" "%ProgramFiles%\ArtCraft\<App>\<app>.exe" --control <port>If the app was installed per-user, point at
%LOCALAPPDATA%\Programs\ArtCraft\<App>\<app>.exe instead.
If no window appears, the agent is in a non-interactive session — a Windows service / session 0, or a runner that sandboxed its window station. Nothing started from that session can paint on the user's desktop: use the headless CLI/MCP surface instead, or ask the user to launch the app interactively. As a last resort, an agent that is running as the logged-in user can have Task Scheduler launch the app interactively:
schtasks /create /tn "ArtCraft-<App>-<port>" /tr "\"%ProgramFiles%\ArtCraft\<App>\<app>.exe\" --control <port>" /sc once /st <future-time> /it /f
schtasks /run /tn "ArtCraft-<App>-<port>"
schtasks /delete /tn "ArtCraft-<App>-<port>" /f/ithas no effect for tasks run as SYSTEM, and the System account has no interactive desktop; from a service, the interactive user has to launch the app./sc oncerefuses a start time already in the past, so<future-time>must be later today (or create the task with/sc onlogonand/runit immediately).- This creates a real scheduled task — an auditable artifact and a known execution
primitive. Use a unique task name, keep the default limited run level (never
/rl highest), delete the task right after it runs, and if endpoint policy blocksschtasks, ask the user instead of retrying. - The app needs its control channel enabled at launch, with its own authentication (below).
If an earlier background launch did mark the adapter, reset the choice before blaming the
GPU: close the app, change Preferences › Performance › Graphics Processor (or set
WGPU_ADAPTER_NAME / WGPU_BACKEND for one start), or — only when you know the GPU is
healthy — delete %APPDATA%\<App>\logs\graphics-start.json so the next start tries it
again. Not every app writes that file.
Then connect a TCP socket to 127.0.0.1:<port> and send one JSON request per line.
Authentication differs per app — check the app's SKILL.md before connecting:
- PhotoCraft: pass
--control-token <64-hex>(or--control-token-file <path>) at launch. - WordCraft: read the key from
%APPDATA%\<App>\control-key.local-<port>(mode 0600, deleted on exit). - PdfCraft: launch with
--control FILE— the file holds the loopback port and per-launch token. - CADCraft: every request needs
"token": "<session token>", read fromcadcraft-control-<port>.token(%LOCALAPPDATA%on Windows;$XDG_RUNTIME_DIR, else~/.cacheelsewhere) — the app prints the path at startup. - FilmCraft: the listener only opens when
FILMCRAFT_CONTROL_TOKENholds 64 hex characters at launch; every request carries the same"token". - GridCraft: the first line of a connection must authenticate with the app's token — pass
--control-token <token>orGRIDCRAFT_CONTROL_TOKENat launch, or read the auto-generated token file whose path the app prints to stderr (gridcraft-clireads it automatically); a connection that does not authenticate, or later sends a bad line, is closed. - TextureCraft: every connection's first request must authenticate —
{"id":0,"method":"auth","params":{"token":"…"}}withTEXTURECRAFT_CONTROL_TOKEN(16 characters or more) or the fresh random token the app writes totexturecraft-control-<port>.tokenin the temp directory and prints to stderr; anything else as the first request is refused. - ArtCraft Studio: no control channel, CLI or MCP server — it is a Tauri GUI app; the programmatic surface is the API-key-gated Omni HTTP API documented in the
artcraft-studioskill. - All other apps: loopback-only, unauthenticated — enable only while in use.
Send UTF-8 without a BOM: the control servers treat a BOM-prefixed first line as
malformed JSON and close the connection. Windows PowerShell 5.1 pipes add a BOM — use raw
sockets, pwsh (utf8NoBOM), or set [Console]::OutputEncoding explicitly. On macOS and
Linux the apps launch normally; this note is Windows-specific.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

