Codex wired Steel and Resend into a daily newsletter

Codex wired Steel and Resend into a daily newsletter

Apr 4, 2026

Apr 4, 2026

/

San Francisco

/

Dane Wilson

Nikola Balic

Nikola Balic

Codex can run shell commands. Steel CLI can scrape the web. Resend CLI can send email. Wire the three together and you have a personal newsletter, no plugin marketplace required.

Instead of building a plugin for every service your agent might touch, give it CLIs that already exist. The agent composes them on its own.

We pointed Codex at Hacker News, told it to find the top 5 AI stories, email us the results, and then write a script so we never have to do it again. Took a few minutes. Most of that was the agent figuring out our email address.

Setup

Install Steel CLI:

curl -LsSf https://setup.steel.dev | sh
curl -LsSf https://setup.steel.dev | sh
curl -LsSf https://setup.steel.dev | sh
curl -LsSf https://setup.steel.dev | sh

Install the browser skill so your agent knows how to use Steel:

npx skills add https://github.com/steel-dev/cli --skill
npx skills add https://github.com/steel-dev/cli --skill
npx skills add https://github.com/steel-dev/cli --skill
npx skills add https://github.com/steel-dev/cli --skill

Make sure Resend CLI is available in the same environment. Codex will find it.

What happened

We ran Codex in full-auto mode and gave it one instruction:

$steel-browser Fetch the top 5 AI stories from Hacker News and email them to me.

It ran steel scrape against Hacker News and got back clean markdown. One command. Steel runs a real browser in its cloud, renders the page, returns the content. No local Chrome, no drivers, no proxies.

Codex parsed the markdown, filtered for AI stories, ranked them. Then it found Resend CLI, composed an email. It didn't know our address. We told it. It sent the email.

The result itself, whatever. The part worth paying attention to: nobody wrote glue code. Codex read both CLIs' --help output and wired them together on its own.

Not just Hacker News

The version we actually use hits half a dozen sites. TechCrunch for startup noise. ArXiv for papers. The OpenAI and Anthropic blogs for model drops. steel scrape against each one, merge, deduplicate, compose one email. We've been running this every morning.

Session to script to cron job

After the first run, we told Codex:

Now create a script based on what you just did.

It wrote a bash script. All the messy exploration from the first run compressed into concrete steps. It knew which flags mattered because it had just lived through the trial and error.

Then we dropped it into cron:

crontab -e
0 8 * * * /usr/local/bin/daily-newsletter.sh
# daily AI digest, zero maintenance
crontab -e
0 8 * * * /usr/local/bin/daily-newsletter.sh
# daily AI digest, zero maintenance
crontab -e
0 8 * * * /usr/local/bin/daily-newsletter.sh
# daily AI digest, zero maintenance
crontab -e
0 8 * * * /usr/local/bin/daily-newsletter.sh
# daily AI digest, zero maintenance

Manual run, then bash script, then cron job. Each step removes a human from the loop.

Why CLIs, not plugins

Plugin ecosystems are bottlenecks. Someone builds the plugin. Someone else maintains it. The agent can only do what the plugin author thought to expose.

CLIs already exist for almost everything. Resend, Steel, gh, aws, jq, curl, a few hundred others. An agent that can shell out doesn't need a purpose-built integration for every service. It needs PATH and --help.

We've used this pattern for newsletters, dashboard monitoring, and competitive research. Resend has sending limits on the free tier, so check that before you point this at 1000 people.

Try it

curl -LsSf https://setup.steel.dev | sh
npx skills add https://github.com/steel-dev/cli --skill

curl -LsSf https://setup.steel.dev | sh
npx skills add https://github.com/steel-dev/cli --skill

curl -LsSf https://setup.steel.dev | sh
npx skills add https://github.com/steel-dev/cli --skill

curl -LsSf https://setup.steel.dev | sh
npx skills add https://github.com/steel-dev/cli --skill

Start with one source. Scrape it, email yourself the results, then ask the agent to write the script. Add sources when the first one works. Then cron it.

Ready to

Build with Steel?

Ready to

Build with Steel?

Ready to

Build with Steel?

Ready to Build with Steel?

A better way to take your LLMs online.

© Steel · Inc. 2025.

All Systems Operational

Platform

Join the community