tech, developers, and the code underneath

issue 014· news·

Claude 3.7 Sonnet ships, and so does a terminal

A hybrid reasoning model plus a command-line coding agent in research preview. The CLI is the more interesting release.

Anthropic released Claude 3.7 Sonnet today alongside Claude Code, a coding agent that runs in your terminal, as a research preview.

the model#

3.7 Sonnet is a hybrid reasoning model: one model that can answer immediately or think first, with the thinking budget controllable via the API. That is a different product shape from having a separate reasoning model, and it is the right one — the routing decision belongs to the caller, who knows whether this particular request is worth the latency.

The API exposes a token budget for extended thinking. You set it per request:

python
message = client.messages.create(
    model="claude-3-7-sonnet-20250219",
    max_tokens=8000,
    thinking={"type": "enabled", "budget_tokens": 4000},
    messages=[{"role": "user", "content": "..."}],
)

The coding numbers are strong, particularly on agentic software engineering benchmarks where a model has to navigate a real repository rather than complete a function in isolation. That distinction is the one that matters for actual work and it is the one most benchmark discourse ignores.

the terminal thing#

Claude Code is more interesting than the model, because it is a bet on a particular shape of tool that runs against the industry's current instinct.

Everyone else is putting the agent in the IDE. Anthropic put it in the terminal, with direct filesystem access, the ability to run commands, and git integration. No editor plugin, no separate UI, no sidebar.

The argument for the terminal is that it is the lowest common denominator that already has everything: your shell history, your credentials, your build tools, your test runner, your deployment scripts. An agent in the terminal inherits your entire working environment for free. An agent in an IDE inherits the IDE's model of your project, which is always partial.

The argument against is that terminals are a bad UI for reviewing a multi-file diff, and a bad UI for anything requiring a mental model of parallel state.

Both are correct. My guess is the terminal wins for the "do this task" workflow and the IDE wins for the "help me while I work" workflow, and in two years both exist and nobody thinks this was ever a debate.

the part to be careful about#

An agent with shell access on your development machine is a genuinely different security posture than an autocomplete. It can rm. It can curl | sh. It can commit and push.

The mitigations that matter, in order:

  1. Run it in a container or VM for anything you did not write.
  2. Do not give it credentials it does not need. Especially not production ones.
  3. Read the diff before you commit. Every time. The moment you stop reading diffs is the moment the tool becomes a liability.

That third one is the hard one, because the whole value proposition is not having to. The discipline that keeps this useful is treating agent output exactly like a pull request from a fast, capable, slightly overconfident junior engineer: worth reviewing, usually right, occasionally catastrophically wrong in a way that looks fine.

Dom, February 24, 2025

get README in your inbox

One dispatch, no noise. Tech and developer news, plus the occasional long piece on the craft.

subscribe →