CATCH #2085
DETECTED OCT 15, 2026 20:19 UTC
THE CATCHscore 10/10
EXHIBIT 2085 · FLASH
Oct 15, 2026 20:19 UTC
pypi
anthropic
Anthropic's 1.15.0 Python package includes references to new models, "claude-opus-4-8" and "claude-haiku-4-5", and introduces beta features for messages and environments.
READY TO POST:
anthropic's latest python package hints at two new models: 'claude-opus-4-8' and 'claude-haiku-4-5'. could opus 4.8 be a stronger successor, and haiku 4.5 a faster, lighter one?
looks like anthropic is rolling out new beta features in their python sdk, including beta messages streams and environment controls. new model ids 'claude-opus-4-8' and 'claude-haiku-4-5' also surfaced.
EVIDENCE — the receipts
anthropic 1.14.0 -> 1.15.0: +132 strings, -626 strings, 55 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] (3)
+ 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:
...
+ py
client.beta.environments.work.worker(environment_id=..., environment_key=...)
[sentence] (55)
+ 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:
...
+ py
client.beta.environments.work.worker(environment_id=..., environment_key=...)
+ ) whose option is unset has the client's own, so it reads none of them either.
"""
class RequestOptions(TypedDict, total=False):
headers: Headers
max_retries: int
timeout: float | Timeout | None
params: Query
extra_json: AnyMapping
idempotency_key: str
"""Deprecated: th
+ , reads none of them, and what the option leaves out has its default. A copy of a clie
caught by the 20-minute sweep ·
the live wire · all receipts