Claude writes it clean. You paste it into Teams. Your team sees a mess.
Penman bridges the gap.
Claude's answer is good. Now it has to land in front of someone else. Tell penman where it's going and get rich text on your clipboard, styled for that app: fonts matched, code highlighted, tables that survive the paste. ⌘V. Done.
claude's markdown, pasted as-is. the recipient scrolls past it.
Q3 launch notes
Ship date is Oct 14. The --dark flag is live.
| metric | target |
|---|---|
| signups | 4,000 |
| churn | < 2% |
|
actual output of penman --for word, unedited.
places your reader already is. Chat, docs, email, wikis, decks, notes.
thing you do: name the target. penman handles the formatting.
cleanup after you paste. It lands the way Claude meant it.
It knows what Slack renders.
Thirteen styled targets: chat, documents, email, wikis, decks, notes — plus a plain-text terminal mode for commands. Real values pulled from src/tokens.js, not approximations. This is what each app actually renders, so it never looks off to the person reading it.
| Platform | Kind | Body | Size | Leading | Code |
|---|---|---|---|---|---|
| slack | chat | Lato | 15px | 1.46668* | Monaco · 12px |
| teams | chat | Segoe UI | 14px | 1.5 | Consolas · 12px |
| discord | chat | gg sans | 16px | 1.375 | Consolas · 12px |
| word | document | Calibri | 11pt | 1.6 | Consolas · 10pt |
| google-docs | document | Arial | 11pt | 1.5 | Consolas · 10pt |
| notion | document | system-ui | 16px | 1.5 | SFMono-Regular · 14px |
| outlook | Calibri | 11pt | 1.5 | Consolas · 10pt | |
| gmail | Arial | 14px | 1.5 | monospace · 13px | |
| confluence | wiki | -apple-system… | 14px | 1.714 | SFMono-Medium · 12px |
| jira | wiki | -apple-system… | 14px | 1.714 | SFMono-Medium · 12px |
| powerpoint | deck | Calibri | 18pt | 1.4 | Consolas · 14pt |
| google-slides | deck | Arial | 18pt | 1.4 | Courier New · 14pt |
| craft | notes | ui-sans-serif | 17px | 1.5 | ui-monospace · 14px |
* 1.46668. Yes, really: Slack's actual line height.
Slack eats your <h1>.
Teams collapses your <p>. Discord dumps your table's cells into one line. Chat apps strip structure on paste, so penman doesn't send them structure. Your terminal wants the opposite extreme — no formatting at all — so penman strips it back to the bare command.
Chat targets
<strong> for headings, <br> for spacing, and tables re-set as aligned text inside <pre>. That's the one table layout Slack can't ruin:
the same table, set for slack.
Document & email targets
Real semantic HTML with explicit inline styles on every element. Absolute pt/px sizes, not em. Word doesn't do relative.
| metric | target |
|---|---|
| signups | 4,000 |
| churn | < 2% |
the same table, set for word.
Terminal targets
No formatting at all — just the command. penman lifts it out of the code fence, drops the prose, and copies plain text. The trailing newline is trimmed, so the last line waits for your Enter instead of running on paste.
the command, set for your shell.
Three steps. No magic.
Tokens
Resolve the platform's recipe (fonts, sizes, colors, code styling) for light or dark. Your ~/.penman.json5 overrides merge in.
Render
marked parses the markdown, highlight.js colors the code, and every element gets explicit inline styles. Nothing left to strip.
Clipboard
The HTML is hex-encoded and set as «class HTML» via osascript, with a plain-text fallback for targets that want none of it.
Your shop, your type.
Every token (fonts, sizes, colors, code styling) can be overridden in ~/.penman.json5. Globally, or per platform.
{
// everywhere
tokens: { codeFontFamily: 'Fira Code, monospace' },
// just slack
platforms: {
slack: { tokens: { fontFamily: 'Inter, sans-serif' } },
},
}
penman --for slack --tokens lists everything you can touch.
Just say where it's going.
No flags to remember. The penman MCP tools hand Claude the converter, so you just talk like a person.
"pen that for teams"
claudeOn your clipboard, styled for Teams: Segoe UI, 14px, the works. ⌘V away.
also works: "penman the release notes for slack" · "make this paste-ready for word, dark mode" · "pen this command for the terminal" · "what platforms can you style?"
- penmanconvert and copy to the clipboard (the everyday one)
- penman_htmlconvert and return the HTML, clipboard untouched
- penman_craftconvert to Craft blocks (JSON) for writing straight into Craft
- penman_platformslist every platform and its recipe
Install once, from the RTD marketplace:
/plugin marketplace add ryanthedev/rtd-claude-inn /plugin install penman@rtd /penman:install
Prefer ceremony? /penman:pen --slack ./notes.md works too. So does the CLI: penman --for word --theme dark notes.md