بنقرة واحدة
fumi-script
Create a new fumi host script in ~/.config/fumi/scripts/ that fumi actions can invoke via fumi.run
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Create a new fumi host script in ~/.config/fumi/scripts/ that fumi actions can invoke via fumi.run
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | fumi-script |
| description | Create a new fumi host script in ~/.config/fumi/scripts/ that fumi actions can invoke via fumi.run |
| argument-hint | <what the script should do, e.g. "append a JSON line to ~/notes/prs.ndjson"> |
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")