skill-creator: run_loop.py fails on Windows with socket error in claude -p subprocess

Resolved 💬 4 comments Opened Mar 12, 2026 by kumaakh Closed May 19, 2026

Bug

The skill-creator plugin's run_loop.py / run_eval.py scripts fail on Windows when spawning claude -p subprocesses. The eval phase uses claude -p to test whether a skill triggers for a given query, but on Windows the subprocess crashes with:

[WinError 10038] An operation was attempted on something that is not a socket

Additionally, there's a secondary encoding issue:

UnicodeEncodeError: 'charmap' codec can't encode character '\u2717' (cp1252)

Steps to reproduce

  1. On Windows, run:

``
python -m scripts.run_loop --eval-set eval.json --skill-path my-skill --model claude-opus-4-6 --max-iterations 5
``

  1. The script spawns multiple claude -p processes via multiprocessing
  2. Socket error occurs during subprocess communication

Expected behavior

run_loop.py should work on Windows, since Claude Code itself runs on Windows and claude -p works fine when invoked directly from the command line.

Workaround

Run the optimization on a macOS or Linux machine instead. The encoding issue can be mitigated with PYTHONUTF8=1, but the socket error has no known workaround.

Environment

  • Claude Code v2.1.73
  • Windows 11 (cp1252 default encoding)
  • Python 3.12
  • Model: claude-opus-4-6

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗