From fumi
Create a new fumi host script in ~/.config/fumi/scripts/ that fumi actions can invoke via fumi.run
How this skill is triggered — by the user, by Claude, or both
Slash command
/fumi:fumi-scriptThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create a new fumi host script based on the user's request.
Create a new fumi host script based on the user's request.
$ARGUMENTS
Pick the language. Default to bash for simple I/O, python3 for JSON munging, node only if needed. Ask if unclear.
Pick a path under ~/.config/fumi/scripts/. Subdirectories are fine (notes/append.py). Confirm it doesn't already exist.
Write the file with a shebang on line 1 and set -euo pipefail (bash) or equivalent. Read the entire payload from stdin to EOF, then process it.
chmod +x the file — without the owner-executable bit, fumi rejects it with SCRIPT_NOT_EXECUTABLE.
Test from the CLI before wiring it into an action:
fumi scripts run <relpath> --payload '{"...":"..."}'
Tell the user how to call it from an action: await fumi.run('<relpath>', payload). Offer the fumi-action skill if they need one.
argv[0]. No user-controlled arguments are ever passed — payload is stdin only.payload, single write, no trailing newline. If payload is absent/null, the literal bytes null are written. Stdin closes after the write.exec'd directly, no sh -c, no expansion. Do not try to interpolate payload into a command line — parse it as JSON.FUMI_* are stripped, then FUMI_STORE is re-set to the store root. The variable name store is reserved.#!/usr/bin/env bash, #!/usr/bin/env python3, etc.).chmod +x).EXEC_OUTPUT_TOO_LARGE. For bulk data, write to a file and return the path.eval or interpolate into a shell command.#!/usr/bin/env bash
set -euo pipefail
payload="$(cat)"
field=$(jq -r '.field' <<<"$payload")
# … do the thing …
printf '%s\n' "ok"
#!/usr/bin/env python3
import json, sys
payload = json.load(sys.stdin)
# … do the thing …
print("ok")
Provides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.
npx claudepluginhub tkuramot/fumi --plugin fumi