with one click
copy-to-slack
Convert markdown to Slack-ready rich text and copy to clipboard.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Convert markdown to Slack-ready rich text and copy to clipboard.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Autonomously create a plan, consult Gemini and Codex for improvements, apply feedback, and implement. No user interaction - uses best judgment throughout.
Turn an idea into a concrete design through structured dialogue.
Gemini and Codex collaboratively brainstorm solutions, building on each other's ideas across rounds. Agent synthesizes the best ideas into a plan.
Claude brainstorms with an opponent LLM (Gemini or Codex) in alternating turns, building on each other's ideas. Synthesizes the best ideas into a plan.
Commit the staged changes. If there are no staged changes, stage all changes first.
Consult Gemini and Codex for high-level planning, synthesize into a detailed plan, implement, then get final review. No user interaction.
| name | copy-to-slack |
| description | Convert markdown to Slack-ready rich text and copy to clipboard. |
| allowed-tools | Bash, Read |
| disable-model-invocation | true |
Convert a markdown file to rich text and copy it to the clipboard so it can be pasted into Slack with formatting intact.
The user provides either:
$ARGUMENTS**bold** → <strong>bold</strong>_italic_ / *italic* → <em>italic</em>`code` → <code>code</code><pre><code>...</code></pre>- item / * item → <ul><li>item</li></ul>1. item → <ol><li>item</li></ol>[text](url) → <a href="url">text</a># Header → <strong>Header</strong> (Slack has no native headers)<br><br> (Slack ignores <p> margins, so use
<br><br> between paragraphs for visible spacing)>|
instead of > for redirects (zsh has noclobber set). Use this snippet:html_file=$(mktemp)
plain_file=$(mktemp)
printf '%s' "$html" >| "$html_file"
printf '%s' "$plain" >| "$plain_file"
swift -e "
import AppKit
let html = try! String(contentsOfFile: \"$html_file\", encoding: .utf8)
let plain = try! String(contentsOfFile: \"$plain_file\", encoding: .utf8)
let pb = NSPasteboard.general
pb.clearContents()
pb.setString(html, forType: .html)
pb.setString(plain, forType: .string)
"
rm -f "$html_file" "$plain_file"
Slack's rich text paste interprets HTML. Key mappings:
**bold** → <strong> → bold in Slack_italic_ → <em> → italic in Slack`code` → <code> → inline code in Slack<pre><code> → code blocks in Slack- item → <ul><li> → bullet lists in Slack[text](url) → <a href> → clickable links in Slack