Help us improve
Share bugs, ideas, or general feedback.
From communication-plugin
Converts Markdown and plain text to Google Chat-compatible formatting syntax, transforming headers to bold, lists to bullets, bold/italic/strikethrough, and preserving code. Use for Google Chat messages or documents.
npx claudepluginhub laurigates/claude-plugins --plugin communication-pluginHow this skill is triggered — by the user, by Claude, or both
Slash command
/communication-plugin:google-chat-formattinghaikuThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Expert knowledge for converting Markdown and plain text to Google Chat's limited formatting syntax. Google Chat supports a subset of formatting that differs from standard Markdown.
Formats Markdown to Slack rich HTML for copy-paste or mrkdwn for API/webhooks. Generates previews, copies to clipboard, supports tables, lists, emojis, mentions.
Guides mrkdwn syntax, message structure, thread etiquette, and tone for effective Slack messages in dev workflows.
Guides composing well-formatted Slack messages using standard markdown. Covers message structure, threading etiquette, tone, and supported Slack formatting.
Share bugs, ideas, or general feedback.
Expert knowledge for converting Markdown and plain text to Google Chat's limited formatting syntax. Google Chat supports a subset of formatting that differs from standard Markdown.
Format Conversion
Google Chat Limitations
Google Chat has no header support. Convert all headers to bold text:
# Header → *Header*
## Subheader → *Subheader*
### Section → *Section*
Pattern: Remove all # symbols and wrap text in single asterisks.
Google Chat uses single asterisks for bold (not double):
**bold** → *bold*
__bold__ → *bold*
*italic* → _italic_
_italic_ → _italic_
~~strikethrough~~ → ~strikethrough~
Key differences:
*text* (not **text**)_text_ (not *text*)~text~Preserve code blocks and inline code unchanged:
`inline code` → `inline code` (unchanged)
```code block``` → ```code block``` (unchanged)
Replace Markdown list markers with bullet symbols:
- item → • item
* item → • item
+ item → • item
1. numbered → 1. numbered (keep numbered lists)
Pattern: Replace -, *, + at line start with bullet symbol.
Label formatting (common in structured messages):
**Label:** → *Label:*
**Status:** text → *Status:* text
Normalize spacing for readability:
# Read file, convert, write output
cat input.md | sed -E 's/^#{1,6} (.+)$/*\1*/g' | \
sed -E 's/\*\*([^*]+)\*\*/\*\1\*/g' | \
sed -E 's/^[*+-] /• /g' > output.txt
# Quick conversion of text string
echo "## Header\n**bold** text\n- item" | \
sed -E 's/^#{1,6} (.+)$/*\1*/g' | \
sed -E 's/\*\*([^*]+)\*\*/\*\1\*/g' | \
sed -E 's/^[*+-] /• /g'
# Convert clipboard content
pbpaste | sed -E 's/^#{1,6} (.+)$/*\1*/g' | \
sed -E 's/\*\*([^*]+)\*\*/\*\1\*/g' | \
sed -E 's/^[*+-] /• /g' | pbcopy
# Convert all .md files in directory
for file in *.md; do
sed -E 's/^#{1,6} (.+)$/*\1*/g' "$file" | \
sed -E 's/\*\*([^*]+)\*\*/\*\1\*/g' | \
sed -E 's/^[*+-] /• /g' > "${file%.md}.gchat.txt"
done
For common conversion patterns (meeting notes, status updates, release notes), best practices, troubleshooting, integration examples, limitations, and advanced patterns, see REFERENCE.md.
| Markdown | Google Chat | Notes |
|---|---|---|
# Header | *Header* | All header levels |
**bold** | *bold* | Single asterisks |
__bold__ | *bold* | Underscores to asterisks |
*italic* | _italic_ | Single underscores |
- item | • item | Bullet symbol |
`code` | `code` | Unchanged |
# Headers
sed -E 's/^#{1,6} (.+)$/*\1*/g'
# Bold (asterisks)
sed -E 's/\*\*([^*]+)\*\*/\*\1\*/g'
# Bold (underscores)
sed -E 's/__([^_]+)__/\*\1\*/g'
# Lists
sed -E 's/^[*+-] /• /g'
# Collapse blank lines
sed -E '/^$/N;/^\n$/D'
# Strip trailing whitespace
sed -E 's/[ \t]+$//'
| Context | Command |
|---|---|
| Quick convert file | sed -E 's/^#{1,6} (.+)$/*\1*/g' file.md | sed -E 's/\*\*([^*]+)\*\*/\*\1\*/g' |
| Check for unconverted | grep -E '^\#|^\*\*' output.txt |
| Clipboard convert | pbpaste | sed -E 's/^#{1,6} (.+)$/*\1*/g' | pbcopy |