CATCH #834
DETECTED AUG 19, 2026 17:13 UTC
THE CATCHscore 10/10
EXHIBIT 834 · FLASH
Aug 19, 2026 17:13 UTC
pypi
anthropic
Anthropic's latest Python package hints at new models like "claude-opus-4-8" and "claude-haiku-4-5", along with new API endpoints for `files` and `skills`, and a beta stream for messages.
READY TO POST:
anthropic's new python sdk just dropped with references to "claude-opus-4-8" and "claude-haiku-4-5" models. might be new claude versions on the horizon!
looks like anthropic is adding new `/v1/files` and `/v1/skills` endpoints, plus a beta stream for messages. curious to see what 'skills' means!
EVIDENCE — the receipts
anthropic 0.123.0 -> 0.124.0: +327 strings, -417 strings, 61 interesting
[model_id] (2)
+ py
client = Anthropic(middleware=[BetaRefusalFallbackMiddleware([{"model": "claude-opus-4-8"}])])
state = BetaFallbackState()
with state:
message = client.beta.messages.create(**params)
+ python
with client.messages.stream(
model="claude-haiku-4-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello!"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
[feature_flag] (2)
+ py
client = Anthropic(middleware=[BetaRefusalFallbackMiddleware([{"model": "claude-opus-4-8"}])])
state = BetaFallbackState()
with state:
message = client.beta.messages.create(**params)
+ py
with client.beta.messages.stream(...) as stream:
for chunk in stream:
...
[endpoint] (7)
+ /v1/files
+ /v1/files/{file_id}
+ /v1/files/{file_id}/content
+ /v1/skills
+ /v1/skills/{skill_id}
+ /v1/skills/{skill_id}/versions
+ /v1/skills/{skill_id}/versions/{version}
[sentence] (54)
+ py
client = Anthropic(middleware=[BetaRefusalFallbackMiddleware([{"model": "claude-opus-4-8"}])])
state = BetaFallbackState()
with state:
message = client.beta.messages.create(**params)
+ python
with client.messages.stream(
model="claude-haiku-4-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello!"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
+ py
with client.beta.messages.stream(...) as stream:
for chunk in stream:
...
+ .get_final_text() can only be called when the API returns a `text` content block.
The API returned {','.join([b.type for b in message.content])} content block type(s) that you can access by calling get_final_message().content
+ : a field set to a value
overrides it, a field explicitly
+ : a key set to a value overrides
it, a key explicitl
caught by the 20-minute sweep ·
the live wire · all receipts