#487: Minimum requirements
About the show
Sponsored by us! Support our work through:
- Our courses at Talk Python
- Consulting from Six Feet Up
Connect with the hosts
- Michael: Mastodon / BlueSky / X / LinkedIn
- Calvin: Mastodon / BlueSky / X / LinkedIn
- Show: Mastodon / BlueSky / X
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesday at 7am PT. Older video versions available there too.
Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Michael #1: dust - a better du
du+ Rust =dust- a fast, visual, intuitive disk-usage CLI- Run
dustand immediately see the biggest directories and files without piping throughsort,head, orawk - Smart recursive output focuses on what matters instead of dumping every folder
- Colored bars show relative size and parent/child hierarchy, making “where did the space go?” obvious
- Perfect for Python projects bloated by
.venv, caches, Docker volumes, downloaded datasets, and local AI models - Install via
brew,cargo install du-dust,conda-forge, Scoop, Snap, deb-get, or GitHub releases
Calvin #2: A Way better ARchive format for Python packaging
- war - new archive format spec from Astral (same team as uv/ruff), v0.0.2, still no binary encoding defined yet
- Header-Index-Store layout: header IDs the file, index maps names to store offsets, store holds compressed data
- Index uses a finite-state transducer (FST) to dedupe common path prefixes across entry names
- Supports three entry types (file, directory, link) and three compression modes (store/DEFLATE/zstd), plus an "executable" metadata flag
- Unpacking is atomic - writes to a temp dir, then renames into place, so a failed extract never leaves a half-unpacked directory
- Strict name-segment rules (no NUL/control chars, no leading/trailing whitespace, blocks Windows-reserved names like CON/PRN) to avoid path traversal and cross-platform footguns
Michael #3: Hermes Agent: The AI agent that grows with you
- Hermes Agent is an open-source, Python-built AI agent framework from Nous Research - think ChatGPT-style assistant, but connected to your tools, files, shell, browser, calendar, memory, and messaging apps
- I’m using it in Discord as a long-running agent conversation, not just a one-off chatbot session
- Hermes can connect through a gateway to platforms like Discord, Telegram, Slack, WhatsApp, email, webhooks, and more - so the same assistant can follow you across surfaces
- In my setup, I can send Hermes voice/text from Discord, keep project context across turns as threads, and ask it to actually do things: read GitHub repos, run commands, edit files, schedule calendar events, generate drafts, and verify results
- A fun workflow: I can trigger one-shot actions from an Apple Watch shortcut - dictate a request, send it to Hermes, and have the agent execute it asynchronously
- Hermes has persistent memory, so it can remember durable preferences and facts - for example, how I like my research formatted
- It also has “skills,” which are reusable procedures the agent can load later, so Hermes can self-improve over time instead of rediscovering the same workflow repeatedly
- It supports scheduled jobs / cron-style automations, so it can proactively watch for releases, send summaries, run checks, or remind you about things
- It’s provider-agnostic: OpenRouter, Anthropic, Google, xAI, local models, Nous Portal, and others
- The big idea: Hermes turns an LLM from “a chat box I visit” into “an agent I can reach from anywhere that knows my workflows and can take real actions and learns over time.”
Calvin #4: llm-coding-agent 0.1a0
- Simon Willison built a Claude/Codex-style coding agent on top of his
llmlibrary, using an alpha of thellmpackage plus his python-lib-template-repo - Built almost entirely via prompted TDD - asked an agent to write a spec.md, then commit + implement with red/green tests, occasionally hitting a real OpenAI key to sanity-check
- Shipped to PyPI as an alpha:
uvx --prerelease=allow --with llm-coding-agent llm code - Tool set mirrors familiar coding-agent primitives: read_file, edit_file (exact string replace + diff), write_file, list_files, search_files, execute_command
- Also exposes a Python API -
CodingAgent(model="gpt-5.5", root=..., approve=True).run(...)- which Simon didn't ask for but got anyway - Demo:
llm code --yolotold GPT-5.5 to build a SwiftUI CLI clock; model correctly noted SwiftUI isn't really CLI-friendly and still produced an ASCII-art time display
Extras
Calvin:
- Slides, but for developers https://sli.dev/
- Wanna reduce your token usage…. only issue is that its lossy https://github.com/teamchong/pxpipe
- PEP 772 - Python Packaging Council inaugural election dates set, nominations open July 28, voting September 1-15
Michael:
- What the pls? revisited!
Joke: Min requirements for Linux
Episode Transcript
Collapse transcript
00:00
00:05
00:10
00:12
00:13
00:15
00:21
00:29
00:30
00:32
00:35
00:36
00:37
00:40
00:43
00:44
00:50
00:52
00:53
00:54
00:56
00:59
01:01
01:02
01:03
01:04
01:07
01:12
01:16
01:20
01:30
01:37
01:39
01:43
01:47
01:52
02:02
02:07
02:11
02:19
02:21
02:22
02:27
02:29
02:32
02:33
02:36
02:41
02:46
02:49
02:50
02:51
02:55
02:57
03:02
03:04
03:06
03:07
03:09
03:12
03:17
03:19
03:22
03:25
03:38
03:44
03:55
04:05
04:16
04:28
04:39
04:44
04:46
04:51
04:52
04:52
05:01
05:01
05:02
05:07
05:10
05:13
05:14
05:28
05:39
05:50
05:55
06:00
06:01
06:01
06:03
06:04
06:05
06:08
06:11
06:16
06:20
06:25
06:29
06:37
06:39
06:50
06:58
07:07
07:19
07:21
07:24
07:25
07:26
07:28
07:32
07:33
07:34
07:35
07:40
07:43
07:49
07:55
08:07
08:19
08:35
08:38
08:43
08:54
09:02
09:02
09:03
09:08
09:11
09:12
09:13
09:16
09:17
09:18
09:19
09:25
09:28
09:33
09:38
09:39
09:43
09:45
09:47
09:48
09:53
09:54
10:00
10:03
10:08
10:12
10:14
10:17
10:20
10:26
10:27
10:31
10:32
10:35
10:35
10:43
10:47
10:51
10:57
10:59
11:05
11:10
11:16
11:26
11:28
11:29
11:30
11:30
11:32
11:36
11:43
11:48
11:54
12:06
12:17
12:31
12:45
12:57
13:11
13:24
13:36
13:41
13:46
13:58
14:09
14:14
14:17
14:32
14:43
14:52
15:07
15:20
15:28
15:33
15:43
15:58
16:13
16:23
16:34
16:45
16:59
17:13
17:22
17:29
17:44
17:48
17:57
18:11
18:13
18:15
18:19
18:22
18:23
18:25
18:26
18:30
18:30
18:32
18:33
18:41
18:46
18:50
18:57
18:59
19:00
19:02
19:06
19:12
19:15
19:17
19:22
19:23
19:25
19:31
19:33
19:39
19:43
19:48
19:49
19:50
19:51
19:51
19:58
20:02
20:06
20:08
20:13
20:14
20:19
20:23
20:24
20:26
20:29
20:41
20:45
20:49
20:50
20:51
21:04
21:08
21:10
21:11
21:11
21:14
21:27
21:28
21:31
21:37
21:39
21:43
21:45
21:55
21:57
21:59
22:04
22:06
22:12
22:16
22:17
22:21
22:22
22:23
22:23
22:24
22:24
22:28
22:33
22:47
22:49
22:53
22:55
23:00
23:02
23:03
23:06
23:06
23:08
23:12
23:17
23:22
23:24
23:27
23:29
23:32
23:35
23:38
23:39
23:42
23:48
23:49
23:58
23:59
23:59
24:04
24:05
24:05
24:06
24:08
24:19
24:26
24:35
24:37
24:38
24:39
24:40
24:42
24:42
24:46
24:47
24:48
24:49
24:53
25:08
25:19
25:30
25:36
25:48
25:50
25:52
25:55
25:56
25:57
26:00
26:01
26:05
26:10
26:14
26:19
26:21
26:22
26:28
26:31
26:33
26:34
26:37
26:40
26:54
27:09
27:10
27:12
27:13
27:19
27:20
27:22
27:24
27:25
27:27
27:28
27:28
27:31
27:33
27:34



