Remote Markdown images trigger automatic network downloads and re-upload to Feishu
Source references: 6When sending or replying with Markdown, the CLI visits embedded HTTP/HTTPS image URLs and uploads the response to Feishu. If Markdown came from a forwarded document or untrusted message, approval to “send this content” can also authorize unnoticed outbound requests and file copying. The provided material does not describe private-address blocking or a domain allowlist.
The remote host learns request timing and the runtime's network address. If the runtime can reach an internal URL, returned content could also be copied into a Feishu message. Failed images are merely removed with a warning and may not be obvious to recipients.
When sending or replying with Markdown, the CLI downloads remote image URLs and uploads the result to Feishu, adding an outbound request and content copy. Although recipient, content, and identity require confirmation, the shown text does not separately confirm remote fetching or describe private-address blocking/domain allowlists. Users can require remote-image resolution to be disabled, URLs previewed, or only existing `img_xxx` keys accepted.
The shortcut does all of the following before sending:1. Forces `msg_type=post`2. Resolves remote Markdown images like `` by downloading and uploading them first3. Normalizes the Markdown for Feishu post rendering4. Wraps the result as:Show 5 other places
- Local paths in Markdown image syntax like `` are **not** supported and will not be auto-uploaded.- Remote URLs (`https://...`) will be auto-downloaded and uploaded at runtime; if the download or upload fails, the image is removed with a warning.- Media flags accept an existing key (`img_xxx` / `file_xxx`), an `http://` or `https://` URL, or a local file path.- Local paths must be relative to the current working directory and stay within it after resolving `..` and symlinks.- Absolute paths such as `/tmp/photo.png` are rejected. Run the command from the file's directory and pass `./photo.png`, or copy the file into the current directory first.- `--audio` sends a voice message and accepts only Opus audio (`.opus` or Ogg Opus `.ogg`) for local paths and URLs. For `mp3`, `wav`, or other non-Opus audio, convert to `.opus` before using `--audio`, or use `--file` to send the original audio as an attachment.When sending content fetched from a Lark doc as a message, fetch the doc with --doc-format im-markdown, then send it as a message using the --markdown format. The fetched content is already in markdown; in any content-forwarding scenario, keep the fetched original text and send it in the --markdown format. Note: if the doc contains a cite tag with type="user", keep it as-is and do not strip the tag.Messages sent by this tool are visible to other people. Before calling it, you **must** confirm with the user:1. The recipient (which person or which group)2. The message content3. The sending identity (user or bot)**Do not** send messages without explicit user approval.- Excess blank lines are compressed.- Already-uploaded `img_xxx` image keys are the most reliable Markdown image input.- Local paths in Markdown image syntax like `` are **not** supported and will not be auto-uploaded.- Remote URLs (`https://...`) will be auto-downloaded and uploaded at runtime; if the download or upload fails, the image is removed with a warning.