
/
San Francisco
/


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:
Install the browser skill so your agent knows how to use Steel:
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:
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
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.
All Systems Operational

