storytold-install
Skill36 starsChanged 10 days agoMITView on GitHub
Install the storytold Crafting Apps (VectorCraft, PhotoCraft, FilmCraft, …) on PATH and wire their MCP servers into Hermes.
- Reads credentials
In this repository18 other files it gives its agents.
- cadcraftSkill
- craft-anythingSkill
- deckcraftSkill
- designcraftSkill
- effectcraftSkill
- figcraftSkill
- filmcraftSkill
- gridcraftSkill
- lightcraftSkill
- materialcraftSkill
- pdfcraftSkill
- photocraftSkill
- solidcraftSkill
- soundcraftSkill
- storytoldSkill
- texturecraftSkill
- vectorcraftSkill
- wordcraftSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 1 is distinctive, and 4 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.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 50
All of the setup goes through one stdlib-only helper (Python 3.9+, no packages):
- Very specific: line 61
Leave APP out to act on all seventeen apps.
- Very specific: line 75
Check first: Run status. An app counts as present when its <app>-cli is on PATH, whether this skill installed it or an MSI, .deb or Flatpak …
- Very specific: line 78
Install: Run install with the apps the user wants.
- Very specific: line 83
Verify the MCP servers: Run verify. For each CLI it starts the MCP server with the same arguments Hermes will use (below), and sends …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill 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
storytold Crafting Apps
The storytold Crafting Apps are free, open-source, clean-room creative
tools written in Rust (SolidCraft comes from Tangency Labs and installs
the same way). Every release ships a desktop app <app> and an automation CLI <app>-cli.
<app>-cli mcp is a stdio MCP server that can drive every menu item, tool, panel and export.
| App | What it is |
vectorcraft | Vector illustration (Illustrator-style) |
photocraft | Raster image editing (Photoshop-style) |
lightcraft | Photo development and catalog (Lightroom-style) |
effectcraft | Motion graphics and compositing (After Effects-style) |
filmcraft | Video editing (Premiere Pro-style) |
designcraft | Page layout and publishing (InDesign-style) |
pdfcraft | PDF viewing and editing (Acrobat-style) |
wordcraft | Word processing (Word-style) |
gridcraft | Spreadsheets (Excel-style) |
deckcraft | Presentations (PowerPoint-style) |
soundcraft | Audio editing and mixing (Pro Tools-style) |
cadcraft | Computer-aided design and drafting (AutoCAD-style) |
figcraft | Interface design and prototyping (Figma-style) |
solidcraft | Parametric 3D CAD (SolidWorks-style) |
materialcraft | Node-based material design (Substance Designer-style) |
texturecraft | 3D texture painting (Substance Painter-style) |
craft-anything | Study how a website, app or game works and build your own version |
When to Use
- The user asks to install, update or set up any storytold / Crafting App (by name or "the craft apps").
- The user wants to create or edit vector art, photos, video, audio, documents, spreadsheets, slides, PDFs, CAD drawings, 3D parts, materials and textures or UI designs, and a Crafting App is the tool for it.
- A
<app>-clicommand is "not found", or a storytold MCP server fails to start.
Quick Reference
All of the setup goes through one stdlib-only helper (Python 3.9+, no packages):
python ${HERMES_SKILL_DIR}/scripts/storytold_tools.py status # installed vs latest, PATH state
python ${HERMES_SKILL_DIR}/scripts/storytold_tools.py install [APP ...] # download + checksum + link + PATH
python ${HERMES_SKILL_DIR}/scripts/storytold_tools.py path # only add the bin dir to PATH
python ${HERMES_SKILL_DIR}/scripts/storytold_tools.py verify [APP ...] # MCP handshake per CLI
python ${HERMES_SKILL_DIR}/scripts/storytold_tools.py register [APP ...] # hermes mcp add <app>
python ${HERMES_SKILL_DIR}/scripts/storytold_tools.py setup [APP ...] # install + verify + registerLeave APP out to act on all seventeen apps. Every command prints one JSON object per line.
| Where | Windows | Linux / FreeBSD | macOS |
| Release asset | <app>-<ver>-windows-<arch>-portable.zip | <app>-<ver>-<os>-<arch>.tar.gz | <app>-cli-<ver>-macos-universal.zip (CLI only) |
| Unpacked to | %LOCALAPPDATA%\storytold\apps\<app>\<ver> | ~/.local/share/storytold/apps/… | ~/Library/Application Support/storytold/apps/… |
| On PATH as | %LOCALAPPDATA%\storytold\bin (hard links, plus a models junction for PdfCraft's OCR) | ~/.local/bin (symlinks) | ~/.local/bin (symlinks) |
| PATH persisted in | HKCU\Environment\Path | ~/.profile, ~/.bashrc, ~/.zshrc, fish conf.d | same |
To change the locations, set STORYTOLD_HOME (install root) and STORYTOLD_BIN (bin dir). Set GITHUB_TOKEN
if the GitHub API rate limit (60 requests an hour without a token) gets in the way.
Procedure
- Check first. Run
status. An app counts as present when its<app>-cliis on PATH, whether this skill installed it or an MSI, .deb or Flatpak did. Don't reinstall an app that's already there unless the user asks, orlatestis newer thaninstalled. - Install. Run
installwith the apps the user wants. LeaveAPPout to install all seventeen, about 1.6 GB of downloads. For each app it finds the latest GitHub release, downloads the asset for this OS and CPU, checks it against the release'sSHA256SUMS.txt, unpacks it and links<app>and<app>-cliinto the bin dir. Then it adds the bin dir to the persistent PATH unless it's already there. Running it again does no harm: an up-to-date app is skipped, and a PATH entry that's already there isn't added twice. - Verify the MCP servers. Run
verify. For each CLI it starts the MCP server with the same arguments Hermes will use (below), and sendsinitialize,notifications/initializedandtools/list. It reports the server name and version, the protocol, the number of tools and theargs. The exit code is 0 only when every server answers with at least one tool. Register with Hermes (if the user wants the tools in Hermes). Run
register. It runshermes mcp add <app> --command <abs path to bin>/<app>-cli --args <mcp args>and enables all tools. Hermes probes the server before saving, so this is a second end-to-end check. Then tell the user to start a new session or run/reload-mcp.hermes mcp test <app>re-checks a single server later. An entry registered before these args existed is left alone: update it withregister <app> --replace.App MCP args Why most apps mcpheadless in-process engine pdfcraftmcp --compact17 tools instead of 184 (about 3.5k tokens of schemas instead of 48k). The rest run through tool_callvectorcraftmcp --headlessbare mcpattaches to anything on port 7979, even another Crafting Appphotocraftmcp --automation-read-root <HOME> --automation-write-root <HOME>without roots it can't open or save files. Paths are relative to HOME. Override HOME with STORYTOLD_PHOTOCRAFT_ROOTmaterialcraftmcp --read-root <HOME> --write-root <HOME>without roots it can't open, save or export files. Paths are relative to HOME. Override HOME with STORYTOLD_MATERIALCRAFT_ROOTtexturecraftmcp --read-root <HOME> --write-root <HOME>the same as MaterialCraft. Override HOME with STORYTOLD_TEXTURECRAFT_ROOTsolidcraftmcp --allow-path <HOME> --param-check strictwithout an allowed folder it can't save or export outside its own folders. Strict checks make a misspelt key an error instead of wrong geometry. Override HOME with STORYTOLD_SOLIDCRAFT_ROOTcraft-anythingmcpClean room, 29 tools. Its website tools also need --allow-run, which approves everything that runs code or changes a device: add it only after the user agrees (register craft-anything --replacewon't add it; usehermes mcp addby hand). Never run Craft Anything's ownsetup --client hermes: it installs a second skill namedcraft-anythinglightcraftmcp --library <install root>/lightcraft-librarywithout a library the catalog lives in memory only. Override with STORYTOLD_LIGHTCRAFT_LIBRARY- Report. List the installed versions, PATH changes, MCP results and anything that failed, with its
error.
Using the apps
- App skills. Each app has its own skill (
vectorcraft,photocraft, …), and thestorytoldskill picks the right app for a task. Load the app's skill before you work in it. - MCP modes. Bare
<app>-cli mcpstarts every app and runs an in-process engine (bare VectorCraftmcpfirst tries a desktop app on127.0.0.1:7979, so it's registered with--headless). To watch a live desktop app instead, start it with<app> --control <port>and pass the app's own flag. The flags differ from app to app:--connect(vectorcraft, designcraft, wordcraft, gridcraft, deckcraft, soundcraft, cadcraft),--bridge(photocraft, effectcraft, filmcraft) or--attach(figcraft). Check<app>-cli helpfor the exact form before relying on it. - Without MCP. Most CLIs have
run(headless batch of commands plus exports),convert IN OUT,info FILE,commands(the command catalog as JSON) andbench.<app>-cli --helplists them for each app. - Each repository's
docs/mcp.mdanddocs/control-protocol.mddocument the tools, resources and prompts, e.g. https://github.com/storytold/vectorcraft/blob/main/docs/mcp.md.
Pitfalls
- PATH changes don't reach running processes. New terminals see the updated PATH. Hermes and its
terminal tool keep the PATH they started with, so call the CLI by its absolute path (as
statusandverifyprint it) until Hermes restarts. MCP registration always stores the absolute path. - Updating while a server runs (Windows). Windows can't delete an exe that's running.
installrenames the busy link to<name>.old-<timestamp>and puts the new one in place. Restart the MCP server, or Hermes, to pick up the new version. - Microsoft Store Python (Windows) redirects everything written under
%LOCALAPPDATA%into its own package folder, where no other program sees it. The helper detects this and re-runs itself with the first regularpython.exeon PATH, or refuses to run if there isn't one. Prefer Hermes' own Python. - macOS releases have only the CLI as a zip. The desktop app is a
.dmg, so point the user tohttps://github.com/storytold/<app>/releases/latestto install the GUI. - MSI installs aren't on PATH (Windows). The
.msiputs<app>.exeand<app>-cli.exeinC:\Program Files\<App>\and doesn't add that folder to PATH. If this skill's bin dir also has the app, the bin copy wins on PATH and in every MCP registration, even when the MSI is newer.statusreports the bin copy. Runinstall <app>to bring the bin copy up to date. Running--versionon both copies shows which is newer. - Name clash.
registerwon't overwrite an existing Hermes MCP entry with the same name. Pass--replaceto update it. - Stdout is protocol-only. The servers log to stderr. When
verifyfails it includesstderr_tail, so read that before retrying.
Verification
python ${HERMES_SKILL_DIR}/scripts/storytold_tools.py verify --json # every app: "ok": true
<app>-cli --version # from a NEW shell: PATH works
hermes mcp list # registered servers show as enabled
hermes mcp test vectorcraft # Hermes-side handshakeDoes 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.

