Python Bytes - #491 Feeling Judged
Episode Date: August 12, 2026Topics covered in this episode: Claude Code /insights Post-quantum crypto lands in Python MCP goes stateless — and FastMCP gets renamed inshellisense - IDE style command line auto complete Extras... Joke Watch on YouTube About the show Sponsored by Xweather Xweather combines enterprise-grade weather intelligence with agent-ready APIs, natural language capabilities, and an MCP server so your agents can adapt workflows, automate responses, and make better decisions based on real-world conditions. Michael will tell you more about them later in the show. Get started for free at pythonbytes.fm/xweather 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 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: Claude Code /insights Michael’s Insights: michael-kennedy-claude-code-insights-2026-08-09.html Be careful sharing these outputs, they include details references to your projects, errors, security findings, etc. ;) /insights reads your last 30 days of local session transcripts and hands back an interactive HTML report on how you actually work. One command, zero setup: type /insights in a session, or run claude -p "/insights" from the shell for a non-interactive version that just prints the path Reads what's already on disk: pulls session logs from ~/.claude/projects/, skipping agent sub-sessions and anything under 2 messages or 1 minute Project areas: clusters your sessions into themes like "CLI Tooling" or "Documentation" with session counts Friction analysis: categorizes where things went wrong by root cause - and quotes your own prompts back at you Interaction style: tells you whether you're a delegator or a micromanager, plus which workflows are worth doubling down on Actually actionable: suggests concrete CLAUDE.md additions and Claude Code features you're not using The catch: Haiku does the per-session classification, so the first run takes several minutes; results cache to ~/.claude/usage-data/facets/ and the report lands at ~/.claude/usage-data/report.html Calvin #2: Post-quantum crypto lands in Python pyca/cryptography 48 ships ML-KEM (key establishment) and ML-DSA (signatures) — NIST's post-quantum standards, now one pip install away. Big deal because it's the 11th most-downloaded package on PyPI (~1.2B downloads/month) and sits under Ansible, Certbot, Airflow, and paramiko. No PQ there, no PQ anywhere in Python. Trail of Bits did the work (Rust bindings, cross-backend API, tests, AWS-LC backend support), funded by the Sovereign Tech Agency. Timing tracks a June 22 White House order setting federal deadlines: PQ key establishment by end of 2030, PQ signatures by end of 2031. Not a drop-in swap — the wire sizes explode. ML-DSA-65 signatures are 3,309 bytes vs Ed25519's 64; ML-KEM-768 public keys are 1,184 bytes vs X25519's 32. Hardcoded field sizes and length prefixes will bite. API looks like the existing asymmetric primitives, except ML-KEM is encapsulate/decapsulate rather than a Diffie-Hellman exchange. SLH-DSA (the hash-based conservative backstop) is still in progress. The primitives are here, but protocols haven't caught up — so you won't be running post-quantum Certbot this week. Sponsor: Xweather You're using agents that can write code, summarize documents, and automate workflows. But they're missing one thing: awareness of the world around them. This is where today's sponsor, Xweather comes in. Xweather combines enterprise-grade weather intelligence with agent-ready APIs, natural language capabilities, and an MCP server built for tools like Claude, Codex, Copilot, and modern IDEs – so your agents can adapt workflows, automate responses, and make better decisions based on real-world conditions. Backed by Vaisala, whose instruments fly on NASA missions to Mars, Xweather delivers trusted data and unique insights that go beyond conditions to actual impact – from real-time lightning strikes to road surface forecasts. Start with 15,000 free API calls each month and pay only for what you use as you grow. Xweather is your full weather stack, for developers by developers. Start building for free today at pythonbytes.fm/xweather. The link is in your podcast player's show notes and on the episode page. Thanks so much to Xweather for supporting Python Bytes. Calvin #3: MCP goes stateless — and FastMCP gets renamed From Philipp Acsany over at Real Python The 2026-07-28 spec landed July 28 and the Python SDK shipped 2.0.0 the same day. Biggest rewrite since MCP launched, and it's breaking on purpose. Context for scale: the Tier 1 SDKs are pulling close to half a billion downloads a month, with TypeScript and Python each past a billion total. The headline is the stateless core. The initialize/initialized handshake and the Mcp-Session-Id header are both retired — protocol version, client identity, and capabilities now ride in _meta on every request, with an optional server/discover RPC if a client wants capabilities up front. Any request can land on any instance behind plain round-robin, no shared storage. Server-initiated calls are the hard part of the migration. Sampling, elicitation, and roots/list no longer call back to the client; instead the server returns resultType: "input_required" and the client retries with inputResponses attached. Multi Round-Trip Requests, MRTR. Also: Mcp-Method and Mcp-Name are now required headers so gateways route on headers instead of cracking JSON bodies, and missing-resource errors move to standard 32602. Deprecation sweep with an actual policy behind it — Roots, Sampling, Logging, and the legacy HTTP+SSE transport all deprecated with a twelve-month minimum offramp. Tasks graduated out of the experimental core into a real extension, which is what the formalized extensions framework was for. MCP Apps is now an official extension too, so a tool call can return sandboxed interactive HTML. Auth picked up RFC 9207 issuer validation, issuer-bound credentials, and a shift from DCR toward CIMD. Python SDK 2.0 is where it gets personal: FastMCP is now MCPServer, no alias, no shim. McpError → MCPError. Wire types went snake_case (is_error, input_schema) and moved to a standalone mcp_types package, with mcp.types kept as a permanent alias. One Client object replaces the old transport + ClientSession + initialize() stack. httpx became httpx2. Sync handlers run on worker threads now, so asyncio.get_running_loop() raises inside them. The good news: one MCPServer serves both protocol eras, so 2025-era clients keep working with nothing to configure, and a Resolve(fn) parameter lets one tool body cover MRTR and the old path. 1.x is maintenance-and-security-fixes only — pin mcp>=1.28,<2 if this week is already full. The Tasks extension isn't in 2.0.0 yet, so Tasks has left the core spec but hasn't landed in the SDK. If you only call MCP servers, you mostly just get the benefits for free. If you ship one, you already know what your week looks like. And if you use the standalone fastmcp package instead of the official SDK — different project, 3.x line, none of this touches you. The rename is partly to stop the two from being confused. Michael #4: inshellisense - IDE style command line auto complete via Doug Nichols inshellisense provides IDE style autocomplete for shells. It's a terminal native runtime for autocomplete which has support for 600+ command line tools. inshellisense supports Windows, Linux, & macOS. If you are using a NerdFont patched font, you can enable the NerdFonts support in your config file Extras Calvin: Django 6.1 Released — https://www.djangoproject.com/weblog/2026/aug/05/django-61-released/ DjangoCon US is quickly arriving, grab your tickets now! — https://2026.djangocon.us/ Michael: AI integration: Python Bytes for AI Up and Running with Rust Course is out! Joke: But they already know
Transcript
Discussion (0)
Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds.
This is episode 491, recorded on Tuesday, August 11th, 2026. I'm Calvin Hendricks Parker.
And I'm Michael Kennedy.
Hey, Michael, it's great to see you.
It's great to be back. I missed you, Calvin.
I missed you, too. It's a week off. A week with no, Michael was a little, you know, somehow I got through.
Let's get this thing started. We've got a lot to talk about. I see some cool stories on the docket for today.
But first, this episode is sponsored by X Weather.
X weather combines enterprise-grade weather intelligence with agent-ready APIs, natural language
capabilities, and an MCP servers.
So your agents can adopt workflow, automate responses, and make better decisions based on real-world
conditions.
Michael's going to tell you more later in the show, but get started for free at pythonbites.fm.
slash Xweather.
If you want to connect with Michael or I on the socials, we are on Mastodon, Blue Sky, X, and LinkedIn.
You can also follow the show at Massadon, Blue Sky, and X.
Join us on YouTube for the live session of this.
So at Pythonbites.fm.fm. slash live to be part of the live audience.
We usually record this on Tuesdays at 7 a.m. Pacific 10 a.m. Eastern.
Older video versions are there, too.
We record without a net so you can watch us live and join in all the fun.
Finally, if you want an artisanal digest,
every week's shows in the notes from the email form,
add your name and email to our friends of the show list.
We will never share it with anyone else.
You're just going to get cool messages from Michael and myself
about all the show notes here, which are pretty good.
You could almost read the show notes and not listen to us.
But I know everyone loves hearing our voices.
And speaking of, Michael, let's kick it off.
What do you got for us first?
Let me ask you a question.
I know you do a fair amount of AI stuff.
A little bit.
Yeah, a little bit.
And me too.
A dabble.
It's probably fat, but I won't stick with it for a week or two.
Give it a go.
This one, you have to ask you.
You have to ask yourself, are you ready to be judged?
And sort of what's your confidence level?
So what I'm talking about is something called ClaudeCode Insights.
Have you experimented with this, Calvin?
I've not run the Slash Insights Command yet.
I've been totally in the world of Agents View from last time.
I know.
I've been all about Agents View.
And I'm so bugged that I can't get, I know I can.
I have not yet set up Agents View to unify my Mac laptop and desktop.
and desktop because I'm only seeing half of my view.
Yeah.
Yeah, so I'm going to set that up at some point.
But you know what?
There's a few things more important than that,
but not that many things.
I'm like, I should, I want to do this.
Let's check it out.
So Cloud Code Insights.
What is this?
So Cloud Code Insights is you just type
slash insights, press enter.
Nothing else.
Now, annoyingly, this does not work in the VS Code variance plugin.
Like, you can say slash compact,
clear slash usage, all those work in the VSCode version.
But this has to literally be in the VS code version.
the terminal version. Does it have anything to do with the terminal? No, absolutely not. But it still
has to be there. Don't know why. But it's fine. So if you're not using the terminal version of
Claude code, you have to temporarily go down and use that to get this door. Okay. So what you do,
like I says, you just type Slash Insights. And what it does is it will look through all of your
sessions, which are stored on your local machine, not in the cloud, just on your machine. So you've
got to do it on a machine that you use Claude Code a lot to get anything meaningful from it.
And it will assess you, Calvin.
It'll tell you how you do rather than how it's done.
My guiding you well enough?
So what I've done.
By treating you nicely.
Exactly.
What I've done is I'm like, all right, well, if I'm going to talk about this,
let me just share one of my ClaudeCode Incite.
So I ran that and I put it up on the internet.
Wow.
That's being very vulnerable.
I know.
See, I'm open here.
I may regret it, but I'm open here.
Here's the thing.
I believe this is a 30-day window,
even though it says the time is bigger, but the docs say it's 30 days.
I don't know what the actual time frame is.
It doesn't really matter that much.
It talks about how many sessions there were, how many messages, all those kind of things.
But then it gives you an overall assessment, what went well, what went bad, and what's super
interesting and why you might actually care rather than just morbid curiosity of what AI
thinks of you is it gives you a bunch of things to make it work better.
It says, look, when we tried these things systematically, this is not working that well.
So here, paste this into Claude Code to create a skill that makes it better.
Huh, that's cool.
Yeah.
Yeah.
So it's kind of like a meta thing and sort of a counseling because it also gives a little bit
of insight into itself.
Right now, you may not want to put your Claude Code insight on the internet because it has
detailed information about your projects.
It could say, oh yeah, I worked at Big Tech Company X.
And you were really successful in helping track down that huge vulnerability.
or whatever, then describe it, you know what I mean?
Yeah, that's no good.
That's a reason I can't publish any of my agent's view views because that link tells you
very detailed information about what's going on in there.
I like that it's suggesting to you basically you should use superpowers in your plan,
phase, verify, commit.
Yes, exactly.
It does tell me that.
So here, I'll read you a few fragments of it so you get a sense.
And then you all can go run slash insights, either as you're listening right now or later.
So what it does is that just generates an HTML file.
Like that's why I was complaining it doesn't work in the VS code variance or any other other UIs because literally all it goes is thinking here's your HTML file please open it up
It's like that can work anywhere. I don't know what you're talking about, but anyway it gives you an at a glance like what's working
You work in phases rather than one-shot requests number plan files one phase at a time with verification gates between them
That's discipline that discipline is what you drive TY diagnostics from 363 to zero across 25 commits without destabilizing a 1,300
99 test test suite and why your sentry work closes the full loop from raw IDSU to root cause fix test change log and resolved issue by the way i've been using the sentry mcp you know century past sponsor possible future sponsor definitely sponsor general good folks really like century yeah and so i've hooked it up to report errors when something goes wrong and it will just log those with details and so now you can just go hey clod there's an issue over at century
Look into it. Propose a fix.
Walk away. And it does. It's really, really cool.
So that's what it's talking about, right?
So that's what's working. And it said, well, what's going on?
Well, on Claude's side, the biggest cost was asserting correctness instead of verify.
Like saying, yes, that's how we're saying, no, it doesn't work that way, Claude.
Stop saying that. Go check. Oh, you're absolutely right.
You know, remember, that's not a code review, is it.
It's so self-aware.
It's self-aware.
And the quick ones to try.
Turn your plan phase, verify, commit loop into a custom skill.
This is where Calvin is suggesting that I just adopt superpower.
You should just give it.
I have used superpowers and I like really well how it came out, but I feel less connected to the code when I'm using superpowers.
In that, it just goes, I got this.
See you later.
And then like two hours later, here's your output.
Where's the flow that I have?
It checks in with me just a little bit or at least it like narrates while it's going.
I can hold on.
Why did you just say that?
You know what I mean?
I don't know.
Maybe I will someday give in the superpowers.
But I have a very similar flow to it, nonetheless.
Ambitious workflow that your sentry to triage loop was deterministic.
I did this whole mega thing where I went through the Talk Python mobile apps.
They had years of errors that I'm like, I cannot deal with these.
And I cannot do, this is too subtle for me to fix without making it worse in Flutter
and then getting it back on the app store.
And I eventually just broke down and said, okay, I'm going to, Claude and I are figuring this out.
And we just, that's a perfect kind of tedium for these models.
Yeah, it was so good. It was so good. It will even open up the simulator and automated to like track down the issues and so on.
So there's a lot more than I'm reading here, but it tells you like what you worked on, how you use clog code, impressive things, what went wrong on the horizon, all these things.
So it tells you here's all your projects and this is certainly where you want to be a little less detailed.
But it talks about how I worked on Python bytes and talk Python web platform and what did I do? I don't know.
I worked on some admin back in stuff. There's a really neat admin section.
that no one is going to ever see.
A few people will ever see.
Yeah.
And because, you know, it's private to make the whole thing go.
Some DevOps seeing the Century thing coming back again.
But it gives you also like really nice graphs.
What you wanted feature implementations,
bug fixes, UI styling.
And apparently I wanted features most and then bug fixing.
That's good.
The languages that I interacted with through Claude,
the type of sessions, the tools,
apparently is 2,680.
That's a job one on mine too.
Nice, awesome.
Yeah.
And then, yeah, it goes and talks about how you operate, like this techno, such and such and such and so on.
I think this is great.
I mean, if you're a heavy cloud code user, does it also track the co-work sessions or is it only cloud code?
I think it's only cloud code.
It depends if it stores it as a session.
I think it does.
Well, at least I know the agents view picks up cowork and cloud code sessions.
Then I would imagine it would because it just all this thing does is it just reads and analyzes.
is your session folder, right?
The types of errors that were encountered.
Stuff that works, but also stuff that went wrong.
So here's where it gets to be like you can actually make
buggy intermediate code or self-inflicted tool collisions,
claiming correctness when it shouldn't have,
wrong target.
And then here's the last thing I'm going to talk about.
And you guys can check this.
That's what I was going to ask about.
It looks like it's right here.
Yeah, here's at the bottom.
It says existing cloud code features to try.
and you can just say copy all
and it literally says
it says paste this into your cloud
to MD and you could just check
and uncheck whichever you want and copy and paste
so it says it just gives you little
little things that you can record
for Claude code that will make
it better based on it sort of
it's like a profiler guided optimization
sort of thing but for
AI it says verification before
claiming done this sounds like a superpower
sort of thing
never claim a layout UI change is correct
based on reading code. Take a headless screenshot with playwright and browser tooling,
inspect it before you bother the person. I tell them it's done because they often have to give
you screenshots back and say, actually, it's not done. Editing rules, sentry triage, workflows. And then
finally, this is a cool part too, is custom skills. Why don't you copy this and it'll tell you,
like, oh, you like this century triage thing? Copy this, paste it in there, and Claude will create a skill,
which then you can just say slash century triage. And hooks you can put in,
all kinds of stuff, new ways to use it.
Like, there's a ton of stuff on here that is proactive, right?
And then it gives you a little, I don't know if it's inspirational way,
but just like a call, a pull quote from cloud.
So, I don't know, what do you think of this, Calvin?
It's pretty cool.
I think more folks should be using these kinds of tools.
Like, if you are a Claude Code junkie, like this is perfect for improving your game.
Like, it's a feedback loop right into the human side of things
that you get to now feedback into the Claude side of things.
to improve your experience.
Yeah.
And then to me,
too many folks
are probably still
just trying to one shot a thing
without enough guidance
to the agents ending up
in kind of weird spots.
It's all about honing
and shaping your experience.
Like those Claude MD additions,
very specific to you.
Like the kinds of work you're doing.
You don't want to overload that file
with too much stuff.
You want it to be very specific
to the kind of workloads you're doing.
So I love it.
Yeah.
Cool.
Guide people to the right place.
That's right.
It also talks a lot about
like your
engineer your AI engineering
style if such a thing exists like
you work in phases instead of just one shot
plans phases at a time verification gates
adversarial sub agents and all these kinds of things
that you might might use
or don't use but probably probably should be so
I think it's yeah and if you would feel a bit
it has a section called impressive things you did so you know
give yourself a little bit feel pat on the back
feel pretty good about yourself there
absolutely absolutely all right
Very cool. Well, you know what else we can feel good about?
What's that?
We now have post-quantum cryptography in Python.
So Python cryptography in version 48, which actually was back in May, but I don't believe
we ever reported on this.
But it is shipping two variants of some post-quantam standard enablement.
So we've got MLKEM, which is key encapsulation.
So basically the way we do it now with Diffie Hellman, it's a key exchange.
We share bits and some pieces in part.
key encapsulation actually shares the whole key at once.
So it's a different form of doing this.
And then MLDSA, which is the signatures.
These are all again part of the NIST post-quantum standards.
Why is this a big deal? Why do we care?
This all tracks back to an executive order from our White House.
The June 22nd executive order setting the federal deadlines for post-quant
key establishment by the end of 2030 and post-quantum signatures by the end of 2031.
Trail of Bits here did a great write-up on what it's all about, what you're getting for it.
There's actually an interesting article if you go read here from 2024 about quantum
resistance isn't the main benefit of post-quantum code.
There's actually some benefit to the new algorithms that were developed as part of this.
It doesn't come without some difficulties or drop-in.
It's not a drop-in swap.
Like if you're using the standard ED-D-25-519 or the standard Diffy-Helman key exchange pieces,
some of them work alike.
Some of them don't.
For example, the key signatures or the encapsulate versus decapsulate piece rather than the key exchange isn't the same,
but they're going to be putting in the SLH-D-S-A, all these acronyms that your mind can kind of like explode on.
But the wire sizes on the wire size of the signatures and key
Encapsulations are much, much bigger.
So for example, if you're using the ED-25-519, that's 64 bytes on the wire for the key exchange versus 3,309 for the MLDSA signatures.
So there's a, it's probably negligible, negligible even today on our current hardware.
Hardware from a few years back would have been having noticeable time.
processing these signatures new hardware should see even less of this being an impact on performance so
there's a more of a processing performance impact to swapping over to these new post quantum signatures and
and the key exchanges but it's also a big deal because we go over here into showing you the pi pi down
our pii downloads cryptography is number 10 in the past day number 10 in the past week number 10
in the past month so if since this is downloaded very very often we're on a
version 50 now, people have the capability to upgrade their use of this encryption to that post-quantum
capable world. Why do you care? Basically, there are malicious actors out there that are hoarding
currently encrypted data waiting for a time when these quantum computers become a reality.
It's still an if. We don't know that's to be for certain that they'll ever reach a capability
to be able to decrypt these things, but quantum would unlock the ability to decrypt.
all the traffic that has been basically passed across the wire.
Most traffic has been passed across the wires since the internet and networks were a thing
anytime it was encrypted.
I can tell you a lot of places are already using the post-quantum encryption internally.
For example, I know Amazon has been a big backer of some of the post-quantum enhancements
to requests in the HTTP libraries so that all their internal operations behind-the-scenes
in AWS Cloud are using post-quantum encryption.
This means that if someone does board or stockpile your data that has been used with these post-quantum tools, that they shouldn't or they'll have a much greater difficulty actually decrypting that data.
So it's important here to know that you should be on board with, maybe not this week, but maybe in the future very soon, using these new versions of these key exchanges and signatures so that you'll be ready for the post-quantum world.
I guess the protocols haven't caught up yet, but you're not going to be running a post-quantum cert bot this week, but it'll be coming.
very, very soon and everyone basically has it in their hands.
That's pretty wild.
Yeah.
It feels like the future, but I know.
If you look at, I mean, the Pi Pi Pi, boy, people are going to get on me about saying
Pi Pi Pi.
It's Pi Pi and they downloads for-
You know what, Calvin, I think it's worth a sidebar here.
Is it?
When I first started doing podcasts, Talk Python and Python bytes, yeah, especially Talk Python,
people would come on and they would say Pi Pi Pi frequently.
And obviously, there's a podcast.
There's the, and that's a fader pronunciation of it, but there's also PYPY, which is the runtime, which is the Jit version.
And it's kind of, and there's all this is, it was pretty evenly split.
And I'm like, you know, this is, I need to know, you know, inquiring minds, as they say, from the checkout line.
Investigators, I guess.
New scan.
Yeah, right.
Yeah, exactly.
So I asked a lot of the folks that work at PiPI, I said, how do you,
pronounce this like you guys made it you can kind of pick the name like what would you say right
and um donald stuffed and some of the other folks are like pie pi i and i asked guido and he said
pi pi i'm like all right it is they have it in their FAQ it's been pointed to me by some of our
listeners uh that is the official um designation the i i maybe it's just generational i mean when
when you and i are growing up it was called the cheese shop at the time so sorry for the pie
I'm working hard to break some pronunciation habits, and that's one of them.
No, it's amazing.
Keep going.
I thought a little bit of history might be fun for people.
It is a little fun.
It is fun, but it is pi pi pi.
But cryptography you can see here.
I mean, this is incredible.
The fact that this work got sponsored, got implemented, and now is immediately in the hands
of everyone needed to be able to do the right thing.
This sets us up in a really, really good spot.
Yeah, again, this was funded by the sovereign tech agency, and I had to go look up who that was.
So if you check that out, basically it's a German industry or agency that put forth the money to make sure this all happens.
And as they say here, the engine room for digital sovereignty.
So I thought it was cool to give them a shout out for sponsoring it.
And then for Trail of Bits doing the work, putting in place the rust bindings, the cross-backin APIs, like all the tests, everything is in there.
So I think it's a huge win for the Python community that we are ready to go.
for this post-quantum world.
I do too.
I think it's totally neat.
Also, I think it's neat that it was put into cryptography.
As you pointed out, the 10th most popular downloaded IPI thing, rather than here's a
Python dash quantum, dash crypto, whatever, right?
And nobody uses.
Because I don't, I think a lot of people don't realize how significant the default
transitive dependency thing is, right?
We would all like to switch from this, but seven of the 10 dependencies I just have all depend on that.
And I've just got to take that because that's what they use, not what, you know what I mean?
And so I think this will just like come along to a lot of projects.
Yeah, this is a real good model.
I also love the fact that it shows that community bridging with the Rust community on it as well.
And so Python has really great support for bringing in.
It used to be we were using C extensions for things that required performance like this.
And now we've really got a native way to.
use Rust. It's been in a while. This is a great example of that. Yeah, definitely is. That's super cool.
All right. Michael, let's move on. We got a sponsor segment. We do have a sponsor segment.
So let me quickly tell everyone about X weather from Vasila. And so they're supporting the show
last week and this week. And they've got a really cool project. So if you're using agents
that can write code, summarize documents, automate workflows, but they don't know about the weather,
Awareness of the world around them.
Well, you should check out X weather, all one word.
This is where today's sponsored X weather comes in.
It combines enterprise-grade weather intelligence with agent-ready APIs, natural language
capabilities, and an MCP server built for tools like Claudex, Copilot, and modern IDs.
So your agents can adopt workflows, automate responses, and make better decisions based on
real-world conditions.
Backed by Vaisala, whose instruments fly on NASA missions to Mars.
Super cool.
You know, talk about the weather there.
Like, yeah, our weather API works on multiple planets.
That's pretty awesome.
So they deliver trusted data and unique insights that go beyond conditions to actual impact,
like real-time lightning strikes, road service forecasts, and so on, right?
So start with 15,000 free API calls a month and pay only for what you use as you grow.
Xweather is a full weather stack for developers by developers.
So start building for free today at Pythonbytes.fm slash X weather.
The link is your podcast,
split our show notes,
and on the episode page,
thank you so much to X weather
for supporting Python bytes.
We really appreciate it.
Yeah, it's amazing how much,
how weather can impact all of our lives.
So having a tool like this
to be able to check in
and get high-quality weather results,
I love it.
Super awesome.
Yeah, yeah, very cool, very cool.
Well, thanks to them for sponsoring.
And up next, we got some MCP news.
So the Model Context Protocol
has gone stateless.
The folks over here at Real Python,
Thanks to Philip for giving a good roundup on the news around this.
But not only has the MCP spec gone stateless,
so if you check out the 2026-07-28 spec,
it landed last month.
And the Python SDK also shipped a V2.
That is the biggest rewrite since MCP launched.
And there's a big breaking, or not a breaking change,
but a forward-moving change here, which is that going stateless.
Prior to this new version of the MCP spec, you would establish a session with your MCP servers from your clients and hold that session open, kind of like web sockets.
But that can be, it has obviously troubles with scaling.
If you are trying to hold a big session open and have many, many clients, you're going to need a lot of resources to be able to handle a ton of clients against your MCP server.
The stateless version of this is we now can basically send over enough context information in the headers.
there's a new initialized and initialized handshake and the MCP session ID headers.
Those those the MCP session ID header has been retired.
And now you basically make those requests and you can optionally do what's called the
what's that the round trip, multi round trip request to the MCP server if you need to
pass in more context or additional information.
So this was big deal for the MCP world.
Luckily, the MCP servers are backward compatible to the 1.0 version of this.
So for us, as Python users, this is actually more important because we get the Python SDK 2.0.
Biggest change here, some folks may recognize it as fast MCP.
It is now just called MCP server.
There's no deprecation or backward compatibility piece of that.
So if you are writing an MCP server based on fast MCP, you're going to need to go basically fix that code before you release your new versions.
if you want to use the Python SDK version 2.0, lots of cool changes or fixes in there.
The kind of another big piece of like the new spec, if you haven't used it, which is there's tasks that
were experimental and apps that were experimental.
And if you've not used apps, it's kind of neat because it allows apps to send back an HTML
interactive sandboxed mini application as part of the MCP specification.
Again, it was experimental.
We didn't know where that would land.
That has been picked up and officially put into the space.
the SDK2O doesn't have that included just yet, but it's coming.
So if you want to be able to use those sandbox interactive HTML pieces, that is going to be
really nice because you basically, if you ever had an MCP server for the weather, for example,
that it could actually return UI to the end user of that MCP service.
If you were using it in cowork or clawed through the web API or web version of this,
you can now get rich interactives as part of the new spec.
Pretty cool because basically, yeah, we're good.
good to go. If you're only calling MCP servers, this really doesn't matter mostly to you.
You get the benefits for free. If you're shipping MCP servers, you know what your week's going to
look like. You're going to be doing some subtle code changes and upgrades to get the latest
versions of the SDK in place for you. I don't know. Have you written, you've actually,
Michael, you've written quite a few MCP servers. I have. I assume this is going to affect you.
Yeah, you're rocking my world here, Calvin. So it sounds to me, let me let me lay this back
and you tell me if this is correct,
and I'll do this on behalf of listeners as well.
So for those who don't know,
MCP is not just a library or something like that.
It's just a standard or a protocol come up with by Anthropic
and adopted by, as you've heard from our sponsor,
and you're going to hear again in just a minute.
Pretty much everybody.
Pretty much everybody who cares about being friendly with having agents,
like Century, for example.
So they've changed the specification,
and then Fast MCP has said, we're on it.
And they adapted that to,
Actually adopt.
Yes.
Okay.
Yep.
Yep.
So if you go over here to the latest release, you will see that two weeks
ago we had the version two release to get you off of fast MCP into just MCP and MCP server.
There's more types.
The one client, the one client object replaces the old transport plus client session
plus initialized stack.
They also upgraded from HTTPX to HTTPX2.
So you get a lot of benefits there in performance.
I mean, this is all about performance and scaling.
If we want to be able to scale the usage of these kinds of services, that's why HTTP has scaled so well for all of us because it's been stateless.
It didn't require a lot of server resources.
This gets us back into that scaling world for MCP style calls.
Yeah, it opens up possible deployment models that are really tough.
Can you do web sockets to Lambda?
It's not so easy, maybe, with a proxy or something.
Yeah, actually, there's a little dead diagram in here.
It kind of shows you the before and after.
Before you would connect into your MCP service, it would lock.
lock in on one of the backends as the session was established.
Here, now they can just go to any number of sessions or any number of handlers that would be on the back end.
So now you can set up a nice cluster with a much dumber load balancer, a less smart load balancer in front that can just route traffic.
And then again, those session pieces all stack on each other from a performance standpoint.
So freeing up to be stateless is a huge impact on performance.
performance. Yeah, very neat, very neat. I'm excited for it. Yeah, yeah. I'm looking forward to
leveraging this and writing some more clients that go stateless. If we're using this in your
production agenetic workflows, this actually keeps MCP very viable. Yeah, very cool. It definitely
does make it easier to work with. Yeah. You can, even with the 1-0, you can disable streaming,
but it's not quite as good. So this kind of formalizes that. Yeah. Yeah. So that's the exciting news in
the MCP world. And I want to thank again the real Python
for giving us that bit of news.
Actually, let's head on to yours, Michael.
You've got some more developer tool here.
It looks like.
I don't know.
I feel like somehow I got a hold of this,
and this should be all.
It should be all you.
Alman.
So again, a little history.
A lot of people call what happens
when you type something and then you hit dot
and like a list of options come up.
Call that autocomplete.
In Microsoft Developer Land,
this is called Intellisense,
as an intelligence sensing.
I don't know. It's been around forever.
I was never a visual studio user, so I never used Intellisense proper.
Yes, and if you lived in the Visual Studio world, we're not talking Visual Studio code.
We're talking Visual Studio.
So this comes, I believe, first time I ever experienced when I was using Visual C++ in the late 90s.
And that was called Intellisense then.
And obviously around 2000, early just before then, when Visual Studio for dot net and all that came out,
obviously Intelisance. So the Microsoft story of autocomplete is Intelisance. Okay. That's all you got to know.
So I introduced to you a new project from Microsoft, which I can get behind. It is open source. It is
MIT. It is called in shellicense. Okay. You've got you've got me. I like the pun.
Yeah. And see, like this is why you got to have the history. So in shell ascents lets you come
along and turn 600 plus command line tools to have autocomplete or Intellicense here.
I like the little ASCII demo there going on.
Yeah, if I can as you can identify.
So you can come along here and just type.
Come on, let's reset here.
Let's go.
And then as you type, it gives you a drop-down widget sort of experience that is quite
good.
So what they are demonstrating on the GitHub repo, it has to do with Git.
and it's not just auto-completing G-I-T because, I mean, that is handy.
Like, that's a lot of typing.
But it's the sub-command.
So get status and then, like, get branch.
And then it'll drop down, like, specifically your branches or your files that are being applied to.
And I think it's pretty cool.
I like the tool tip it gives you, too.
So it's not only does it, like, auto-give you a drop-down of the possible completions,
but, like, what each completion might do in a couple words.
Sometimes you may, like, I think it's this one or that one.
I'm not sure which sub-command I actually want to run that little,
tooltip can help folks navigate the command line a lot faster, I think.
Yeah.
So for people listening, you get a kind of a drop-down, like a web drop-down, but in the
terminal, and you navigate it with your arrow keys.
And as you navigate it, there's an additional section that describes what each one
in those does.
Yeah.
I love all the advancements in the terminal UI, the towey, that have come along because
of the agentic tools we're getting like Claudeco and Codex, et cetera, because I'm obviously
a terminal junkie, and I love hanging out there.
I'm there all the time.
So this is a great way for folks who are less comfortable,
even folks who are comfortable,
could use this to auto-complete.
Because no one knows all the commands
and all the sub-options and all the things.
And everyone forgets to get all the autocompleader things hooked into your shell.
I mean, it can be tricky to get your power user set up rocking and rolling right away.
So this is a great bridge into it, it seems like.
Yeah, I agree.
And it's also not just the commands you know,
but like auto-completing your branches,
you know,
Maybe there's a branch there that you didn't even
completely, you didn't even write, yeah?
So this is written in TypeScript, just not that it really matters.
Also, interesting sidebar.
Andrews-Houserberg and crew over there,
rewrote TypeScript, the Piler bit, I believe.
The thing that takes TypeScript to JavaScript in Go
and got it like 10 times faster just recently.
So that's interesting.
But the way you get it is you can either NPM install it globally
or you can brew install it.
I haven't decided which way I will be installing it.
But yeah, it's super easy.
You just do IS for in shell essence is the command.
So IS init bash.
IS init Zshell, et cetera, et cetera.
And, yeah, it supports a whole bunch.
Even, um, conch or sonch, help me out.
I've never used that one.
I know, but this is the Python-based one, right?
Yeah.
And no, I've been a lifelong ZSH Z-Shell user.
And I've had no reason to switch.
Hashtag Z-Shel for life.
Let's go.
And it was kind of convenient when that became the default on macOS.
It's like vindication, baby.
A little bit.
But I mean, I've been using it since college, like Z-shell.
And I say using it, I never really dove into the power features of it until probably like 15 years ago.
Yeah.
And then I was really hooked.
Let me round this out with a bit of nerdiness.
Okay.
So if you use nerd fonts and excuse me, if you're not using nerd fonts.
You should be using nerd fonts.
Thank you.
Not the terminal font shame you, but you should use.
nerd fonts. You really should because it really just, it gives your shelf so much more expressiveness.
And if you want to impress and horrify your co-contributors or fellow employees, you can turn on
font ligatures in your editors and then get things like mathematical looking not equal signs and
stuff. 100% behind that. I love, I love full ligatures because I just feel like there's a beauty to the
fonts. I came from a desktop publishing background before I got into all this programming stuff. And so the beauty,
the beauty in typography.
And I think that those two have always kind of gone side by side in this kind of education,
publishing and computer science world.
LaTech is probably a prime example of that, people who love beautiful typography.
100%.
Yeah.
Yeah, I'm all behind it as well.
And so the reason it's being talked about here is you can, in Shell of Sense,
supports extra stuff if you have nerd fonts, but you have to turn it on in your
Hummel config file.
I don't know what that is called, but it has its steps on the home page.
Like, go to this file and put this line.
So you get your peak nerd font work in your shell there.
It'd be nice if I just pick that up, the fact that it could detect if you had that available
instead of having to configure it.
You know, I do believe that you could probably just go, what font is it?
Oh, the font has nerd font.
In the name of it.
In the name.
Let's just take a wild flying guess here.
Yeah, yeah, definitely.
All right.
That's cool.
We've got a couple extras for.
this go around. One of them is that Django 6-1 released.
Release sensor up, some minor things in here, but just wanted folks to be aware.
So if you were a Django developer, go upgrade all of your dependencies and make sure you're
on the latest Jango 6-1 release. And related to the Django 6-1 release is DjangoCon.
So later this month and just under about two weeks, come join us all in Chicago for JangoCon.
I know there are still tickets available. I believe the hotel room block may still also be available
for the next few days.
So if you want to get on board
with the Django community
and come hang out with us,
I will be there.
So you want to come meet
and talk with me at DjangoCon.
I'll be presenting with Frank Wiles,
actually on Tuesday.
He and I are doing a batteries
included versus speed talk
about Fast API versus Jango with Ninja,
which should be fun.
Oh, Ninja.
Yeah.
Yeah, Jango Ninja looks pretty cool.
Yeah, I feel like Jango Ninja,
for this you don't know.
it's like fast API-ish.
It is.
It is.
There'll be a slide that uncovers that truth.
Yeah, cool.
That's cool you do with a Frank Wilde.
Yeah.
Yeah.
Yeah.
I want to be there.
I would love to be there, but I'm already long ago booked a trip to be somewhere else.
And I cannot yet be in two places at once.
It's impossible yet.
Once we get quantum computers, we'll start working on more of the quantum entanglement.
My superposition will be attending that talk.
Excellent. So yeah, please come join us. I love to see everyone there.
Yeah, that's super cool. All right, I have some extras as well.
I have homework apparently. Thanks, Calvin. So homework, but I think this is super cool. I'm so excited
about it. And I just put this up over the last two weeks, but since our last episode. So here you go.
Did you run across this on the website? I used it today.
You did? How did it? It was actually quite nice. I wanted to make sure we had not talked about that
quantum, post-quantum release of cryptography in a prior episode. So I actually use the MCP via
the cloud web to double check my notes. How cool. Yeah. All right. So here's the announcement,
folks. Python bytes has several AI integrations. Most notably, it has a MCP server. I don't remember
how many tools we have. Quite a few. You also had stuff in there for courses as well.
Yeah, I've proxied over the Talk Python courses that people ask about courses. But it's got all the
documentation, I think it's got something like 12, 12 or 13 commands, but it's got a lot. So it's
more than just the search. You can ask it all kinds of questions. And what's really nice about
this, instead of your AI scanning a megabyte worth of RSS feed, it just calls APIs that
are database backed and indexed and sub millisecond response time and completely up to date. So
if you have any questions about it, check it out. So the marquee here is MCP server, now available
on Python bytes. But there's also some other cool things, Calvin, that I feel like I've sort of gotten
this vibe from great docs, and I've gotten it from other things. So, for example, if I was on a URL
for one of our episodes, like 488, and I wanted something more friendly than all of this
HTML junk, I could just put MD on the end, and now I got a marked-up version. I like that.
And that's the kind of thing that something like Cloud would really like to know. Or you want
Just the description.
You can just put, oops, is you description?
No.
Oh, I like that because I've been using the Elastic Service, Virginia.
Virginia, I ever say that.
Dot AI for making markdown out of these pages.
Now I can just change my skill to just put it at MD.
Yeah, yeah.
And if you go to the MCP server, actually it talks about those things like,
oh, you can do the MCP server, but you can also just put the extensions.
and it also has an LLMs.TXT.
And in the LLM's TXT,
it tells you you can put dotMD, dot summary, dot title,
and so on, on to any of the episode girls.
Yeah, and then they basically upgrade to those.
That's funny.
This really reminds me the old days,
when I first started in web development,
I was on Zope.
I loved Zope as an application server,
and Zop allowed you to do things like this
where it could be like slash title,
slash description slash published date.
And so it was a, it was,
There's an RPC web RPC call that was just almost like a self-documenting URLs, which is like what I feel like the web should be.
And that really demonstrates the power of the web and be able to basically call into the objects that are your publishing.
The Z object publisher lives again.
It lives again.
It definitely does.
But now I have homework.
So that's cool.
But also I'll see what I can do about.
But also should mean less load on your servers.
That's true.
Because it's absolutely getting hammered.
Hammered.
So popular.
No, it is cool, though.
Like, if you just register now.
Yeah, I know, it will be now.
Like, if you register this with your cloud or whatever other things support MCP servers, it'll often, like, if you just say, what did Python bytes say about this?
Or tell me like, yeah, it'll just, that's all you got to say.
And it'll go, oh, yeah, we got that MCP.
We're on top of it.
Yep.
I've been a longtime user of the Talk Python MCP server as well.
Awesome.
Yeah.
Yeah.
So whatever homework I have for this one I have also for that one.
That sounds awesome.
Hey, Michael.
I have one quick more.
For one quick more announcement, I promised you all a Rust course.
Very relevant, very relevant.
Yes, you already gave it a bit of a shout out in terms of a concept.
So Christopher Trudeau and I teamed up to do an up and running with Rust course.
So Christopher wrote this and it is super good.
It's how long is it?
It is three hours long.
It's up and running with Rust.
It's available right now over at Talk Python.
And if you want to just start from the ground up and get a good foundation for Rust,
It goes through sort of pure rust angles.
And then it says, last thing, I know the dog is super excited about this.
Last thing.
You got very excited about this.
I know how he feels.
I totally understand how he feels.
So if you want to then maybe integrate that with Maturian or Pio3 and that kind of stuff,
it goes through building out a Python library that is mixed Python and Rust as well.
So encourage you to come over and check out the Up and Running with Rust course.
It's really good.
Chris has a ton of humor mixed in there, so you'll really enjoy that as well.
He's a great presenter.
I love that.
I forgot the dog was even in the room.
He's so quiet sometimes.
I love that the dog is being part of the show.
Yeah, yeah.
Mushu approves of the up and running with Rust course.
He fully endorses this course.
He's all about performance.
It's all about performance.
Check it out.
My dog barked as well, but she's outside and a little farther way.
I don't think it came through.
All right.
All right, let's have to joke, Michael.
You got one to get a joke for me for this week?
They already know.
They already know.
And I feel this is more just a commentary on life on the internet.
So here's the joke.
It has to do with Google.
So it's like there's this cartoon cartoon.
It says Google harvests all my data.
And they embrace it, right?
They're like Google knows where I live, my browser history because I'm signed in,
my face, my Gmail, my docs, all the things.
And yet.
It's still on all these web pages, asks if I'm a robot.
Sometimes it's so smart yet so stupid.
Please identify all the bicycles.
No, those weren't the bicycles.
Please identify all bio-hydrants.
What are you doing?
You know about me more than I know about me.
I've forgotten half of what you know about me.
So true.
So the joke is entitled, but they already know.
They do already.
But yet they'll ask again.
Yes, they will.
So not a full-on joke, more of just,
social commentary, internet commentary.
Kind of like the going into the doctor
and having to fill out those things.
20 more times. I'm sure they already know.
They already had this data. Why are we doing this?
Are you allergic to any medications?
Nothing's changed the last 20 times, I told you?
No, still not.
They already know. They already know.
All right. Well, Michael, thank you again
for being with us this week for Python Bites.
We'll see you next time.
Yeah. Thank you, Calvin. Thank you, everyone.
Bye.
We'll see you all later.
