easyimage-uploader
Upload a local image to an EasyImages 2.0 server, then return the hosted image URL.
Configuration priority
Resolve configuration in this order:
- CLI flags:
--serverand--token - Skill-local config file:
config.json - Environment variables fallback:
EASYIMAGE_URLEASYIMAGE_TOKEN
Recommended setup: create config.json in the root of this skill.
Example:
{
"server": "https://img.example.com",
"token": "your-easyimage-token",
"allow_model_image_input": false,
"temp_dir": "./temp"
}
A template file is included as config.example.json.
Config fields
server: EasyImages service base URLtoken: EasyImages upload tokenallow_model_image_input: whether upload requests are allowed to rely on model-side image understandingfalse: prefer direct file-path upload only, avoid image analysis, avoid vision tool usagetrue: model-side image handling is allowed when needed
temp_dir: temp working directory for this skill- default recommended value:
./temp - relative paths are resolved relative to this
SKILL.md/ skill root directory - with the default, the effective directory is
easyimage-uploader/temp/
- default recommended value:
If configuration is missing, stop and ask the user for the missing value.
Workflow
- Confirm which local image file should be uploaded.
- Read
references/api.mdif you need the exact upstream API shape or status meanings. - Read
config.jsonwhen behavior matters. - If
allow_model_image_inputisfalse, do not use image analysis or vision tools just to understand image content. Treat the image as a file and upload by path only. - Use
temp_dirfor temporary files when downloads, conversions, or intermediate storage are needed. If the directory does not exist, create it first. - Prefer absolute paths for both the script and the image file. Do not rely on
~expansion in generated commands. Safe default:
python3 /absolute/path/to/skills/easyimage-uploader/scripts/upload_easyimage.py /absolute/path/to/image
- If needed, point to a specific config file with an absolute path:
python3 /absolute/path/to/skills/easyimage-uploader/scripts/upload_easyimage.py /absolute/path/to/image \
--config /absolute/path/to/config.json
- If needed, override with explicit CLI values:
python3 /absolute/path/to/skills/easyimage-uploader/scripts/upload_easyimage.py /absolute/path/to/image \
--server https://img.example.com \
--token YOUR_TOKEN
- The bundled script normalizes
~and relative paths for the image and config arguments, but still prefer absolute paths in examples and real executions to avoid shell-specific surprises. - Parse the JSON output.
- If
okis true, return theurlto the user. Mentionthumbonly if useful. - Do not expose
delete_urlunless the user explicitly asks for deletion capability. - If upload fails, explain the likely cause using the
codeor error payload.
Failure handling
When the script returns a failure payload:
network_error: server unreachable, DNS/TLS/network problem, or timeouthttp_error: server returned a non-2xx HTTP responseinvalid_json: server responded unexpectedly- EasyImages
codevalues should be interpreted usingreferences/api.md
Common user-facing explanations:
202: server-side upload quota reached205: current client is blocked by EasyImages allow/deny rules401: server requires login uploads instead of token-only uploads403: token invalid or signature check failed406: file type rejected
Notes
- Use this skill for local files that already exist on disk.
- If the user only gives a remote URL and wants it mirrored, download it first only if appropriate and allowed.
- Prefer returning the direct image
urlas the main result. - Keep secrets safe. Never echo the configured token back to the user.
config.jsoncontains secrets. Keep file permissions tight and avoid committing it to public repositories.
