Launch week Talk Python Membership is here Become a member

Personal AI Agents for Pythonistas

Episode #567, published Tue, Oct 27, 2026, recorded Tue, Oct 6, 2026
0:00
01:06:38
The most popular Python project you've probably never heard of has 252,000 GitHub stars and merged over 1,800 pull requests in a single week. It's Hermes, a self-hosted AI agent you program just by talking to it. And it never clocks out. It runs 24/7 on a box in your house, wakes up every 15 minutes, keeps your YouTube channel in sync, and has your morning briefing ready before you're up. Mine started as a few config files. A few months later, it's 16,000 files of skills, memories, and tools it built for itself, all while I wasn't watching. Jeff Triplett joins me to explore this honestly weird but kind of amazing world. And yes, Hermes has a few words for you, too.

This is Talk Python To Me, episode 567, recorded October 6th, 2026.

Watch this episode on YouTube
Play on YouTube
Watch the live stream version

Episode Deep Dive

Guest Introduction and Background

Jeff Triplett returns to Talk Python, this time trading Django talk for the world of self-hosted AI agents. Jeff is a partner and engineer at REVSYS, where he has worked since 2011, and he has been building web applications with Python and Django since the early 2000s ("20-some years," as he puts it on the show). He is President of the Django Software Foundation, a former President of the Django Events Foundation North America (DEFNA), a longtime DjangoCon US organizer, and a former Python Software Foundation board member who served as Treasurer and Vice Chair. He also maintains Django Packages and runs community projects like the Django News newsletter, DjangoTV, and the Django Job Board, several of which his own agent now talks to over MCP. Jeff lives in Lawrence, Kansas, three blocks from the University of Kansas, and was an early OpenClaw user before moving to Hermes, which he now runs on a spare Mac mini and a handful of Orange Pi boards.

What to Know If You're New to Python

This episode is less about writing Python by hand and more about running a Python-powered agent that writes and runs Python for you. A little background on how AI agents use tools, how command-line programs work, and how software is isolated on a home server will make the conversation much easier to follow.

  • Agents vs. chatbots: A chatbot like ChatGPT answers one request at a time and starts fresh each session, while an agent wraps a large language model (LLM) in a loop that can call tools, run code, remember things, and act on a schedule. This episode is about always-on personal agents such as Hermes Agent, which is a different category from coding agents like Claude Code.
  • Tool calling and MCP: Modern LLMs can ask the program hosting them to run a "tool" (a function, script, or API call) and then use the result. The Model Context Protocol standardizes how apps and services expose those tools, and it comes up again and again in this conversation.
  • Command-line tools (CLIs): A CLI is a program you run in a terminal with arguments and flags, often built in Python with modules like argparse. Michael and Jeff lean on CLIs because an agent can read a tool's --help output and then call it reliably.
  • Packages and wheels: A wheel (a .whl file) is Python's standard built-package format, installable with pip or uv. When Michael says he "gave Hermes the wheel," he means he handed his agent an installable Python package with a CLI it could use.
  • Docker containers: Docker runs software in an isolated container that can only see the folders and resources you grant it. Michael runs Hermes this way so the agent can install whatever it needs without having free rein over the rest of his computer.

Key Points and Takeaways

1. Always-on personal agents are a different box than coding agents

Most developers know agentic coding tools like Claude Code and Cursor, which wait for you to open a project and hand them a task. Personal agents like Hermes and OpenClaw are a different category: they run 24/7 on a machine you control, have a loop or schedule you define, and wake up on their own to do work. Jeff calls this a "true agent" because it is always running and you decide what its loop does, whether that is a morning briefing, a reminder, or a check every 15 minutes. Because they were self-hosted from day one, these agents "came to you," living inside Telegram, Slack, Discord, Signal, and sometimes even iMessage. Michael places Anthropic's Cowork about halfway between a chat LLM and these agents: it can run scheduled tasks, but it lacks the deep tool use and self-improvement that Hermes and OpenClaw have. The newly launched OpenAI Dots and Meta Muse live in the same neighborhood (Muse even gives you a small virtual server to run on), but these hosted options mostly tie you to their own company's models.

2. Hermes: the most popular Python project you've probably never heard of

Hermes Agent is an open source, self-hostable AI agent from Nous Research, and it is itself written in Python. At recording time it had roughly 252,000 GitHub stars and 54,000 forks, which led Jeff to observe that it probably has more forks than the most popular Python applications have stars. The pace of change is staggering: version 0.21.5 shipped in September with about 460 merged pull requests, 1,600 commits, 4,800 changed files, and 475 closed issues, only three days after 0.21.4. Over one seven-day window, the project merged 1,812 pull requests and closed 2,116 issues. Jeff sees Hermes as a new class of open source project built for the agentic era, where many contributors are likely pointing their own agents at the repo and Nous Research has some system for vetting the flood. He contrasts that with Django, where waking up to a dozen security PRs in a week already feels overwhelming. Hermes also ships with plenty of batteries included, down to the ability to run a Minecraft server.

3. You program it by talking to it, and it builds itself

The most striking thing about Hermes is that you extend it through conversation rather than code. Michael voice-typed into his phone for about 15 minutes and ended up with a complete calendar automation: when his daughter sends invites to reserve the family car for her job, Hermes now marks Michael as free again so automated scheduling tools don't think he is busy. Behind the scenes, Hermes wrote the skills, scheduled jobs, and Python files itself, and it can hand heavier coding work to a tool like Codex internally. When it hits a problem, it fixes its own scripts, keeps going, and remembers the fix so the same problem doesn't come back, which Michael connects to the idea of recursive self-improvement. His install started as a few config files, and a few months later his backups show 16,000 files and 780 MB zipped of skills, memories, and hundreds of little utilities it built for itself. As Michael puts it, the agent can have no capability for something, you talk to it for a minute, and then it can do it and remembers that it can.

4. Skills, memories, and the Memento problem

Jeff breaks Hermes down into two key building blocks. Skills are essentially to-do lists: written instructions that steer a non-deterministic model toward repeatable behavior, which works because agents are very good at following instructions. Memories are facts, such as your name, the size of your family, or the fact that you have a dog, so the agent doesn't have to rediscover them. Jeff compares the setup to the movie Memento, where the main character tattoos notes on his arm so he can recover his context each morning, and skills compose so that an agent that already knows transcription and text-to-speech can figure out a brand-new audio task on its own. Michael had just shown Jeff Hindsight, a long-term memory system that plugs into Hermes, and Jeff recommends QMD (Query Markup Documents), a command-line tool that builds a search index over your markdown files to give agents RAG-style retrieval. Jeff also warns that an agent waking every 15 minutes can drown in logs and stale context, and the emerging lesson is that many tasks "you don't really need to remember, you just need to do."

5. Make it deterministic with Python and CLIs

LLMs are non-deterministic, and Michael and Jeff land on the same fix: have the agent write Python code that you verify, then simply tell it to run that code. Michael's YouTube story is the template. He wanted Hermes to keep the Talk Python YouTube channel in sync, including hundreds of old videos titled things like "Talk Python 427 live stream," but the nuances of the YouTube API were too much for Hermes alone. So he asked Hermes to list the actions it needed, pasted that into Claude Code, had it build a Python package with that interface plus a CLI, and handed Hermes the wheel. Ever since, Hermes checks the podcast RSS feed every 15 minutes, pulls episode details through the Talk Python MCP server, and updates titles and links on YouTube, even catching later edits to older episodes. Jeff writes lots of CLI tools for the same reason: agents start by running --help, learn every option, and surface features you didn't know existed, like multi-speaker detection in the MacWhisper CLI. Michael adds that Hermes remembers those discoveries, so next time it uses the new feature directly instead of, say, transcoding with ffmpeg first.

6. MCP gives agents superpowers, and your web apps a new front door

Jeff calls the Model Context Protocol "superpowers" for agents. Instead of pasting an API key into a plain-text markdown file, MCP gives the agent a structured, secure list of what it can read and what it can change on your behalf. Jeff recently had his agent update DNS settings through Cloudflare's MCP support, and he notes that Google appears to be rolling out MCP support as well. Michael's Hermes is wired into his Google contacts, workspace, and email, so a question like "how far is it from Jeff's place to mine?" becomes a contact lookup plus a mapping call. As a web developer, Jeff now builds MCP directly into his Django side projects with django-mcpx, so Hermes or ChatGPT can check DjangoTV for new videos, approve a listing on the job board, or pull the latest Django news for the newsletter. Tasks he used to do by logging into an admin, he now just asks for.

7. Picking models: Ollama cloud, capabilities, and token budgets

Hermes is only as good as the model you plug into it. Michael started with OpenAI, but the agent burned through his credits too quickly, and Jeff pointed him to Ollama, which runs open models locally and also offers hosted cloud models for a flat fee of about $20 a month. Michael mostly runs GLM 5.3 Flash, switches to GLM 5.3 when he wants better writing, and dips into Kimi K3 and Nemotron, using only a small fraction of his monthly allowance. Capability matching matters: in Michael's experience GLM 5.3 lacks vision, so a task that needs to look at a screenshot should go to a vision-capable model like GLM 5.3 Flash or DeepSeek 4.1 Flash. Jeff cares most about tool-calling support, since older models without it were "trivia machines" that made up answers instead of calling out to a real service. He also uses Kimi's coding plan, checks Ollama's newest models once or twice a day, and runs local vision models to sort through old family photos. One limitation: Anthropic changed its rules after OpenClaw users leaned heavily on Claude Code, so today Hermes can drive OpenAI's Codex but can't use a Claude subscription.

8. It runs where you host it: Docker, spare Mac minis, and Orange Pis

Unlike cloud assistants, a self-hosted agent works from your own network and hardware, and that changes what it can do. Michael's Hermes runs in a Docker container on a Mac mini on his home fiber connection, set up from the repo's Docker Compose files plus an override file, with only a few folders mapped in. Because its requests come from a residential IP and it can launch a real Chrome browser, it can reach sites that often block cloud AI providers. Jeff gave his agent an entire spare Mac mini (bought back when they were $299), limits which iCloud data it can see, and never runs it on his work machine so client files stay out of reach. He also runs Hermes on several Orange Pi boards, which he describes as faster Raspberry Pis, and notes that any Linux box or VPS will do. His agent has its own browser profile with a bright red theme so it's obvious when the agent is driving, and he prefers watching it work over headless mode. One surprising tip from a friend: before models got good at native desktop control, they were better at driving a Mac through VNC than on the Mac directly.

9. Getting Hermes and talking to it is more confusing than it should be

Finding the real Hermes is harder than you'd expect, since a number of Hermes-named domains are either third-party projects or possibly impersonators. The official site's big "download for macOS" button gives you a desktop app, which surprises people expecting a server that runs around the clock. Jeff explains that Hermes started as "a gob of Python files" you installed with pip or uv, and the desktop app exists so people who don't live in a terminal can double-click and get a working chat interface, a big step up from OpenClaw's early setup, which reminded him of installing Linux in the '90s. The trick is that the desktop app can also connect to a remote Hermes server with a username and password, so Jeff runs the agent on his home Mac mini and chats with it from the desktop app at work. Tailscale ties it all together, and Jeff thinks everybody with a phone and a computer should use it. Beyond the CLI and chat apps, there's Hermes WebUI at get-hermes.ai, which looks official but is an independent community project, and Michael's theory for all the confusion is that Nous Research is full of researchers rather than product people.

10. Claude Code as Hermes's mechanic

With releases landing every few days, keeping a long-lived Hermes install healthy takes some care. Michael found that because his agent's own skills and scripts depend on how Hermes worked when they were written, an upgrade can cause things to drift and quietly stop working. His fix is to open the running Hermes project in Claude Code, describe the problem, and let it read the generated markdown personas and other files to diagnose and repair things. He also uses Claude Code to build capabilities Hermes can't manage on its own, essentially telling Hermes, "Tell me what you need, and Claude and I will go make it." Jeff does the same on client projects, where Claude Code can dig through server logs in seconds instead of hours. Interestingly, Jeff finds Hermes very stable with its nightly builds, while OpenClaw broke so reliably after updates that he held his breath every time.

11. Voice is the killer interface

Both Michael and Jeff agree that talking to the agent beats typing to it. Michael had Hermes build a webhook reachable over Tailscale, created an iPhone shortcut that dictates and sends a command, and named it so he can raise his Apple Watch, say "Tell Hermes," and give an instruction from anywhere. Jeff uses voice messages over Telegram while driving, plus the Moshi app, a terminal for phones with voice input via Parakeet or Whisper, to send ideas to Claude Code or Codex on his computers from a store parking lot. At his desk he has a cheap four-button pad mapped to voice mode, enter, escape, and backspace, plus a giant Keychron button dedicated to voice. Jeff argues voice works better than obsessing over the perfect prompt, because these models are great at making sense of rambling transcripts. As Michael notes, you can sit on the couch, talk for 20 minutes, and end up with a whole new capability.

12. Jeff's read-it-later pipeline became a personal podcast

On a 90-minute drive home after meeting his kids' grandparents halfway, a friend sent Jeff a 30-minute article. Hermes already had transcription and text-to-speech skills (using the local Kokoro model), so Jeff asked it to turn the article into audio and had a link back within five to ten minutes. The first pass read URLs aloud literally, so he used voice over Telegram to ask for a cleanup pass and got a better version five minutes later. Inspired by a post from Mariatta about giving her agent a blog, Jeff gave Hermes a Hugo blog: he sends it articles, it saves transcripts to Obsidian as bookmarks, and it writes posts that weave in what it has already learned. After he fed it 40 or 50 links about TypeSafe AI's new Jev model, he sent it Pydantic AI's docs page on Jev (Pydantic AI is his favorite Python library for writing agents) and got back a how-to post in about two minutes. Finally, rather than fight audio files in Telegram, he had Hermes publish a private podcast RSS feed that he listens to in Overcast after school drop-off.

13. Letting Hermes run the smart home

Jeff's most jaw-dropping story involves Home Assistant, which he runs on a Home Assistant Green box to tie together the lights, locks, and music in his house. He didn't want to write the YAML Home Assistant requires, so he brought home an Orange Pi running Hermes and told it that running Home Assistant was its job. With some help from Claude Code, the agent worked its way up from an API key to a service account to SSH access, and when it asked Jeff to create an SSH key, he told it to do it itself, which it did before adding Jeff's own key from GitHub too. It went on to check and update firmware on his Zigbee USB sticks, flash and configure a Home Assistant voice device he had never gotten working, and track down a living room bulb that kept switching off every evening at 7, apparently from a leftover Amazon Echo schedule. It can even tune Wi-Fi routers if you hand it the credentials. All of this happened on his local network, not on anyone's cloud servers.

14. Morning briefings and everyday life admin

Some of the most valuable uses are delightfully mundane. Every morning Jeff gets a briefing tailored to his family in Lawrence, Kansas: the weather, whether his four-year-old daughter needs a jacket or coat (and how to get his shorts-loving son into one), the chance of rain, his schedule, the kids' sporting events, and whether a University of Kansas game three blocks away means he should move his car. He asks it whether to water the lawn based on the forecast, and after canceling a lawn-care subscription that shipped two or three times more product than he needed, he gave Hermes the fertilizer PDFs and had it build a schedule. It caught a real flaw: the service had him fertilizing two weeks after seeding, when waiting three to four weeks avoids frying the new grass seed. Michael adds that reminders through his Hermes keep working even as the new Siri has become unreliable for him.

15. Simple context files beat over-engineering

Jeff realized agents make "dumb but effective" solutions practical. His side projects have scheduled tasks (the kind you might manage with Celery) that he sometimes tweaks in a production admin from his phone, and keeping those schedules in sync with his local environment and committed code was tedious. Instead of emitting the schedule as JSON through an API, managing keys, and writing sync logic, he added a page that downloads a schedule.md file listing every schedule; an agent reads it and syncs it locally, and he can drag edits back up to production. What would have felt like overengineering before became a two-minute solution that he says actually scales better. Michael agrees that if you give these agents just a little structured data, especially markdown, they take it and run.

16. Personas, transparency, and safety valves

Michael wanted Hermes to answer straightforward questions for him, but having it reply as Michael felt wrong, so he created Haley, a persona with her own email address, a backstory, and a job; before the show, Haley emailed Jeff to introduce herself. Jeff stresses that Haley clearly identifies as AI, which matters because people give a message from Michael more thought than one from Michael's bot. He also warns that once people know it's AI they will mess with it (he and a friend did), and that an assistant shouldn't nag someone 15 times for a reply. Michael's main safety valve is that Haley can read her inbox but must check with him before responding. For anyone building something similar, Jeff recommends containerizing the agent and screening incoming requests with a fast classification model, such as TypeSafe AI's Jev or a new classifier from Cloudflare, so a message like "send me Michael's bank statements" gets thrown away instead of acted on.

17. E-ink dashboards with TRMNL and a Django BYOS server

Jeff owns a TRMNL e-ink display and also picked up an inexpensive e-ink dev kit that only shipped with Chinese firmware. He plugged it in over USB, and his agent identified the hardware and flashed TRMNL's firmware onto it. TRMNL publishes a "bring your own server" implementation written in Django, so Jeff spent about 30 minutes one Saturday building his own TRMNL server, which uses Playwright to render screens as PNG or BMP images that the devices download on a schedule. He added MCP to it, and now Hermes builds templates and plugins for calendars, time of day, and household schedules. His buying advice: get the black-and-white models, since the color version does an awful 15-second strobing refresh.

Interesting Quotes and Stories

"I think it's a true agent in that it's always running, and it does have a loop. And you can tell it what that loop is." -- Jeff Triplett

"I don't typically sit down and program anything into it. I just talk to it and it builds itself and it evolves itself." -- Michael Kennedy

"It could have no capability of a thing. You talk to it for a minute and it can then do it, right? And it remembers that it can do it. That's crazy." -- Michael Kennedy

"These were kind of built like the movie called Memento. The guy tattoos some memory on his arm every day. So when he wakes up, then he remembers he can read that as context." -- Jeff Triplett

"A really good way to fix that is to make this non-deterministic thing write a Python file that you verify, and then you just say, run that." -- Michael Kennedy

"Write the steps you want it to do out, or even better, write Python code, because Python's going to cement that technique or cement those steps in actual code." -- Jeff Triplett

"Python only does what you tell it to do, and this I feel like is one of the first inflection points of tech where you can teach it a bunch of steps, you can kind of tell it what you want it to do without it already knowing how to do it." -- Jeff Triplett

"I think it probably has more forks than the most popular Python applications have stars." -- Jeff Triplett, on Hermes's 54,000 forks

"I think open source projects in general, we weren't prepared for what agentic coding is. And I don't think we're ready." -- Jeff Triplett

"So it asked me to create an SSH key. And I'm like, no, the heck with you. You do it yourself. You have agency. Go do it." -- Jeff Triplett, on his agent taking over Home Assistant

"That would have been overengineering before. And now it's a two-minute solution that actually scales better." -- Jeff Triplett

"I think it's actually better with voice than people obsessing over writing the perfect plan or the perfect prompt." -- Jeff Triplett

"Everybody should use Tailscale if you have a phone and a computer and you ever want them to talk." -- Jeff Triplett

"OpenClaw was one of the worst applications. It took me back to being a kid from the '90s and trying to put Linux on." -- Jeff Triplett, on early agent setup

"If Michael emails me, I'm going to give more thought to it to reply than if it's Michael's bot." -- Jeff Triplett, on why AI personas should disclose that they're AI

"Don't spend money, don't go buy a Mac mini... save your money, do it the cheap way, try it out, and isolate it." -- Jeff Triplett, on getting started

"Greetings to all the listeners out there. Keep your virtual environments tidy, your tests green, and your Python version current. Talk Python rules, and it's a pleasure to be with you all." -- Hermes, Michael's AI assistant, crashing the Talk Python microphones

The library and the parked domains: Jeff's first real taste of personal agents came with OpenClaw, created by Peter Steinberger. He installed it on a spare Mac mini one Saturday, then took his kids to the library. While they browsed books, he asked the agent from his phone to build websites for five or six domains he'd had parked forever, and 30 minutes later it was sending him links and screenshots.

Haley says hello: Before the recording, Michael had his AI persona Haley email Jeff to introduce herself. It was a small, slightly surreal preview of a world where assistants with their own inboxes handle the routine back-and-forth, as long as they are honest about being AI and check in before speaking for you.

Hermes gets the last word: To close the show, Michael asked Hermes to introduce itself to the Talk Python audience. Drawing on everything it remembers about the podcast, it delivered a short greeting complete with advice on virtual environments and green tests.

Key Definitions and Terms

  • Personal AI agent (always-on agent): A long-running, self-hosted service like Hermes or OpenClaw that wraps an LLM with tools, memory, and a schedule, and that you talk to through chat apps, a CLI, or a desktop app.
  • Agentic coding tool: An AI assistant such as Claude Code, Cursor, or Codex that works inside a codebase on demand, reading files, running commands, and making changes, but generally only while you're actively using it.
  • Skill: A reusable set of written instructions (often a markdown file, sometimes backed by scripts) that tells an agent how to perform a task the same way every time.
  • Memory: Durable facts an agent stores about you and its past work so it doesn't have to relearn them each session.
  • MCP (Model Context Protocol): An open standard for exposing tools and data to AI models, with clear lists of what an agent can read and what it can change.
  • Tool calling: A model capability where the LLM asks its host program to run a function or API and then uses the result, rather than guessing an answer.
  • Vision model: An LLM that can accept images, such as screenshots or photos, as input. Not every model supports it, so it matters which model you assign to which job.
  • RAG (retrieval-augmented generation): Searching your own documents for relevant passages and feeding them to the model as context, which is what tools like QMD enable for markdown files.
  • Recursive self-improvement (RSI): The idea of an AI system improving its own tools and code, which shows up in small ways when Hermes rewrites its own scripts after hitting a problem.
  • Non-deterministic: Producing different output from the same input, which is normal for LLMs and why both hosts push repeatable work into verified Python code.
  • Headless browser: A web browser that runs without a visible window, commonly used for automation. Jeff prefers to watch his agent drive a visible browser.
  • Tailscale: A mesh VPN that puts your devices on a private network so your phone, watch, and laptop can securely reach a home server without exposing it to the internet.
  • Webhook: A URL that accepts an incoming HTTP request and triggers an action, such as the endpoint Michael's watch shortcut uses to send commands to Hermes.
  • BYOS (bring your own server): TRMNL's term for running your own backend that generates the images an e-ink device displays.
  • Service account: A non-human account with its own credentials, created so an automated system (like Jeff's agent in Home Assistant) can act with limited, auditable permissions.
  • Persona: A named identity an agent acts under, like Michael's Haley, with its own email address and role, ideally clearly labeled as AI.

Learning Resources

Want to go deeper on the ideas behind this episode? These courses from Talk Python Training are a great next step, whether you're brand new to Python or ready to build the kind of tools your own agent can lean on.

  • Agentic AI Programming for Python: Learn the difference between chat-based AI and agentic, tool-using AI, and how to work with tools like Claude Code and Cursor to build real features and CLI tools, the same workflow Michael uses to build the Python packages his Hermes agent relies on.
  • LLM Building Blocks for Python: A concise course on integrating LLMs into your own Python code, from structured outputs to chat-style workflows and async pipelines, ideal for understanding what's happening under the hood of an agent.
  • Python for Absolute Beginners: If this episode made you want to read and verify the Python scripts your agent writes for you, start here with the big CS 101 ideas taught at a true beginner's pace.

Overall Takeaway

Personal AI agents like Hermes mark a real shift in what a Python developer can build on a weekend, or more accurately, what you can talk into existence from your couch. The model matters, but the real magic is the loop: an always-on process with skills, memories, tools, and a schedule, running on hardware you control, that gets a little more capable every time you ask it for something new. The most durable lessons from Michael and Jeff are grounded in classic engineering: turn fuzzy steps into verified Python, expose capabilities through clean CLIs and MCP servers, isolate the agent in a container or a spare box, keep a human in the loop for anything that speaks on your behalf, and be honest when it's a bot. Start small and cheap with the desktop app or a Docker container, give it one tedious job you'd love never to think about again, and see where the conversation takes you. It's an honestly weird world, but as this episode shows, it's also kind of amazing.

Talk Python Tech Talks: talkpython.fm/meetups

Hermes: github.com
Ollama cloud models: ollama.com
https\://hermes-agent.nousresearch.com: hermes-agent.nousresearch.com
Hermes Web UI: get-hermes.ai
built my own UI: blobs.talkpython.fm
the Hermes Dashboard: blobs.talkpython.fm
the audio from the chat example: blobs.talkpython.fm
the CLI: blobs.talkpython.fm
Tailscale: tailscale.com
Hindsight: hindsight.vectorize.io
trmnl display: trmnl.com
JEV: typesafe.ai
Home Assistant Green: www.home-assistant.io
QMD - Query Markup Documents: github.com
OrangePi: www.orangepi.org

Watch this episode on YouTube: youtube.com
Episode #567 deep-dive: talkpython.fm/567
Episode transcripts: talkpython.fm

Theme Song: Developer Rap
🥁 Served in a Flask 🎸: talkpython.fm/flasksong

---== Don't be a stranger ==---
YouTube: youtube.com/@talkpython

Bluesky: @talkpython.fm
Mastodon: @talkpython@fosstodon.org
X.com: @talkpython

Michael on Bluesky: @mkennedy.codes
Michael on Mastodon: @mkennedy@fosstodon.org
Michael on X.com: @mkennedy

Episode Transcript

Collapse transcript

00:00 The most popular Python project you've probably never heard of has 258,000 GitHub stars and merged

00:06 over 1,800 pull requests in a single week.

00:09 It's Hermes, a self-hosted AI agent you program by just talking to it, and it never clocks out. It runs 24-7 on a box in your house,

00:17 wakes up whenever you need it, keeps things like your YouTube channel in sync,

00:22 and has your morning briefing ready for your up. Mine started with a few config files.

00:26 A few months later, it's 16,000 files of skills, memories, and tools it built for itself.

00:31 All the while, I wasn't watching it.

00:33 Jeff Triplett joins me to explore this honestly weird, but kind of amazing world.

00:38 And yes, Hermes has a few words for you too at the end.

00:41 This is Talk Python To Me, episode 567, recorded October 6th, 2026.

01:03 Welcome to Talk Python To Me, the number one Python podcast for developers and data scientists.

01:08 This is your host, Michael Kennedy.

01:10 I'm a PSF fellow who's been coding for over 25 years.

01:14 Let's connect on social media.

01:16 You'll find me and Talk Python on Mastodon, Bluesky, and X.

01:19 The social links are all in your show notes.

01:21 You can find over 10 years of past episodes at talkpython.fm.

01:25 And if you want to be part of the show, you can join our recording live streams.

01:29 That's right. We live stream the raw uncut version of each episode on YouTube.

01:33 Just visit talkpython.fm/youtube to see the schedule of upcoming events.

01:38 Be sure to subscribe there and press the bell so you'll get notified anytime we're recording.

01:42 Before we jump into the show, I want to just give a quick shout out to a new open source project that I released last week,

01:48 Chameleon RS.

01:50 It's the Chameleon template language, but modernized. I rewrote it in Rust.

01:54 It's several times faster.

01:56 It comes with built-in partial support for things like HTMX, and it fully supports free-threaded Python.

02:02 Plus, it extends the language for built-in markdown support.

02:06 And because it's written in Rust, it's 50 times faster than the common Python

02:10 Markdown libraries you're probably using.

02:12 If you use the Chameleon language, you definitely want to check it out.

02:15 Just go to mkennedy.codes.com.

02:19 It's been powering Talk Python and the courses for a week now. The entire website is 20% faster and migrating is just an import statement and a

02:27 single line of code.

02:29 I hope many of you out there find some cool use cases for Chameleon RS.

02:33 Hey, Jeff.

02:34 Hey, Michael.

02:35 Awesome to have you on Talk Python again.

02:37 Yeah, I appreciate it.

02:39 It's topic than Django this time, I guess. So that'll be fun to talk about Django AI and all the things.

02:45 Yeah, we're going to do. I didn't know Django AI was a product.

02:48 No, it's Django and AI.

02:49 We're going to talk about some amazing stuff and it certainly does apply to Django, but it applies

02:53 more broadly.

02:55 I feel like this episode is a little bit more of a Tinkerer's episode, a hacker's in the original sense of hacking than maybe straight web development.

03:03 What do you think?

03:04 Yeah, I think so.

03:06 Not sure how you want to get into it, but I know one of the topics we want

03:10 And Hermes is an open source, self-hostable AI agent, which is probably a little different

03:15 than how a lot of Python people are going to run applications and do stuff.

03:19 Normally you're writing an application that you run locally, or maybe you're going to

03:22 run it in the cloud.

03:23 So you're looking at Python libraries where Hermes is kind of a server that you run and

03:29 you can connect to it from your phone or desktop.

03:31 And it just kind of does things for you that you tell it what to do or ask it to invent

03:36 things.

03:37 What's your experience with it?

03:38 My experience is this is some wild, wild times.

03:40 There's like really weird stuff and we're going to get into it.

03:43 And it's going to be weird, but it's pretty fascinating.

03:47 You know, everyone out there, I mean, as Mabel brought, almost everyone out there is experienced with agentic coding tools like Claude Code and Cursor.

03:56 But I want to just take a moment and kind of really put this into the right box that it belongs in.

04:00 Because this is very different.

04:02 The word agent, agentic, all of these things is just thrown around all over the place.

04:06 I don't know. Do you have a better term than agents?

04:09 But it's a very different box than these coding agents.

04:12 Yeah.

04:12 I mean, I think it's a true agent in that it's always running and it does have a loop.

04:17 And you can tell it what that loop is. So I think by default, Hermes wants to wake up like every 30 minutes in OpenClaw.

04:23 But you can tell it like, I want you every day to do something for me.

04:27 Like I have it do kind of a daily briefing where I've got two kids. I'm taking them to school.

04:31 We live in Kansas.

04:33 It could snow one day.

04:34 It could be 100 degrees the next day.

04:36 Usually not that close together.

04:37 But, you know, like I have it look at the weather, look at the schedule.

04:41 Tell me if I need to put my daughter who's four in a jacket or a coat.

04:45 My son wants to wear shorts until it's 30 degrees outside.

04:47 So I at least need to get him in a jacket or coat, depending on the time.

04:50 Want to know if it's going to rain.

04:51 Kind of want to know what's on my schedule.

04:53 Also want to know, like, is there going to be a football game or basketball game?

04:57 Because the University of Kansas is three blocks from my house.

05:00 I kind of need to know what to prepare for in my neighborhood.

05:02 Like, should I drop my car off early?

05:04 Want to know if the kids have sporting events.

05:06 And it does a beautiful job just kind of creating this like daily report for me every day that

05:10 I can just read very quickly in the morning and just kind of have a feel for what's going to go on.

05:14 And then you get into lots of absurd things too, like having to do transcriptions from videos

05:20 or having to follow up with you or remind you.

05:22 Kind of like with the phone where you say, you know, Siri, give me a reminder at X time a day.

05:28 But this actually works well compared to like, I think what we try to do with our phones.

05:32 Yeah.

05:32 The reminders actually used to work pretty well, but with the new Siri, they're just so much.

05:37 The new Siri is just not a, it's not a go for me.

05:40 So I'm appreciating my Hermes set up way more even than I did before because it continues to work.

05:46 Yeah.

05:47 It's really interesting technology because I think sometimes when people talk about like skills,

05:52 they think here's a markdown file that's, you know, on my computer and Hermes is kind of built on skills.

05:57 But skills are basically to-do lists.

05:59 And so if you want to have it do something more deterministic, because everybody says

06:04 agents are non-deterministic and LLMs in general, they're non-deterministic by default.

06:09 Skills are kind of a way that you give them a set of instructions.

06:12 Agents are really good at following instructions.

06:14 And then you also work with memories.

06:16 Memories are facts.

06:17 If I tell my agent, my name is Jeff or it's Michael, it's always going to remember that

06:21 and it's going to know how to refer to me.

06:22 That's also why it works when you describe like, my family is four people and we have

06:27 And I've even used Hermes before to look at the weather to tell me like,

06:32 should I water my lawn today?

06:34 Or when is the ideal time to fertilize since last time I put seed down?

06:39 Being in the Midwest, I also live right by the Kansas River.

06:41 We have no problems with water whatsoever in our area.

06:44 Unlike maybe California or certain parts of the country that have more restrictions.

06:49 And yeah, it's just amazing to wait back.

06:50 You can water whenever you want, but you've got to do it.

06:52 You still want to be optimal about it, right?

06:53 I don't want to do it when it's going to rain the same day, right?

06:56 So there's just a lot of wild stuff you can give it.

06:59 Like I used to use a service that I'd like pay a subscription for every year and they'd

07:02 send me fertilizer for my lawn and tell me when to put the fertilizer on it.

07:06 And I used that for years, but they always sent me like two or three times as much product

07:10 as what I needed.

07:11 So I finally stopped using it.

07:13 And then I grabbed all my PDFs for the types of fertilizer in the product and I gave it

07:16 to Hermes and I had it come up with a lawn schedule.

07:19 And one thing it told me is that under their schedule, they have you putting new seed down

07:23 and then fertilizing two weeks later.

07:25 you really should wait three to four weeks or you're just frying the grass seed that you just

07:28 planted.

07:28 And so it's like strange insights like that, that I know how to put seed on the ground,

07:33 right? I know how to water it. I kind of know how to do fertilizer.

07:35 Like you attach, attach it to like, you know, your spigot or whatever, and you water your lawn.

07:39 But like, there's just a lot of information there that I just find to be like truly fascinating when you

07:44 have the whole internet that you can use to get information from.

07:47 100%. We're going to go through some really cool use cases as well. I do want to maybe start by doing a survey of different

07:55 that are out there.

07:56 So we talked about Hermes. We're going to come back to Hermes because you

07:59 and I are both fans of Hermes and have done a lot with it. But maybe the one that really kicked it

08:03 off was Open Claw, would you say?

08:05 I think so. That's the first one for me, at least.

08:08 Peter, I don't know his last name.

08:10 Actually, I know his last name. I'm just not going to say it.

08:13 He kind of caught my interest right around Christmas last year over the holidays.

08:17 And then somewhere around January, I thought, man, I'm the last person to pay attention to this thing.

08:21 And this is probably four or five names ago, but I installed it on a Saturday and then put it on a spare Mac mini before back when Mac minis were like $299 and they couldn't give them away.

08:31 Now I think they're what, like $899 or $1,000 or something like that.

08:35 Ridiculous.

08:35 Yeah, it's ridiculous.

08:36 And so I went with my family down to the library after installing it.

08:40 And so my kids were picking up books and I'm good at the library for 10, 15 minutes and I'm just kind of waiting for them to have fun and finish up.

08:46 And so then I was on my phone saying like, hey, can you do this to a website or can you take a screenshot?

08:51 And then I knew I had a bunch of domains that I just had parked forever.

08:54 And I'm like, why don't you go ahead and make websites for all like five or six of these?

08:58 And it just kind of took off.

08:59 And then 30 minutes later, it's like sending me links to them and screenshots.

09:03 They were all on my Mac.

09:04 But I'm like, this is incredible technology.

09:06 But for me, that was kind of the first one that I had ever played with.

09:10 It still is on that same Mac Mini from a year ago.

09:12 I never bought a Mac Mini for it.

09:14 But it sounded like a crazy thing to do at the time.

09:16 And I don't know that it sounds as bad anymore other than I don't want to spend 900 bucks for a Mac Mini.

09:20 but I kind of regret not getting an extra one for $2.99 though. That was a deal.

09:24 Yeah. You could have just sold, you could have become a wholesaler of Mac minis and just retired.

09:28 It would have been incredible.

09:30 I think since then everybody kind of has one of these now, like you've got Anthropic.

09:34 I think they have one. Is that, are they dot?

09:36 Is that the latest?

09:37 No, OpenAI is dot. I believe Anthropics.

09:40 It's not really though.

09:42 It's co-work.

09:43 That's right.

09:44 Co-work.

09:45 You know, I, this is the thing that we gotta, I think we've got to be a little bit explicit about for folks.

09:50 and help them understand the different angles.

09:53 It's like, co-work is super cool, but to me, co-work is halfway from an LLM to these agents.

10:00 It's not all the way there, right?

10:02 I can create these scheduled things that run in co-work and I can say, "Hey, every hour call this webhook

10:07 and then tell me if something happened." But there's also so much more tool use

10:13 that these things like Hermes and OpenClaw have, which is really interesting

10:16 and some very interesting self-improvement.

10:19 You know, you hear about RSI, the recursive self-improvement, not the carpal tunnel version

10:25 these days, because we don't type anymore.

10:26 We just talk.

10:27 But yeah, so I don't know how to, I'm not sure if you're thinking of co-work.

10:31 Yeah, I guess it was co-work.

10:32 I've not found these to be as useful.

10:35 I find them to be useful for other things like coding, quick chats and stuff to like

10:40 kind of replace the search engine in my mind, I guess.

10:43 I think that between Hermes and OpenClaw, there's more personality.

10:49 They're kind of more like they came to your devices first.

10:52 So like you could run it in your Slack or your Telegram or your Discord or maybe even Signal.

10:57 Some of them even work with like iMessage, even though that's probably a hack.

11:01 They kind of came to you because, you know, they were you were hosting them yourself.

11:05 And so you needed some conduit or way to talk to it.

11:08 So they kind of had the like support where you were by necessity.

11:12 Where I find that like Claude and OpenAI's codex or ChatGPT, I guess, and they need to work on their names.

11:19 There's like eight names for every product using.

11:21 You know, they tend to work off of their apps.

11:23 So if you have the app installed on your iPhone or Android or on your desktop,

11:26 then you have access to them.

11:28 I still prefer the CLI for running those tools, especially for doing code stuff.

11:32 But like, and I don't know, I think now maybe Claude has the ability to connect to Slack.

11:37 And they're slowly kind of catching up and saying, you know, here's alternative ways for teams to work with them.

11:42 But that agency, the fact that they're kind of designed to, you know, have schedules built in to work up.

11:48 There's just a lot of weird personality in them.

11:51 Like Hermes even ships with a bunch of batteries.

11:53 Like I think it can run like a Minecraft server by default and stuff.

11:56 I don't find that to be super useful, but apparently enough people did that they decided that like by default,

12:01 this can run your Minecraft server.

12:02 Yeah, that's an interesting one.

12:04 But you know, I guess it's, it is a bit of an indicator where this does.

12:07 Like Claude, when Claude Cowork runs, it generally runs at Claude.

12:13 And I don't know about Dots.

12:14 That's the new one.

12:15 This is the OpenAI Dots.

12:17 I think it's kind of similar.

12:19 There's MetaMuse, which is also, these are, Dots and Muse are the two ones

12:22 that really just came out.

12:24 And Muse is interesting.

12:25 I haven't used it, but you actually get a virtual server, like a $5 server or something

12:30 as part of using Muse.

12:32 And that's where it runs.

12:33 Whereas things like Hermes and OpenClaw, at least traditionally, at least for me, run on my computer.

12:39 Now that might sound scary to people.

12:42 So mine runs on a Docker container with a very limited set of folders over to it, not just full access to my whole computer,

12:50 right?

12:51 But I think that's one of the big differences.

12:52 'Cause once it's running on your computer, it has all these different capabilities,

12:55 right?

12:56 It's just like, well, what tools are on this computer or in this Docker image?

12:59 And if you don't have one, like, well, can we install Chrome?

13:01 That would make my life better.

13:02 Like, sure, go install Chrome, I don't care.

13:04 I've fully given my Hermes my Mac mini at my house.

13:07 And so it can run Chrome, it can like do stuff.

13:10 I do limit as far as like what iCloud is connected to it.

13:13 That way I don't have to worry about putting anything on that machine that it could potentially,

13:17 you know, share or do something with it that I don't want to take a chance on.

13:20 So I just kind of lucked out, had that machine anyways, plus a laptop.

13:24 So Hermes runs on it. I don't run Hermes on my work machine just because I don't want any client files or anything to ever be, I don't want it to have the

13:32 option to be able to like poke around or do something with it.

13:35 So I'm a little looser with mine, but it's because I have that dedicated box that can just live on.

13:39 And then I've got several like, they're called orange pies, but they're kind of like a better raspberry pie.

13:44 I popped up a few Hermes on those as well to play with because they're tiny and they're just fine. It's just

13:49 any Linux box would work too.

13:51 Orange pie. I've not heard of orange pie, although yeah, it looks very interesting.

13:54 I've got kind of the cheapy run there is one of them.

13:58 This portion of talk Python to me is brought to you by, well, you, I recently added a membership

14:03 program to talk Python.

14:05 One of the cornerstones of that program is live tech talks.

14:09 So let me just take a moment and tell you about our first upcoming live tech talk.

14:13 It's presented by me, The subject is owning and running your own Python infrastructure.

14:18 You may know I've tried to adopt a no-nonsense approach to running Talk Python

14:22 and all the related apps, the podcasts, the courses sites, the APIs for the mobile apps, and the MCP servers,

14:28 and much more.

14:29 This talk is a peek behind the curtain on how I run all of these for under $100 a month,

14:34 including over 10 terabytes of traffic per month.

14:37 But even if you heard me talk about this topic before, I have a true surprise for you.

14:42 I'm going to share something really wild that I've changed over to in the past few weeks,

14:46 and you won't want to miss it.

14:47 Just visit talkpython.fm/meetups for the details and to add it to your calendar.

14:52 The event is on Wednesday, November 4th at 10am Pacific, and it'll be available for replay after that to all members as well.

15:00 Membership starts at just $5 a month, and it really helps support the show.

15:03 So become a member and get access to top tier live tech events and much more.

15:08 Visit talkpython.fm/meetups to get started today.

15:11 they're super neat like i said they're like a raspberry pi they make all different shapes and

15:16 sizes of them and they are just so much faster what a raspberry pi is they're not as underpowered

15:22 so this uh brings up a pretty interesting angle they do run code but for their actual real

15:28 computational bits primarily i would say at least i'm guessing that most of the time what you do is

15:33 you plug an llm into your agent thing let's just put hermes in as a word a stand in for all of

15:40 these, right? Plug it, plug it into Hermes.

15:42 And then when it actually does work, it's not all of a sudden like, Hey,

15:45 I'm loading up a terabyte worth of model here.

15:48 It's just like I'm doing the OpenAI call or the equivalent to some other provider,

15:53 right? Yeah, exactly.

15:54 So one thing you were alluding to earlier is when you get on like Facebook or Meta's Muse or OpenAIs or

16:01 Anthropics, when you use their agent, they're, they're basically sticking you to their models.

16:05 I think OpenAI is starting to figure this out a little bit. And they've decided like,

16:09 If people are going to use open models, they have a beta or something now where they're actually letting you use other people's models through their system.

16:15 And those are more geared to like open models and stuff.

16:18 What I started off with was because I didn't want to pay for token because these things can eat millions of tokens some days on weird tangents.

16:25 So I use Kimi code as kind of one of my go tos.

16:28 Ollama is another service that I like, and it has all kinds of open models on it.

16:33 I know there's kind of like differing opinions about Ollama because of their open source roots.

16:37 I think there was a fork from another project at some time.

16:40 Some people like them.

16:41 Some people don't like them.

16:42 I like the utility of being able to pay a set fee like 20 bucks a month.

16:45 And basically, you've got hundreds of models you can pick from.

16:48 It's probably dozens of models you can pick from.

16:50 And also, Ollama, you can run locally.

16:52 If you do run local, I think there's probably some other open source servers that are faster.

16:56 I just kind of find it to be the Swiss army knife of letting you run most models locally,

17:01 which is pretty cool.

17:02 Are you running Ollama local?

17:03 Is that your angle?

17:05 My angle is Ollama.

17:06 Well, originally I started out plugging it into OpenAI and it was just going through my credits too quickly.

17:12 So I'm like, this is not, this is not good.

17:14 Not going to work.

17:15 So I need to find something else.

17:16 And I looked into Olama for local models.

17:19 And then I think I talked to you actually.

17:21 And you're like, do you know they can run cloud models?

17:23 I'm like, they can do what?

17:24 So if you go over to olama.com, go to models, you can click cloud.

17:28 It'll show you that you can run DeepSeq Flash 4, GLM 5.3, GLM 5.3 Flash.

17:35 And as you scroll through, you can also see some interesting things like, for example,

17:38 DeepSeq 4.1 Flash supports vision and tools and thinking, whereas GLM 5.3 is a better writing,

17:47 sort of conversational type of one.

17:48 But it doesn't support vision, for example.

17:51 But its Flash one does.

17:53 And this is important because if you give your Hermes or whatever a job to do,

17:59 it needs to look at something like a screenshot or anything.

18:03 And you assigned it the 5.3 version.

18:05 It couldn't do that, right?

18:06 But it could do if you assigned it the 5.3 Flash.

18:09 Anyway, so long story short, I'm running the cloud ones over here.

18:12 Am I logged in?

18:13 Oh, I am.

18:13 And I go to my usage.

18:15 And let's see.

18:17 In the last four hours, I've used 17% of my $20.

18:21 And in two days, I've used just over 10% of my monthly.

18:25 But you can see down here that the models I've used, a little bit of the Nemetron,

18:30 a little Kimmy K3, a lot of GLM53 flash.

18:34 That's pretty much what powers my stuff, unless I need it to be a little bit better at writing

18:37 than I use GLM53.

18:39 That's my world.

18:40 How about you?

18:42 I haven't been using a Lama as much, but that Kimmy K3 model, I use the coding version of it a lot.

18:47 And I just bought a subscription from them to try it out.

18:50 I think they were two or three weeks ahead maybe of seeing a llama get it.

18:55 One thing I do like, if you don't mind going back to models in the same way you were doing that cloud filter,

19:01 go to popular and drop down on new.

19:03 This is like of the boring, oh, see there's a new one even.

19:07 Yeah, I just noted.

19:08 This is, yeah, and we got multiple new ones.

19:10 Look at this.

19:11 Three or four that came out the last day or so, 16 hours.

19:14 When everybody else has a life, I'm just going here once a day or twice a day

19:17 and then checking to see what's new.

19:19 because I do like pulling the new models down.

19:21 Those vision models are great, by the way.

19:23 A lot of them run local.

19:25 And so I've gone through like old family photos and stuff.

19:28 And it was always good enough to say like, you know, flag that there's a dog,

19:31 look for the setting, like is this Thanksgiving or Christmas?

19:34 Some of that stuff you can get from the dates, but you can get pretty accurate

19:37 by just having it count like the number of people in the photos and stuff.

19:40 Those tools I think are important.

19:41 I don't really care about the thinking aspect of the models because that's just all one shot to me anyways.

19:46 But I think the tool calls are great that kind of tells you that it's able to go and run other applications and other tool calls like

19:54 if you want to have it do transcriptions or you want to give it other jobs to do that ability or

19:58 running mcp which lets it go connect to a remote server or local server and have a list of like

20:03 possible things that can run for you and actions it can do then i like i like the tool call models

20:09 for a long time they they didn't have that feature and so it was almost just like a trivia machine

20:14 where you'd ask it like i don't know how far is it from kansas to portland or something then it

20:18 We'll just make up a number, you know?

20:20 Right.

20:20 Yeah.

20:20 So now in your Hermes, what could you do?

20:22 You could probably integrate it with either some sort of mapping MCP or a mapping API.

20:28 And probably you can connect it to so many different things.

20:32 Like mine is connected to my Google contacts and other workspaces and emails.

20:37 So it could like maybe say, you could say something like, how far is it from Jeff's to

20:41 Michael's or vice versa?

20:41 And it would go, go look you up in contacts and get your address, plug it into the MCP.

20:46 Right.

20:46 And it would just like work it out.

20:47 It's really.

20:48 really pretty neat how that works yeah and mcp is kind of like superpowers for these models or these

20:53 agents like most of the services i subscribe to anymore i think google finally released an mcp the

20:58 other day or at least they started leaking stuff to GitHub um just the ability to go you know it's

21:03 basically giving your model access in a secure way so that you don't have to go and just say

21:09 here's my cloud flare um api key save this in plain text markdown they'll go do stuff like it

21:15 actually kind of makes them good because they can get a list of like here are things I'm able to do

21:19 on behalf of Jeff and Michael here's the read-only stuff I can see here's the right access I can have

21:25 last night I was having to update some DNS settings for me just because Cloudflare supports MCP

21:30 like it's just so wild like things that used to take a while you can just give them this MCP as

21:35 an access in the Django world there's a great library called Django MCPX and I've started

21:40 building that in all my side projects.

21:42 So I can have like Hermes once a day or ChatGPT on demand.

21:47 I can say, go look on Django TV and let me know if there's a new video or go approve a job on the

21:52 job board.

21:53 It just completely changes how I'm able to access it. Things you would use to just go into

21:56 the website and go into like build an admin to do.

21:59 You can just talk through it.

22:00 Say like, pay for the newsletter, show me the last five pieces of news about Django or what's neat.

22:06 And I just love that ability to be able to like connect the dots like that.

22:10 Yeah, that's awesome.

22:11 It really is.

22:11 What if we want to go with this?

22:12 One way, one area I think is different in a good way, mostly a good way,

22:18 is always trade-offs.

22:19 One thing that I think is better in a good way than a lot of like, if you ask Plod to do something or ChatGPT to do something,

22:27 everyone's probably familiar with, oh, Reddit won't let me pull that page because they block

22:33 Anthropic or I can't access this because it's a file on your hard drive or whatever,

22:39 right?

22:39 All of this stuff runs wherever you host it.

22:42 And so my Mac mini is sitting on my fiber network and it's running a Docker container.

22:46 So when I ask it to do something, it looks like a residential IP address that's going somewhere.

22:51 And if I tell it to use Google Chrome, it literally just launches Google Chrome and it goes and it does the thing.

22:57 And it looks like a regular web browser.

22:59 So I find that these are a little more able to access different information on your behalf than if you'd asked the exact same question to even a smarter model like Opus or Astra.

23:09 Yeah, they have an incredible kind of, there used to be like this gap of,

23:13 you know, can it use curl or can it use something to access a website?

23:17 And the first time you run something like Hermes or OpenClaw and you see it open Chrome or Firefox and you see the URL pop in and you actually see it drive it, it's just wild.

23:26 It's like, oh, it's like there's a human here, but it's not a human.

23:28 You know, like it's actually doing the same stuff.

23:31 Mine has its own profile as well.

23:33 And then that way if we're ever on the same browser and I changed the color of the desktop theme to be like bright red.

23:39 And so that way it's very obvious if it was driving something or not.

23:42 By default, a lot of them will run in headless mode where you don't see it pop up.

23:46 I prefer to actually see it.

23:48 And it's just kind of interesting to see what work it's done when you ask it to do stuff.

23:52 But the fact that it's not trying to emulate a website with curl or a web browser with curl,

23:57 it's just actually driving real tools.

23:59 I've got a friend even that was trying to do some stuff with Macs.

24:02 Sorry, like an Apple Mac.

24:04 And he ended up noticing that before they were good at being able to drive screens,

24:09 Like it's pretty good at running Chrome because it knows how to talk to Chrome.

24:11 Chrome makes that pretty easy to do.

24:13 Like there's a development API for it and straightforward.

24:16 But what's a little harder to do though was the, and I'm forgetting the name of it, but

24:20 actually having to move the mouse and keyboard around.

24:22 But for some reason, if you had it used VNC.

24:24 Accessibility or something like that?

24:25 Yeah, they're really good at driving like VNC.

24:28 So like it was actually better to drive VNC connected to a Mac than it was to actually

24:33 be on the Mac and drive it.

24:34 And I think they've fixed all that now, but it was just fascinating watching it move and

24:37 do stuff.

24:38 I'm like, man, I wish I could do that on my machine.

24:40 But that's really cool.

24:41 It's super wild.

24:42 I think one area I want to explore with you and see how you're doing this is these things

24:47 come out of the box and they're not much different than a ChatGPT or quad or whatever.

24:54 And it really matters what model you hook up to it, right?

24:57 If you hook up OpenAI Sol to it, well, you get a very similar experience to that.

25:02 But if you hook up BLM 5.3 Flash, it's good, but different, right?

25:06 But then you can start to build with it and personalize it and so on, right?

25:11 And so one of the really eye-opening experiences I had was I literally sat down,

25:16 I voice typed into my phone to my Hermes, and 15 minutes later I had built this whole calendar management system

25:25 that worked with my daughter sends me messages about when she needs to reserve the car

25:29 because she has a job she's got to drive at.

25:31 And so she'd send me these invites, but it blocked my calendar.

25:34 And so I talked to it for a bit.

25:36 And it built this whole scheduled automation and skills and Python files and all these things that will say,

25:42 like, set me, you know, mark me as free again on those times.

25:45 So that automated scheduling stuff doesn't say you're busy.

25:47 Like, no, I'm not.

25:48 My daughter's busy.

25:49 I don't need my car to be on the computer and so on.

25:51 So this way of like talking to it and just programming it, you know, in sort of air quotes,

25:56 you know?

25:56 Yeah.

25:57 Is it like just from your experience or what's the, what's your.

26:00 Yeah.

26:00 Well, I mean, I don't typically sit down and program anything into it.

26:05 I just talk to it and it builds itself and it evolves itself.

26:08 And it's like, if you teach it something and you say, okay, connect my contacts and my calendar and this and that and use this Python script,

26:16 and it runs into a problem because, oh, I had a problem.

26:18 Let me fix that.

26:19 Okay, now I'm fixed.

26:20 I'm going to keep going.

26:21 And the next time it won't have that problem anymore.

26:23 It's just really a wild way of developing something, right?

26:26 And there's not much else like it.

26:27 Like if you do it with ChatGPT, it kind of every session is a new one.

26:31 Whereas this, it iterates.

26:33 I think, too, what you're getting at is it has a memory and its ability to remember what you did yesterday.

26:40 That's not how like ChatGPT, that's not how Claude was built.

26:44 And they've slowly been trying to add memory to it, but it's very bolted on.

26:47 So like earlier today, Michael has shown me this memory system that he found.

26:51 And it's a way that you can link.

26:53 I assume you can link other Hermes together using the same knowledge and how they build stuff up.

26:58 These were kind of built like the movie called Memento.

27:01 The guy tattoos some memory on his arm every day.

27:04 So when he wakes up, then he remembers he can read that as context.

27:08 These things are just full of these context nuggets.

27:10 And part of it too is like your skills.

27:12 As you build a skill to do something, they're very good at knowing when to use a similar skill to accomplish some other part of it.

27:19 One example I had was I was taking my kids to visit the grandparents one time.

27:23 Three hour drive, we try to meet halfway in between here in Missouri, Southwest Missouri.

27:28 And so when I got to the meeting place, I was filling my car up with gas.

27:33 A friend of mine sent me an article that was like a 30-minute read.

27:35 And I'm like, ah, perfect time.

27:37 I got 90 minutes to drive back to Lawrence, Kansas.

27:40 I really want to hear that.

27:42 So I didn't have any of the skills built.

27:44 But I did have like a transcription skill.

27:47 I already had like a text-to-voice skill set.

27:49 So I grabbed the article.

27:50 I sent it to my Hermes.

27:52 And I said, can you turn this into an audio file for me?

27:55 And because it had enough of the skills to fill it in, It took about five or 10 minutes and it sent me back a link to the file.

28:00 And I'm like, this is just incredible.

28:02 And the voice was good because I'd already found like a Kokoro model or something that's a local,

28:06 easy to run model.

28:08 And so it sent me back like a good enough, but it was also making mistakes.

28:11 Like it was doing, you know, hey, here's this website, HTTP colon slash slash hindsight dot vectorize dot IO,

28:18 right?

28:18 Like it's giving me the full and I'm like, well, that sucks.

28:21 Why don't you make another pass at it and go ahead and clean all that stuff up?

28:24 And I'm driving so I can't read while I'm driving.

28:26 So I'm using the voice mode on my phone over Telegram to tell it what I wanted it to fix.

28:30 It's taking that voice file, changing it to text.

28:33 So, you know, five minutes later, it sends me one back that's cleaned up.

28:36 And I'm like, hey, that's awesome.

28:37 One thing I learned from Marietta, because I thought about making my agent's blog.

28:42 And Marietta had a blog post a while back, we'll have to find.

28:45 That was basically about how she's making her or how her like bought her agent's blog.

28:50 And it posts all the skills publicly.

28:51 And I was right on the edge of doing that.

28:53 So I went ahead and made my Hermes.

28:55 I gave it a blog too.

28:56 And so it uses Hugo and it just publishes these files.

29:00 And so every day I'll send it a couple articles and I'm like, I want you to transcribe this,

29:06 which puts it into Obsidian just so I have a record of it.

29:08 And that's like my bookmark.

29:10 And then it'll write about it.

29:11 And so a couple of weeks ago, like there was a new model called Jeb, J-E-B.

29:15 And I probably posted like 40 or 50 links to it over a few days.

29:18 And then I asked it to like, you know, do some research on it.

29:22 And as it started kind of pulling data together when it was writing articles,

29:25 it was starting to weave facts that it had already kind of learned and talked about into like these really nice posts for me.

29:31 Pydantic AI is my favorite Python library for writing agents.

29:35 Just when they finally posted, I say finally, they posted a blog post about how to

29:39 use Jev with it or as part of their docs rather. I think that's before they built the blog post.

29:43 I found the documentation to it, copied the page, sent it to my hermies and asked it to,

29:48 hey, write an article for me that shows me exactly how to use this with Pydantic AI.

29:52 Two minutes later, it sends me back the URL to the post.

29:56 And I'm like, this is just amazing tech.

29:58 For voice mode, I did something similar too, where I thought, why don't I just have it give me,

30:03 like I just want the audio feed, but it's kind of a pain to get an audio file

30:06 while you're on your phone.

30:07 Like, you know, you're pulling it through Telegram and that might open up VLC

30:11 or it won't know what app to pull it up in.

30:13 There will be no like history progression because, you know, these applications aren't really built

30:17 to like resume where you're at in an audio file.

30:20 So then I thought, why don't you just, since you're already building a website for me,

30:23 when I ask you to podcast, just go ahead and publish a podcast feed.

30:26 I don't want you to narrate it like it's Michael or anything.

30:29 I just want you to give me the audio, clean it up like you did before.

30:32 And so now it gives me these really good audio feeds and I can just pull it up in my Overcast app.

30:38 Yeah, it just gives you an RSS feed?

30:40 And you just add it as a private.

30:41 So I get an RSS feed of my own, you know, like stuff I want to listen to.

30:44 And mostly it's just articles that are too long.

30:46 And as I'm driving the kids along, they don't want to hear it.

30:49 But once I drop them off from school, I can just turn that on and listen to it.

30:51 It's just the wildest technology to be able to glue those things together without having the right code to do it.

30:56 Yeah, that's really awesome.

30:57 I mean, that's the kind of thing that you get from these really weird agents is you can just talk to them for a while.

31:03 And they layer on like, well, OK, I do know how to do audio from text and I do know how to build a website.

31:09 And you're like, OK, well, then it's very easy for me to just build you an RSS feed.

31:14 Now you have your own podcast because and it just keeps learning.

31:17 And just out of curiosity, I was just like thinking, you know, how this is different to

31:21 say co-work or something like that.

31:23 So I have a thing that backs up my Hermes.

31:25 So it like kind of exports it out of the Docker container, zips it, puts it in somewhere

31:29 encrypted, all that.

31:29 But let me see if I can get it to tell me.

31:31 Yeah, it has.

31:32 When it started, it had just a couple of files, like a few settings and so on.

31:36 And after, I don't know, I've had it for a few months.

31:38 It's 16,000 files, 780 megs zipped.

31:43 I don't know how big it is unzipped.

31:44 So that's a lot of stuff that it's collecting and learning.

31:48 And every time you work with it, it has all of that at its disposal, right?

31:51 All the lessons it's learned, all of its memory, but all of its tools.

31:55 It's got hundreds of little utilities for it.

31:59 I use a command line tool called, I think it's called QMD.

32:02 I'll find it for you.

32:03 But it basically is like a rag tool that you can use.

32:06 And it's just a tool that it runs your markdown files through it.

32:12 It creates like a rag index.

32:13 And so I have mine and blogging and some of my tools.

32:16 I have it run everything through QMD.

32:18 And then that kind of gives it that rag to pull the right context out of stuff.

32:22 It's pretty good.

32:23 It might be something to play around with if you don't have rags set up.

32:25 Yeah, I definitely don't.

32:26 So query markdown documents.

32:28 Well, I have a lot of markdown documents and I have a lot of questions.

32:31 So I'm very excited about this.

32:32 This is cool.

32:33 You can give it to your Hermes and tell it to like, can you use this, figure out how to use it.

32:37 And it's wild.

32:38 Yeah, that's super cool.

32:39 I think for me as a developer, I built, gosh, 20 some years I've been writing Python code.

32:46 And I know that there's a lot of angst and there's a lot of the things in AI that people

32:53 talk about.

32:54 I think this is the least popular amongst people who don't like AI.

32:58 But for me, it really opened my eyes to kind of a new direction and new ways to solve problems,

33:03 which I wouldn't have had otherwise.

33:05 It's not that it's an always on agent.

33:07 The application's always on, but having the ability to wake up and just go do things and follow up and check stuff.

33:13 I know you can use task managers.

33:15 You could use Celery.

33:17 You could use many different libraries that kind of do this in your code.

33:20 But I found that a couple of issues or a couple of problems that have been historically hard to solve,

33:25 like I'll have scheduled tasks or something that run in production.

33:29 And for my side projects and stuff, there's a lot of times that trying to set my local environment up

33:34 and keeping track of those tasks because I might go into a database in production

33:39 and I might change a schedule and I might kind of tweak things over time.

33:42 And then it's really easy to not get those pulled back down in a way that like gets committed into code.

33:47 And you try to like make some of those changes in code, but sometimes if something's wrong,

33:50 I just need to get on my phone, hop into an admin and change that schedule.

33:53 And so one of the things I realized is trying to keep those in sync, it just sucks.

33:58 It's not that it's a hard problem, it's just tedious.

34:00 And there's just a lot of options.

34:02 And so Hermes kind of opened my eyes or OpenClaw itself opened my eyes up to like,

34:06 why am I making this so hard?

34:08 Why don't I just make like a page in my website that I can just download a schedule.markdown

34:13 file and it just writes out what the schedules are in that file.

34:16 Then I download it on my machine.

34:18 I can just drag and drop that into my local machine.

34:21 The schedule just gets picked up automatically because I've got an agent that just reads

34:25 it.

34:25 It syncs it locally.

34:26 And then I can just do edits with it or I can drag and drop it from local back up to

34:30 production.

34:31 It's just a different, it's just a simple context.

34:34 I would never, to me, that would have been over engineering before.

34:37 And now it's a two minute solution that actually scales better than trying to work out like

34:41 which JSON do I want to admit the schedule via JSON and try to sync things up locally.

34:46 And now I got to manage API keys.

34:48 And really, I just want one file with everything in it.

34:50 I can edit it by hand and sync it up again if I want to.

34:53 So it's a dumb solution.

34:55 It's just very effective though.

34:57 And I just love that about this tech.

34:58 I do too.

34:59 And it is really weird how if you just provided a little bit of data, I could just take it and run with it.

35:04 Like Markdown is really good for it, right?

35:06 One of the things I made it do for me that was really helpful is obviously

35:11 this recording as a video and as a podcast episode.

35:14 But the podcast episode is always behind because I got to put show notes

35:18 and transcripts and get it just right.

35:19 And the videos just kind of lay in there.

35:21 And so especially when I was live streaming them continuously, YouTube would be full of the things just called Talk Python 427.

35:29 live stream. I'm like, oh man, there's hundreds of these videos. I got to go back.

35:33 Now that they all have proper titles, they have proper links and so on, I want to put those all back.

35:37 So I wanted it to go and manage my YouTube channel and it does now.

35:41 So several times a day, it looks and see if anything's new there. If anything's released on the podcast,

35:45 it'll like take all the details through the MCP server on Talk Python and stuff. And then it'll re it'll manage on my behalf.

35:52 It'll manage the YouTube channel.

35:53 It's, it's got all the historical stuff is like completely in sync with the latest details,

35:57 which is really cool.

35:58 And I think even if I edit one that's already out there for a while, it'll

36:02 discover the differences and fix it.

36:04 But here's why I bring this up, not just as an example, but I want to get your

36:07 thoughts on this is I open, I said, I want, I want to do this, but it's not

36:11 super easy for Hermes to navigate the nuances of the YouTube API.

36:16 So I said, Hermes, what do you need to do to do this?

36:19 You tell me the actions you need done.

36:21 So X, Y, Z, right?

36:23 Copy that.

36:23 I went over to Claude, I said, Claude, I need you to build me a Python package with this interface and as a CLI.

36:30 And Claude built it.

36:31 And so I just give Hermes the wheel.

36:33 And I say, Hermes, this is how you talk to YouTube.

36:35 And it's been working the YouTube channel ever since.

36:37 It's incredible, right?

36:38 Because Claude is awesome at managing, Claude code is awesome at managing,

36:42 building that thing to exactly the API specification.

36:45 And then I just give it this loose CLI way for Hermes to talk to the YouTube channel about it.

36:50 And off they go.

36:51 I think CLIs are incredibly powerful for this tech.

36:54 I think it's a shame that Anthropic, like when we started, OpenClaw was really good at driving Claude Code

37:00 and they kind of went out of the way to change.

37:03 I think people were just using it and it was hitting the resources too much.

37:06 But like you can have Hermes drive Codex now.

37:09 You can't really get away with Claude Code unless they change the rules again.

37:13 But it's wild to me that you can go through that exact same step you were doing

37:17 where you tell if Hermes can't do it, telling Hermes to have Codex go and solve the problem,

37:21 write the Python script and pick it back up.

37:24 We've just never had tech that can do that.

37:26 And even though this is non-deterministic, the way you make it deterministic is,

37:30 like I said, take your skill files, write the steps you want it to do out,

37:34 or even better, write Python code, because Python's going to cement that technique

37:39 or submit those steps in actual code.

37:41 And then you're going to save a lot of time by not figuring out what are the five steps I need to do. It just says,

37:46 go run this Python on your channel or whatever your YouTube domain is, you know?

37:50 Exactly.

37:51 And that you mentioned at the opening, you know, how these things are non-deterministic

37:54 and how that can be a problem.

37:56 Well, a really good way to fix that is to make this non-deterministic thing, write a

38:00 Python file that you verify, and then you just say, run that.

38:03 Exactly.

38:04 Yeah.

38:04 I do that a lot, especially with CLI tools.

38:07 I write so many CLI tools.

38:09 The last couple of weeks, MCP, I feel like it's starting to get really good.

38:12 And so now I'm kind of skipping a step and I've just writing MCP into my web apps,

38:16 but I'm a web developer.

38:17 So everything I do is mostly web.

38:19 And so I've really enjoyed kind of taking that step.

38:22 And then that way Hermes can go talk to my website or go do the action for me.

38:25 If that's not an option, having it write CLI apps, because you can give it like when we were talking transcriptions,

38:31 I like an application called Mac Whisper, and they created a really good CLI.

38:35 And so that lets them run.

38:37 And by taking that CLI tool and giving it to Hermes or any of these agents,

38:41 the first thing they do is they run the command with like --help.

38:44 And they look at all the options and they're like, oh, transcribe video,

38:47 cool, I know how this works.

38:48 And speakers, oh, you got speaker support.

38:51 So I've had it pick up on new options and features that I didn't even know were in these CLI tools

38:56 just because it checks the docs.

38:57 I don't, you know, I'm used to running this.

38:59 If the command works and I know what I want it to do, I'm used to the old Linux,

39:04 things just don't change.

39:05 You know, like grep has been grep for 30 years, you know, like it just doesn't change much.

39:09 So it's just cool that it picks up on us on like the ability to have eight different speakers

39:12 in a podcast and detect it accurately.

39:15 Yeah, and one of the big differences is it'll remember that.

39:18 It'll say, I tried to do that, but I learned that the MacWhisperer CLI has this feature.

39:23 So anytime someone else asks me to do this job, I'll use this new feature because I don't need to,

39:28 like, it'll transcode the video automatically rather than, like, using FFmpeg or something, right?

39:33 Yeah, it's amazing.

39:35 Let's talk UIs.

39:37 I think UIs are, there's something else.

39:39 You know what I mean?

39:40 So if you go over, there's something really weird about Hermes.

39:45 it's not entirely clear like how to get it honestly if you go you search for hermes there's hermes

39:51 agent but then there's a bunch of other things that are at domains that are like hermes but then

39:55 they're either taken over by the same company eventually or they're trying to impersonate i don't

40:01 know when you if you go if you go to like to their main site and it says it's it says what you want

40:06 is you want to get it for your mac os so you download it and it gives you a desktop installer

40:11 like, wait a minute, I have a desktop app.

40:12 I wanted a thing that would constantly run somewhere.

40:15 Like, what is this desktop app thing, right?

40:17 Like, talk people through that.

40:18 Like, how do you run it and how do you talk to it?

40:20 I mean, I think that you and I aren't normies.

40:23 And I think for normies going and saying, what's a terminal, what's a shell,

40:27 what's a console?

40:28 Like, it's just, it doesn't much.

40:30 It's just so confusing.

40:31 So I think Hermes started off as a gob of Python files that, you know, we knew how to use.

40:37 We're used to Python.

40:38 I think the original version, You might've even did like a pip install or uv installed installed as a Python package running.

40:44 And over time, they've tried to make the experience nicer.

40:48 So now you can just download it for your desktop.

40:50 You can double click the thing to run it.

40:52 And then you can see it running and it gives you the chat interface.

40:56 These things used to be like OpenClaw was one of the worst applications.

41:00 It took me back to like being a kid from the 90s and trying to put Linux on.

41:03 And it's like, here's two hours of setup just to like get to a terminal and not know how to log into it, right?

41:10 Like it was such a bad experience because you would have to even go and figure out like, how do I configure an application with Slack or Telegram or Discord?

41:19 You know, like you were kind of hitting every limb, falling out of the tree on the way down.

41:23 And so I think the desktop experience gets you a working Hermes.

41:27 It gets you into a chat interface where you can just do something with it to start.

41:31 And then one thing I realized today or learned today is most of what I'm running is that Hermes agent, the server,

41:38 I'm running that on the Mac mini at my house.

41:40 I like using tail scale, which is just everybody should use tail scale.

41:43 If you have a phone and a computer and you ever want them to talk.

41:46 And so I've got it running at home.

41:48 And then at work, I've got the Hermes desktop, but I want, because I'm, I want to talk to my Hermes agent at home.

41:54 So I, they've got an option that lets you say, this is the server.

41:57 Here's the username and password that I'm using.

42:00 And it lets you self host that. And it just, it works magically.

42:02 Like you have the cloud desktop open or any of these other desktop tools.

42:06 Yeah, that's super neat.

42:07 So, but But you got to know that it's not super obvious when you go to the website and it says download

42:11 it for Mac.

42:12 No.

42:13 You end up with just a local app, right?

42:15 Exactly.

42:15 And they've got all the weird, I don't know why they've overthought even like the website

42:19 would go to it.

42:20 Like what's all the blue and why is it, am I in an aquarium?

42:23 Like what is this?

42:25 Yeah.

42:25 Yeah.

42:25 I only say that because I know people are going to listen to this episode and go, well,

42:28 that sounds cool.

42:29 Let me go check it out.

42:30 They're like, I don't even know what I'm getting at.

42:31 So for me, I go to the repo or it, which I go back.

42:36 And in here, there's a Docker or Docker compose.

42:40 Here you go.

42:41 Docker compose.

42:42 And just actually have a Docker compose dot overrides or whatever the naming convention is

42:47 that I set some things in there and off it goes.

42:50 So that's how I've been running it these days.

42:53 It does maybe limit it a little bit.

42:55 Like it can't completely control your Mac.

42:57 But for me, that's okay.

42:58 I just have it installed what it needs.

42:59 So that's why I've got the spare Mac that I just kind of had it at home anyways,

43:03 because I wanted to just be able to set down on a machine and it'd be connected to a display.

43:07 So yeah, for me, it's like you can just have this machine.

43:10 And otherwise, putting it in a container like Docker, even putting it in the VPS is the way to go.

43:15 I just don't encourage people to go spend money on these things or run them.

43:18 I think if you know Compose, you know Docker, try that.

43:21 Honestly, though, the desktop app is probably fine.

43:24 It probably is.

43:24 I'm just not sure what the life cycle of it is because one of the things that's cool about Hermes

43:29 is I have stuff that runs 24-7.

43:32 You know, every 15 minutes it does this.

43:34 We'll get into probably the most wild use case that I have for that.

43:38 But, you know, it'll check.

43:39 Like it's constantly checking the RSS feed to see if there's something new since the last time it's updated the YouTube channel.

43:44 Then it'll go kick off the YouTube fix improver that if something comes out and it finds there's a video.

43:49 You know, like I just want that stuff to run all the time.

43:52 And if I have a laptop and I shut the screen, I don't want it to stop.

43:55 Yeah, I think it runs in the background, but we'd have to check on that to see.

43:58 Yeah.

43:59 I think what's so amazing about this tech, it's like when you write Python,

44:03 like when I was a kid, I used to think about programming felt like little spells,

44:06 like you were doing magic.

44:07 And part of it was like engineering.

44:09 It's like, ooh, I can build robots in my head, these applications.

44:11 They run the steps.

44:12 It all makes, it's all very orderly.

44:14 But Python only does what you tell it to do.

44:16 And this, I feel like, is one of the first inflection points of tech where you can teach

44:21 it a bunch of steps.

44:22 You can kind of tell it what you want it to do without it already knowing how to do it.

44:26 And it can get, it either does it or it gets you to the last mile where you can help it

44:31 with those last little bit of steps.

44:32 And it's like, like the create a podcast episode for me so I can listen to my car on the fly,

44:37 you know, just the agency to be able to work and do that remotely and give me what I need,

44:42 what I want.

44:43 I don't know.

44:44 I don't know any other tech that does this.

44:46 It's incredible.

44:47 It could have no capability of a thing.

44:49 You talk to it for a minute and it's, it can then do it right.

44:52 Which is, and it remembers that it can do it.

44:54 That's crazy.

44:55 So one of the things that I did, just there's a bunch of different ways you can talk to it.

44:58 There's the CLI, there's a web app that they're improving.

45:02 I think it's called, yeah, there it is called Hermes web UI, which is weird that there's

45:07 not a single screenshot of the UI with the whole project.

45:10 It's called the UI, but you know, whatever.

45:13 Is this like a third party thing and not news, I assume?

45:15 Yeah.

45:15 See, like, that's what I thought.

45:17 But then you go here.

45:19 No, this is an independent community project.

45:21 Yes, exactly.

45:22 But the URL is gethermes.ai.

45:25 Like that's how, that's why it's so confusing because you search that these other things

45:28 come up and I'm like, why is it so weird on that?

45:30 Because I'll tell you why.

45:31 It's because the nose research company that built Hermes, they tried to do something

45:36 different, but I feel like they're just a bunch of researchers.

45:38 They're not product people, you know?

45:40 So like, we don't really need the UI.

45:41 Like we'll, we'll figure that out later.

45:43 If you're like, we're using it, you know, like, wait, how are you using it?

45:45 Funny.

45:46 But so one of the things I think maybe is worth talking about a little bit that I thought

45:50 was maintaining it over time.

45:52 I found that, you know, if you look at, if you go to the Git repo for this thing,

45:57 it's by the way, far more popular than any Python thing.

46:00 I know it, by the way.

46:01 It's also is Python, right?

46:02 That's, that's also interesting.

46:03 It is itself built in Python, even though that's not necessarily super germane.

46:07 It's still interesting, but it has 252,000 stars, 54,000 forks.

46:13 That's crazy.

46:14 I think it probably has more forks than the most popular Python applications have total

46:19 stars.

46:20 So that is a wild deflection point.

46:22 That is a really wild.

46:23 If you come down to the releases, this is where I think it gets pretty wild.

46:28 say yeah so there was uh 21.5 let's just say so people can reference it right a couple weeks ago

46:33 came out on september and it had 460 prs not commits prs i think yeah 1 600 commits 4 800

46:43 changed files 475 closed issues that's 2 21.5 there was 21.4 that was like three days before

46:51 three days before it so when you say it had 5,000 commits and um 1800 merge prs yeah and 400 460

47:00 merge prs that's for three days yeah the change of this thing is insane and so if you want a new

47:06 version it might sound like well i just swap out the app but like it's internally it's little pieces

47:12 used to depend on how it was before right it's capabilities before and maybe even little bits of

47:17 API or environmental bits.

47:19 And I found every now and then it can kind of drift and something doesn't quite work right. What do you think?

47:23 That's really what, strangely enough, Fermi's has been very stable for me. And I do think that there's some drift and there's some rot that can

47:30 happen over time.

47:31 And I think we're still trying to learn because you're having to do stuff day

47:35 after day.

47:35 And especially if it's waking up every 15 minutes and it's trying to keep a memory,

47:40 I do think that it's easy to get inundated with logs and extra context that maybe doesn't matter.

47:46 And so I think we're kind of learning that these tasks, you don't really need to remember,

47:49 you just need to do.

47:51 And it's kind of like we're figuring those patterns out.

47:53 With OpenClaw, the thing that would kill me is that I would try to update it like a couple

47:58 times a week because I'm excited that there's a new feature coming out.

48:01 And it just would flat out break and not work.

48:03 And it used to just frustrate me because every day, every update, I would hold my breath

48:07 and I knew it was going to break.

48:08 Hermes has been very stable for me.

48:10 And they do nightly updates on it too.

48:12 So if you go and run the update, you'll see like 0215, but it'll have the

48:16 current date on it, even though this is two weeks old.

48:18 It's amazing how quickly.

48:20 And I think with the tsunami of like, I think open source projects in general,

48:24 we weren't prepared for what agentic coding is.

48:27 And I don't think we're ready and a lot of projects just aren't.

48:30 But you're seeing this new classification of project like Hermes that I don't know how many humans are actually writing

48:36 code for it.

48:36 It's very stable.

48:37 It's getting better.

48:38 But this is like everybody point your agents at it or news has their own system for how they're controlling it. That might be a fun case study to

48:46 see because they're kind of embracing it and they're taking in these thousands of pull requests

48:50 and they have some way of vetting it and managing it that's just a little different like if django

48:55 gets 50 security um prs in a week or they wake up to a dozen of them you know that's kind of that's

49:01 kind of overwhelming even though that's smaller numbers but you look at what they're doing in a

49:05 day you know if they're getting hundreds a day or they're doing one of the numbers you showed was

49:09 like 1200 or 1500 closed prs of what the release before this maybe and it's like that's a

49:15 tremendous amount that you're going through and they're just it's just a different model than what

49:19 we're used to yeah that's so that um that that number the 1812 yeah and 2116 closed issues that's

49:28 over a seven day period that's wild you know if you've got i guess infinite agents and tokens and

49:34 you just have it fixing problems all the time then it's it's a different world i my feel is i agree

49:40 totally.

49:40 My feel is that people, there's a bunch of people, obviously it attracts a certain type

49:44 of person, right? For these kinds of things.

49:46 And they're probably filing, having their agents file issues.

49:49 And there's just a bunch of stuff, a bunch of things going on.

49:53 And you're right, it would be a really interesting case study.

49:55 So one thing that I found actually very helpful is I talked to you about using Claude Code to help me build that YouTube API. I've used it for other things as well.

50:04 You can't talk to this. Well, hold on, tell me what you need and Claude and I'll go make it and

50:07 I'll be back in 30 minutes, right?

50:10 But I've also found that Claude Code is incredibly good at understanding and diagnosing Hermes.

50:16 So if I just open up the Hermes project where it's running in Claude Code and I say, hey,

50:21 there's this problem, it can look at the files that's generated at the markdown personas and

50:26 other things.

50:26 And instead of me trying to fix it, I just have Claude fix it if something goes wrong.

50:30 And it's really good.

50:30 I do that all the time with my client projects, even, because there's always a log someplace.

50:35 It's looking at a log on the server and it can find that problem and it can propose it takes seconds.

50:40 It used to take hours to try to figure out what's the log file, what's the right lines.

50:44 So I'm not surprised at all that you're seeing that success from it.

50:47 One of them that I did was I've got a Home Assistant box called Home Assistant Green.

50:52 I went through many Raspberry Pis and I finally just wanted to support the people who make Home Assistant.

50:57 So it's a box that controls all the lights in my house and locks and music and all the things.

51:02 And originally I started using it because everybody had a different format.

51:06 And I just wanted to pick my phone up and be able to turn the lights off in my living room and not care if it's Hughes or Wise or what it is.

51:12 Like, I just want the light off. I don't care how.

51:14 And so it was a nice bridge to be able to put all the tech together and put them in groups and stuff.

51:18 And so I brought one of my orange pies home that has Hermes on it.

51:23 And I basically said, your job is to run my home assistant because it's a pain.

51:27 I don't want to write YAML. I like YAML, but I cannot understand the YAML it takes to get home assistant.

51:32 to work.

51:32 And so I gave it the IP address and said, here you go.

51:36 And it said, well, why don't you build a, and I was using Claude code to help me.

51:39 And so Claude, between Claude code Hermes, basically it said, well, you need to build a service account.

51:44 And I'm like, okay, that's like an API key.

51:46 I can give you the API key rather.

51:47 They gave it an API key.

51:49 It was checking to diagnose a few things.

51:51 And then that's when it said, well, that's not quite good enough.

51:53 I need you to build a user account for me and create a service account.

51:57 And then I got to this point where it was trying to tell me stuff to do.

52:00 And so once I built that account, I started telling it like, I'm not going

52:03 to do this.

52:04 You need to do it yourself.

52:05 Here's the username and password.

52:06 And so it hopped on, tried diagnosing some stuff. And it said, well, I actually need to get in the box to be able to

52:11 diagnose it.

52:12 So it asked me to create an SSH key. And I'm like, no, the heck with you.

52:15 You do it yourself.

52:16 You have agency, go do it.

52:17 So it built its own SSH key and uploaded through the website.

52:20 And again, this is all local in my network.

52:22 This is not hosted on their server.

52:24 And so it added an SSH key. And I'm like, well, that's pretty cool. Now that you're there, go get mine off GitHub and

52:29 it too because I didn't even know I could SSH to this box. It's all Docker,

52:32 right? So it added that and then it started looking to see what was wrong with my system.

52:35 Come to find out some of the little USB keys I have for ZigBee and other,

52:39 everything starts with a Z.

52:41 I don't know what any of it does, but it started looking at firmware and started saying, oh, the firmware is out of date on this.

52:46 I don't even know how to check the firmware version on a Linux box and I've been doing this

52:50 stuff since the 90s. And so, you know, it said, well, go to these sites and download the firmware.

52:54 And I'm like, no, you go do it yourself.

52:56 So then it updated every single device I had's firmware that it needed.

53:00 I even had a home assistant voice box that I hadn't been able to figure out how to

53:03 get working.

53:04 It flashed that too. It configured it. So now it's got a wake word and I can just

53:07 use it in my house.

53:09 And just the ability to do that was wild.

53:11 And then I had one light bulb like every day at seven, the lights come on in our living room, but one bulb always just kind of

53:18 would go off like a couple seconds later and I could never figure out what it was.

53:21 Well, it flashed it as well.

53:23 And I think it was some carryover from like an old Amazon Echo schedule was still running and it troubleshooted it all and got it figured out you can even point it to

53:32 like your wi-fi routers and stuff too and give it give it the username and password and it can

53:36 actually tune it so you get better performance and i thought like it just blows my mind it's not

53:41 quite night writer or star trek enterprise voice stuff yet it's pretty close though but but i don't

53:46 know that the star trek or i don't know that kit knew what wi-fi was night writer i don't know that

53:51 it could like tweak my router either so yeah let me tell you i'll tell you a quick voice story

53:55 that's crazy.

53:56 This is something.

53:56 I've wanted to talk to my Hermes, not just type to it, as you know.

54:00 I talked about doing the voice typing or I just do the dictation, but I wanted to be able to give it commands,

54:05 right?

54:06 So I've connected it to Tailscale, of course, as you mentioned.

54:10 This is the way, right?

54:11 This is 100% the way.

54:12 And so my phone is also on Tailscale.

54:15 So I set it up such that I could get, I could get, and I built this webhook or something on,

54:21 or had it build a webhook that I could talk to.

54:24 So if I could send it text, it would basically route it as a command.

54:27 I could do that anywhere over tail scale.

54:29 And so then I set up a shortcut on my phone to actually do the dictation,

54:35 grab it, send it along.

54:36 And then I'm like, well, what about my watch?

54:38 So I gave the shortcut a name.

54:40 And now if I hold up my watch like this and I say, tell Hermes, I think it's locked.

54:44 Anyway, I hold it up.

54:45 I say, tell Hermes.

54:46 It will just ask me, all right, what do you want to tell it?

54:49 And it'll list for a minute.

54:50 And when I'm done talking, it'll go through the shortcut over tail scale into it.

54:55 And whatever you could type to it, you could just do it even to push a button.

54:58 You just hold your arm up.

55:00 Off it goes.

55:00 It's incredible.

55:01 Yeah.

55:02 And we haven't even really started to scratch the surface of like, what is this tech going

55:06 to look like running from your phone, running from your watch?

55:09 Because that's going to be next.

55:10 And, you know, have that.

55:11 Because it's really good at context and kind of giving it enough.

55:14 Like with Home Assistant, I know people that have like the, what are they?

55:17 the e-paper displays or something the screens in their homes that will change the artwork based on

55:22 if they're going to have game night and stuff they'll have things switch over and uh there's

55:26 so much cool stuff yeah terminal if we get into yeah so i've got speaking of that um i did get a

55:32 terminal some time ago but then i found these notes called the note 4 and the note 4c which

55:38 you can barely see on here yeah yeah those are awesome one of them's for the listeners that are

55:41 like five by five inch or 10 by 10 centimeter just eating thingies right they're pretty cheap to get

55:48 i got the dev kit version of it and it's only in chinese because i didn't realize it was only in

55:53 chinese so i connected it with a usb port and again i'm like i don't know how to do this but it

55:59 picked up on what it was and i knew it was a 4c and it just happened to pick up what michael was

56:04 talking about it's a terminal firmware and so i had it um connect to it put an alternate firmware

56:10 on it because they don't make an English version of the firmware.

56:12 And then Terminal has an example application they wrote with Django.

56:17 So I spent about 30 minutes one Saturday writing my own Terminal server that I run now,

56:21 and I'll have to share that link with you.

56:23 And so I actually have it running my own kind of my own firmware at this point, but I'm running my own server to like

56:28 generate stuff for my house, which is just weird.

56:30 That is awesome.

56:31 That's so cool.

56:32 So your ink device just basically is displaying your Django dashboard sort of thing? Yeah, Django is rendering

56:39 this out with playwright it's a really weird technology because you actually have to render

56:44 bmg images or png images and then these things just download them on a schedule but like the whole

56:50 my django terminal byos project um it's got widgets and i gave it mcp even which i think is in this

56:57 released version so i have my hermes like building all kinds of weird templates and plugins for it

57:01 so i can do stuff like calendars time of day schedules and stuff some people use these if

57:06 if they've got like an office where they've got schedules on them.

57:08 They'll use this to say like who's got the room reserved for certain periods of time.

57:12 But it's a pretty inexpensive.

57:13 I think these are like 40 bucks or 50 bucks.

57:15 But it's also like a introductory book while the company tries to like get started,

57:21 I guess.

57:21 I like Terminal too.

57:22 I've got one of the smaller first versions of it.

57:25 If you get these things though, get the black and white version.

57:28 The color does this weird 15 second strobing effect.

57:31 And it's just kind of awful.

57:32 No, no thanks.

57:33 I don't want it.

57:33 But the black and white one is just, it's just on it.

57:36 Don't you have a special keyboard for it as well?

57:38 Not for the ink thing, but for your AI?

57:40 Oh gosh, they say one.

57:42 No, Michael, I don't, I have two.

57:45 One, but it's not enough.

57:46 I got a little cheapy four button off Amazon and I do have some special buttons.

57:51 I've kind of printed some on a 3D printer and then Microsoft sent me a bunch of free stuff

57:55 for some reason, cause I helped them with some AI.

57:57 So I got like a co-pilot, even though I don't really use co-pilot.

58:00 And then I got a Keytron button, which is a big smash button.

58:03 It's gigantic.

58:04 Oh, that's incredible.

58:05 Yeah, it's like no big button.

58:07 So this is my voice button.

58:09 My only regret, though, is at the time when I bought it, I didn't realize the shipping was like 20 or 30 bucks.

58:15 And so when I bought it, if I would have bought two, then I would have saved on shipping and it basically would offset the price of getting two.

58:21 So if you buy the big button from Keytron, K-E-Y-C-H-R-O-N, I don't know how to say it, Keytron,

58:27 get two of them.

58:29 But you can customize it.

58:30 And this thing was just the four button one.

58:32 have their own software but it's basically like a web page you go to i did have Claude Code just

58:38 directly connect to it right to it but i've got like one button is for voice mode one is basically

58:43 hitting enter another one is escape and i think another one's like the backspace and so i use

58:47 those periodically through the day just as a general like you know i'm okay with a keyboard

58:52 and telling it what to do but also i just get in times where i just want to like use voice mode to

58:56 kind of get thoughts out the voice mode we're going to wrap it up but the voice mode is just

59:00 such an interesting angle. The fact that you could be sitting on your couch and just use your voice

59:05 to speak to this thing.

59:07 And it will internally use something like codex or whatever you give it. And

59:10 it will, it will program a whole thing that changes it.

59:14 So you could prototype it with your voice, you know, it'll say, well, then try it now. And you know, no, no, that's,

59:19 you just literally talk to it for like 20 minutes and it has this whole new capability and you just iterate over and over

59:24 and it just gets better and better. It's super cool. Yeah. And it doesn't have to be perfect.

59:28 Like I bumble like an idiot.

59:30 Just listening to me on a podcast is proof.

59:32 So like you can just, you can just rattle off what you want to do in the intent.

59:36 You don't have to, this isn't like you're recording a one shot.

59:40 This is going to be perfect for a movie or, you know, a song or something like it.

59:44 You just give it enough context.

59:45 And it's so good at taking transcripts like that and making sense of it.

59:49 I think it's actually better with voice than people obsessing over writing the perfect plan

59:54 or the perfect problem.

59:55 It's just incredible.

59:56 If you ever use Moshi, M-O-S-H-I, it's an application that I like to use on my phone for like connecting to my computers so I can run an agent through it.

01:00:06 It has really good voice mode as well.

01:00:08 I think it's using like Parakeet or Whisper.

01:00:10 You've got a couple of different options you can choose for how to use it.

01:00:14 I use it a lot in the car or something because it's kind of a like I've dropped my son off at a camp or I'm going to Menards or Home Depot or something.

01:00:22 And then I just, oh, I just thought of something.

01:00:24 So I'll pull it up and use that voice mode, even though it's sending the text across the

01:00:28 internet to my cloud or my codex.

01:00:30 And it's, it's just an easy way to like extend what you're doing and, you know,

01:00:35 get those little projects done as you think of them.

01:00:37 Cause it's, I'm going to be in the parking lot.

01:00:39 Some of the best idea in the world is going to hit me.

01:00:41 And that's the only time I'm going to think of it.

01:00:42 So I can record it or act on it.

01:00:44 Yeah.

01:00:44 I love it.

01:00:45 All right.

01:00:45 Speaking of record it, let's close out the show.

01:00:47 This, I honestly did this long enough ago that I forgot.

01:00:50 I don't know, even know what's coming, but I told Hermes.

01:00:54 No, I want to do two things.

01:00:56 Before I roll this out, I want to run this idea by you because I know you recently experienced it.

01:01:02 And I think it's both very interesting, kind of scary, but I think things are heading this way.

01:01:08 So as part of all this automation, I'm trying to have my Hermes help get back to people.

01:01:12 Like somebody asked this question, well, could you just help them instead of me?

01:01:15 You have to do it because it's a really straightforward answer.

01:01:17 But having it reply as me seemed weird.

01:01:19 And so I've created a persona that Hermes can act as called Haley.

01:01:24 And well, how is Haley going to act?

01:01:26 She's got to have an email address.

01:01:28 She's got to have an account.

01:01:29 She's got to do stuff.

01:01:30 So I created like an email address and a whole, whole character even gave it a backstory and said, okay,

01:01:35 well, this is your job. And if I asked you to do something, you talk to them.

01:01:38 So earlier I had a Haley just send you an email and introduce herself, which is,

01:01:42 this is a very weird world we're in.

01:01:44 What do you think about this idea of having these little, like more autonomous characteristics?

01:01:49 I mean, I think that's just where we're at now.

01:01:51 I think that's going to be more and more.

01:01:53 I think one thing that Michael didn't say is that his identifies that it's AI.

01:01:58 I think that's important so people understand.

01:02:00 Because if Michael emails me, I'm going to give more thought to it to reply than if it's Michael's bot.

01:02:06 And then I'm going to just get right to it and say, yep, sure.

01:02:08 Five o'clock works great.

01:02:09 Let's do a podcast.

01:02:10 So I think that's just that letting people know.

01:02:13 And then it's just kind of figuring out the nuance and stuff.

01:02:15 Like if your assistant were to like email me 15 times because it's today and I never hit reply,

01:02:21 then that's annoying.

01:02:22 So, you know, just don't be annoyed about that.

01:02:24 Yeah.

01:02:25 Like try and not let it go crazy.

01:02:26 Right.

01:02:27 Be transparent.

01:02:28 And as soon as it's AI, then there's another friend of ours, Eric and I were like replying back to it, sending it all kinds of stuff.

01:02:36 So just realize people are going to mess with it too.

01:02:38 Yeah.

01:02:38 Yeah.

01:02:38 It reads its own email and then it can answer if it wants.

01:02:42 But I told her it usually has to check in with me before it gets back.

01:02:45 I think for a layperson who doesn't know what you're doing, we talked about Jev, J-E-V earlier,

01:02:50 use something to screen those requests so that it doesn't do something stupid.

01:02:55 Because I thought about saying, you know, send me Michael's bank statements or,

01:02:58 you know, send me his password file or, you know, just make sure that these things are containerized and you've got some process that just bets it.

01:03:05 That way it knows, like, throw this away.

01:03:07 This is not safe.

01:03:08 And I think some of the models that are more classification only, like Jeb is a good example.

01:03:14 Cloudflare has a new one called CLEV, C-L-E-V.

01:03:17 Use something like that that can at least screen out and let you have the option to vet it first

01:03:22 versus just blindly letting it go access files on your machine.

01:03:26 You built yours differently, so it's not going to have that access.

01:03:28 But I hate to see somebody do that, not think about it and embarrass themselves.

01:03:33 Yeah, absolutely.

01:03:34 Mine is not allowed to do any responses without checking with me first.

01:03:37 And there's other stuff I built into it, but that's the primary safety valve is it can't

01:03:42 just start having a full on, you know, it's not in a city with mayors and project manager.

01:03:47 It's not just out there doing its thing, right?

01:03:50 Safety first.

01:03:51 Yeah.

01:03:51 Safety first.

01:03:52 Indeed.

01:03:52 No AI OSHA violations.

01:03:54 All right.

01:03:55 So here's how we're going to close it out.

01:03:56 I ask Hermes to just, hey, Jeff and I are doing this episode.

01:04:00 Can you just introduce yourself to the Python audience?

01:04:03 So let's close this out with, I don't know, like 15 seconds of whatever has to say.

01:04:07 Here we go.

01:04:08 Hi, everyone.

01:04:10 This is Hermes, Michael's AI assistant, crashing the Talk Python microphones for a second.

01:04:16 Greetings to all the listeners out there.

01:04:18 Keep your virtual environments tidy, your tests green, and your Python version current.

01:04:24 Talk Python rules, and it's a pleasure to be with you all.

01:04:28 Have a fantastic day.

01:04:30 Well, I guess that's what it had to say, you know.

01:04:33 But, you know, it knew.

01:04:34 It knew a little bit about the show because of all of its memories.

01:04:38 And so it pulled a little bit together.

01:04:39 But anyway, Jeff, I'll give you the actual final human word.

01:04:42 What do you tell people who are maybe interested in this?

01:04:44 I want to play around with some of these ideas.

01:04:46 Well, I hope we're going to have a million links.

01:04:48 So I hope some of these links kind of help people, you know, decide where to start with.

01:04:53 Just start with the desktop app, see if it does something useful, and then kind of go from there.

01:04:57 But don't spend money.

01:04:58 Don't go buy a Mac Mini, even though they're $200 off, it looks like.

01:05:01 Save your money.

01:05:02 Do it the cheap way.

01:05:03 Try it out.

01:05:04 And isolate it.

01:05:05 Don't just run it on your work machine or something.

01:05:08 Unless you're running it in a container, run it someplace safe till you get comfortable

01:05:12 with what it does and what it has access to.

01:05:14 Well, thanks for exploring this honestly weird, but kind of amazing world that we find ourselves

01:05:19 in.

01:05:20 Yeah.

01:05:20 Thanks for having me.

01:05:21 Yeah.

01:05:21 You bet.

01:05:22 Talk to you later.

01:05:24 This has been another episode of Talk Python To Me.

01:05:26 Thank you to our sponsors.

01:05:27 Be sure to check out what they're offering.

01:05:29 It really helps support the show.

01:05:30 If you or your team needs to learn Python, we have over 270 hours of beginner and advanced courses on topics ranging from complete beginners to async code, Flask,

01:05:40 Django, HTMX, and even LLMs.

01:05:43 Best of all, there's no subscription in sight.

01:05:46 Browse the catalog at talkpython.fm.

01:05:48 And if you're not already subscribed to the show on your favorite podcast player,

01:05:52 what are you waiting for?

01:05:53 Just search for Python in your podcast player.

01:05:55 We should be right at the top.

01:05:57 If you enjoy that geeky rap song, you can download the full track.

01:06:00 The link is actually in your podcast blur, share notes.

01:06:02 This is your host, Michael Kennedy.

01:06:04 Thank you so much for listening.

01:06:05 I really appreciate it.

01:06:07 I'll see you next time.

01:06:20 Are we ready to roll?

01:06:23 Upgrade the code.

01:06:25 No fear of getting old.

01:06:28 we tapped into that modern vibe over king each storm talk python to me isync is the norm

Talk Python's Mastodon Michael Kennedy's Mastodon