cd /news/ai-tools/authoring-markdown-externally-and-ge… · home › topics › ai-tools › article
[ARTICLE · art-142788] src=jvt.me ↗ pub= topic=ai-tools verified=true sentiment=↑ positive

Authoring Markdown externally and getting even 'prettier' output in Slack with `md2slack`

Developer Jamie Tanna published md2slack, a command-line tool built with Claude Sonnet 5 that converts external Markdown into Slack Block Kit messages, enabling rich rendering of tables, syntax-highlighted code blocks and formatted text in Slack. The tool requires creating and installing a Slack App into a workspace, which Tanna notes is not always straightforward at a company. Tanna built md2slack after reverse-engineering a colleague's Claude-posted Slack message that used Block Kit to render a table and code snippet inline.

read3 min views1 publishedSep 30, 2026

You know what's a little bit sad to think to yourself?

Wow, I'm a little bit jealous of how nice that person's Slack message looks

And yet, that something I thought to myself last week 😅

I was looking at a colleague's message - which was posted to Slack via Claude - and it had the regular sort of rendered-Markdown that you'd expect from Slack, but inline in the message it had a pretty-rendered table, and a syntax-highlighted code snippet, followed by other bits of text.

(Aside: I'm not really a fan of people using AI to post to Slack, because it infers that a) the human may not be involved in the loop and b) does that mean all our private conversations are now being ingested by the AI provider?)

This wasn't a "normal" message that could be posted normally, especially as it included multiple types of content all rendered nicely.

After doing some digging, it looks like it was created using the Slack Block Kit, which is much more powerful than the interface you get through Slack's clients.

With a bit of help from Claude Sonnet 5 I managed to get it to reproduce the message via Block Kit and some API calls, which then led me to what I really wanted - to be able to post these sorts of rich messages myself.

This is a step further on my journey of writing Markdown externally and then getting it into Slack, which I've talked about before on Linux or on Mac.

I set Claude Sonnet 5 on creating a command-line tool that would allow posting a richer Markdown body into Slack, which I've published as md2slack.

For example, let's take the following Markdown

<!-- Co-authored-by: Claude Sonnet 5 -->


**Status:** investigating — pods crash-looping since ~14:02 UTC.

We think this is caused by a bad config value pushed in the last release. See
the [rollout history](https://example.com/rollouts) for context.

## What we know

- Error only appears on the `us-east` cluster
- Started right after `v2.4.1` rolled out
- ~~Not~~ related to the database migration — ruled that out at 14:15

## Timeline

1. `14:02` — first crash loop alerts fire
2. `14:09` — on-call acknowledges
3. `14:15` — database migration ruled out

## Recent error counts

``` sql
select
 pod_name,
 COUNT(*) as errors
from
 app_logs
where
 service = 'payments-api'
 and level = 'ERROR'
 and ts > now() - interval '30 minutes'
group by
 pod_name
order by
 errors desc;
Pod Restarts Status
payments-api-7d9 14 CrashLoopBackOff
payments-api-a21 11 CrashLoopBackOff
payments-api-f03 0 Running

Rollback #

kubectl rollout undo deployment/payments-api -n us-east

Once rolled back, we'll confirm error rates return to baseline before closing this out.


This then renders as:

This is a much nicer view, and I'm looking forward to using it where I'm trying to share more in-depth examples that I've previously been using a snippet for (or dealing with Slack's not-that-good interface for).

Note that this does require you are able to [create and install an App](https://gitlab.com/tanna.dev/md2slack/#prerequisites) into your Slack Workspace, which isn't always as straightforward at a company.
── more in #ai-tools 4 stories · sorted by recency
── more on @md2slack 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/authoring-markdown-e…] indexed:0 read:3min 2026-09-30 · —