---
title: "Moving to Claude Sonnet 5.5, in three coding situations · How-to · Consonance"
description: "Claude Sonnet 5.5 is 30% faster than Sonnet 5, at the same price per token; to migrate, change the model name and fix three things that break: reading the first block, thinking turned off and the forced tool."
canonical: "https://consonance.fyi/en/mode-d-emploi/building-with-claude-sonnet-5-5"
lang: "en"
published: "2026-10-03"
---

# Moving to Claude Sonnet 5.5, in three coding situations

_Claude series · sheet no. 4_

## In one sentence

Claude Sonnet 5.5 is 30% faster than Sonnet 5, at the same price per token; to migrate, change the model name and fix three things that break: reading the first block, thinking turned off and the forced tool.

## The situation: three migration traps

| When you code | What to do |
| --- | --- |
| your code reads `content[0].text` | read each block by its type: the response can begin with a `thinking` block |
| you sent `thinking={"type": "disabled"}` | 400 error: send `thinking={"type": "between_tools"}`, thinking only happens between tool calls |
| you forced a tool with `tool_choice` | 400 error: `tool_choice={"type": "auto"}`, the tool marked `"strict": True`, and the prompt says when to use it |
| you migrate a whole project | `/claude-api migrate this project to claude-sonnet-5-5` |
| a bug to fix, a feature to iterate on, some slides | **Sonnet 5.5** |
| long, complex work that needs judgment | **Opus 5.5** |
| you keep your Sonnet 5 effort setting | the levels are recalibrated: re-run your effort tests |
| you send a large image | a 2000×1500 image costs about 2.5 times as many tokens as on Sonnet 4.6: downscale it if you don't need the detail |

## To try

1. Change the model name.

   ```
   model="claude-sonnet-5-5"
   ```
2. Or let Claude Code migrate the whole project, breaking changes included.

   ```
   /claude-api migrate this project to claude-sonnet-5-5
   ```
3. Read the response block by block, by its type.

   ```
   if block.type == "text":
   ```

> **The trap** Reading `content[0].text`. Sonnet 5.5 thinks by default: the response can begin with a `thinking` block, and that code breaks. Read each block by its type.

## Sources

- [claude.dev · Building with Claude Sonnet 5.5](https://claude.dev/blog/building-with-claude-sonnet-5-5/)

pace: [steady](https://consonance.fyi/media/lessons/building-with-claude-sonnet-5-5/en-pose.mp4?v=13553925)

Independent summary, not affiliated with Anthropic. Claude is a trademark of Anthropic, PBC. The everyday comparisons are images to help understand, not quotes: every command and figure comes from the source.

## Next

- [How-to](https://consonance.fyi/en/mode-d-emploi.md)
- [previous sheet: Evaluating and improving an AI app, explained with an exam](https://consonance.fyi/en/mode-d-emploi/automating-eval-design-and-hillclimbing.md)
- [archives](https://consonance.fyi/en/archives.md)
- [method](https://consonance.fyi/en/methode.md)
- [Consonance](https://consonance.fyi/en/index.md)
- Languages: [Français](https://consonance.fyi/mode-d-emploi/building-with-claude-sonnet-5-5.md) · [Tiếng Việt](https://consonance.fyi/vi/mode-d-emploi/building-with-claude-sonnet-5-5.md)
- For machines: [llms.txt](https://consonance.fyi/llms.txt) · [RSS](https://consonance.fyi/en/rss.xml) · [sitemap.xml](https://consonance.fyi/sitemap.xml)
- HTML version: https://consonance.fyi/en/mode-d-emploi/building-with-claude-sonnet-5-5
