home / skills / laurigates / claude-plugins / google-chat-formatting

This skill converts Markdown text to Google Chat formatting, preserving emphasis, code, and lists for clean chat messages.

npx playbooks add skill laurigates/claude-plugins --skill google-chat-formatting

Review the files below or copy the command above to add this skill to your agents.

Files (2)
skill.md
5.0 KB
---
model: haiku
created: 2025-12-16
modified: 2026-02-14
reviewed: 2025-12-16
name: google-chat-formatting
description: Convert text to Google Chat compatible formatting (Markdown to Google Chat syntax). Use when formatting messages for Google Chat, converting Markdown documents for Google Chat, or when the user mentions Google Chat formatting.
allowed-tools: Read, Write, Edit, Bash
---

# Google Chat Formatting

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.

## Core Expertise

**Format Conversion**
- Transform Markdown headers to bold text
- Convert list markers to bullet symbols
- Adapt bold/emphasis syntax to Google Chat format
- Preserve code blocks and inline code
- Ensure mobile-friendly spacing and readability

**Google Chat Limitations**
- No native header support (use bold instead)
- Limited text formatting (bold, italic, strikethrough, code)
- Bullet symbols (U+2022) instead of hyphen lists
- No nested formatting (bold inside italic, etc.)
- No tables, images, or advanced Markdown features

## Conversion Rules

### Headers to Bold Text

Google Chat has no header support. Convert all headers to bold text:

```markdown
# Header           → *Header*
## Subheader       → *Subheader*
### Section        → *Section*
```

**Pattern**: Remove all `#` symbols and wrap text in single asterisks.

### Text Formatting

Google Chat uses single asterisks for bold (not double):

```markdown
**bold**          → *bold*
__bold__          → *bold*
*italic*          → _italic_
_italic_          → _italic_
~~strikethrough~~ → ~strikethrough~
```

**Key differences**:
- Bold: Single asterisks `*text*` (not `**text**`)
- Italic: Single underscores `_text_` (not `*text*`)
- Strikethrough: Single tildes `~text~`
- No nested formatting support

### Code Formatting

Preserve code blocks and inline code unchanged:

```markdown
`inline code`     → `inline code` (unchanged)
```code block```  → ```code block``` (unchanged)
```

### Lists

Replace Markdown list markers with bullet symbols:

```markdown
- item            → • item
* item            → • item
+ item            → • item
1. numbered       → 1. numbered (keep numbered lists)
```

**Pattern**: Replace `-`, `*`, `+` at line start with bullet symbol.

### Special Patterns

**Label formatting** (common in structured messages):

```markdown
**Label:**        → *Label:*
**Status:** text  → *Status:* text
```

### Whitespace

Normalize spacing for readability:
- Collapse multiple blank lines to single blank line
- Strip trailing whitespace

## Essential Commands

### Convert Markdown File

```bash
# 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
```

### Convert Inline Text

```bash
# 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'
```

### Process Clipboard (macOS)

```bash
# Convert clipboard content
pbpaste | sed -E 's/^#{1,6} (.+)$/*\1*/g' | \
  sed -E 's/\*\*([^*]+)\*\*/\*\1\*/g' | \
  sed -E 's/^[*+-] /• /g' | pbcopy
```

### Batch Processing

```bash
# 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](REFERENCE.md).

## Quick Reference

### Conversion Patterns

| 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 |

### Sed Commands

```bash
# 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]+$//'
```

## Agentic Optimizations

| 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` |

## Resources

- **Google Chat Formatting**: https://support.google.com/chat/answer/7649118
- **Markdown Guide**: https://www.markdownguide.org/basic-syntax/
- **Sed Reference**: https://www.gnu.org/software/sed/manual/sed.html
- **Unicode Bullet**: U+2022

Overview

This skill converts Markdown and plain text into Google Chat compatible formatting so messages render correctly in Chat. It focuses on the subset of formatting Google Chat supports and produces compact, mobile-friendly output. Use it to prepare notes, status updates, or any content that will be pasted into Google Chat.

How this skill works

The skill inspects input for common Markdown patterns (headers, bold, italic, strikethrough, lists, and code) and rewrites them into Google Chat syntax: headers become bold, double-asterisk bold becomes single-asterisk, italics convert to underscores, list markers become Unicode bullets, and code blocks/inline code are preserved. It also normalizes blank lines, strips trailing whitespace, and preserves numbered lists and code fences unchanged. Simple sed-based commands are provided for file, clipboard, and batch processing.

When to use it

  • Preparing meeting notes or agendas for Google Chat
  • Converting Markdown documents for pasting into Chat threads
  • Formatting status updates and release notes for Chat distribution
  • Quickly sanitizing clipboard content before sending to Chat
  • Automating conversion in CI or local scripts before notifications are posted

Best practices

  • Convert headers to bold rather than attempting nested header styling
  • Keep formatting simple: avoid nested bold/italic combinations not supported by Chat
  • Preserve code blocks exactly; do not attempt to convert code fencing to inline styles
  • Collapse multiple blank lines to a single blank line for better mobile readability
  • Run a grep check for leftover Markdown markers after conversion to catch edge cases

Example use cases

  • Convert a Markdown meeting note (.md) to a Chat-ready .txt file for sharing
  • Pipe clipboard contents through the conversion before pasting into Google Chat on macOS
  • Batch-convert all release notes in a directory into Chat-formatted files for release announcements
  • Embed conversion in a CI step to format automated status messages sent to a Chat room
  • Quickly convert inline Markdown in a terminal before copying a snippet to Chat

FAQ

Does the skill support images or tables?

No. Google Chat does not support Markdown tables or inline images in the same way; this skill does not attempt to convert them.

Will nested formatting be preserved?

No. Google Chat lacks reliable nested formatting support, so nested bold/italic combinations are not preserved; the skill flattens them to a supported form.