用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/OpenRouterLabs/ori-feature-catalog --skill slack-image命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Attach ANY file to the current Slack thread — text or binary. A log, a diff, a CSV, a long answer as a snippet, and equally a PDF, a PNG, a zip, a sqlite db, a tarball: the bytes go up unchanged. TRIGGER when the user asks you to attach, upload, or send a file, or when an answer is too long or too structured to read as a message (a full log, a wide table, hundreds of lines of output) and a file reads better than a wall of text. Also TRIGGER when the user asks for something "as a file", "as a snippet", "as an attachment", or "upload that". Write the content to a file first with Bash, then attach it. This is NOT for charts (use slack-chart) or generated images (use slack-image) — those render and upload on their own. This is NOT for ordinary replies: a short answer belongs in the message, not in an attachment.
Move THIS conversation onto a fresh Slack thread, keeping the same agent session and everything it remembers. ONLY TRIGGER when the user EXPLICITLY asks to continue the current conversation somewhere else — e.g. "continue this in a new thread", "move this to a fresh thread", "same conversation, new thread", "this thread is too long, carry on in a new one". NEVER trigger on your own initiative. Never carry because a thread looks long, cluttered, or busy — if the user did not ask, keep replying where you are. This is NOT for starting separate work: if the user wants a NEW task in its own thread with a fresh start, that is the spawn-thread skill instead. Carrying MUTES the thread you are in, so doing it unasked strands whoever is talking to you.
Read Slack from the agent — thread replies, channel history, user lookup and mention resolution, and opening a DM. Channel and thread resolve env-first ($SLACK_CHANNEL_ID / $SLACK_THREAD_TS) with a --channel fallback, so you can usually omit them. TRIGGER when asked to fetch a thread or channel history, find someone's user id, resolve a mention, or DM someone. This skill does NOT post, edit, delete or react — your answer is just the text you write, and progress goes through the slack-status skill.
正在显示 SKILL.md
| name | slack-image |
| description | Generate an image and post it into the Slack thread. |
Generates an image from a description and uploads it into the thread you are replying to.
bun features/slack/skills/slack-image/scripts/index.ts \
"a flat vector logo for a CLI tool called ori, monoline, deep blue on charcoal" \
--title "ori logo"
Use slack-chart instead for anything with rows, columns, magnitudes or a flow. That draws the real data; this invents a picture, and inventing a picture of your data is worse than useless.
Do not decorate. An image attached to an answer that did not need one is noise, and it costs the reader a scroll.
Needs OPENROUTER_API_KEY on the daemon. SLACK_IMAGE_MODEL overrides the model.
Generation takes a while, so post a status first — the thread should say what you are waiting on.