Rubric Labs
Simon Willison이 llm-anthropic 0.25에 추가한 thinking_effort·thinking_display 옵션으로, pip 한 줄과 플래그 하나만 붙이면 Claude Opus 4.7의 extended thinking 결과를 JSON 로그로 뽑아볼 수 있어요. 핵심 동작: -o thinking_effort xhigh 플래그.
← Tips
설정/세팅· easy···

llm CLI로 Claude Opus 4.7 thinking 모드 켜기

Simon Willison이 llm-anthropic 0.25에 추가한 thinking_effort·thinking_display 옵션으로, pip 한 줄과 플래그 하나만 붙이면 Claude Opus 4.7의 extended thinking 결과를 JSON 로그로 뽑아볼 수 있어요.

Simon Willison이 llm-anthropic 플러그인 0.25를 릴리스하면서 claude-opus-4.7 모델 지원과 함께 thinking_effort, thinking_display 옵션을 추가했어요. 터미널에서 llm CLI를 쓰고 있다면, 플러그인 버전만 올리면 바로 extended thinking을 써볼 수 있어요.

thinking_display 옵션의 요약 출력은 현재 JSON 출력이나 JSON 로그 모드에서만 보여요. 일반 텍스트 출력에선 안 나와서, 처음엔 왜 아무것도 안 나오나 싶을 수 있어요.

준비물

  • Python 3.10+ (llm-anthropic 0.21부터 3.10 이상 요구)
  • llm CLI 설치 (pip install llm)
  • Anthropic API 키

스텝

1. 플러그인 업그레이드

기존에 llm-anthropic이 설치돼 있어도 버전을 올려야 새 옵션이 생겨요.

pip install -U llm-anthropic

설치 후 버전 확인.

llm plugins | grep anthropic

0.25 이상이면 돼요.

2. API 키 등록

처음 설정하는 경우라면 키를 등록해요. 이미 돼 있으면 건너뛰어도 돼요.

llm keys set anthropic
# 프롬프트가 뜨면 API 키 입력

3. thinking 모드로 쿼리 날리기

thinking_effort: xhigh가 핵심이에요. Anthropic API 레벨에서는 Opus 4.7, Opus 4.6, Sonnet 4.6 등에서 지원되고, llm-anthropic 플러그인은 0.25 릴리스 기준으로 claude-opus-4.7에서 해당 옵션이 동작하는 게 확인됐어요.

llm -m claude-opus-4.7 \
  -o thinking_effort xhigh \
  -o thinking_display true \
  "피보나치 수열의 100번째 항을 구하는 가장 효율적인 방법을 설명해줘"

앞서 말했듯 thinking_display 결과는 일반 출력엔 안 보여요. JSON 로그로 봐야 해요.

4. JSON 로그에서 thinking 블록 확인

llm의 prompt 명령에는 --json 플래그가 없어요. 대신 llm은 모든 호출을 자동으로 로그 DB에 저장하니까, 방금 실행한 쿼리의 JSON 로그를 llm logs --json으로 꺼내면 돼요.

llm logs --json -n 1 | head -c 5000

-n 1은 가장 최근 1건만 꺼내는 옵션이에요. 필요하면 인라인으로 JSON 출력까지 원스텝으로 받고 싶을 때 커뮤니티 플러그인 llm-prompt-json을 따로 설치하는 방법도 있어요 (llm install llm-prompt-json).

확인 방법

JSON 출력 안에 thinking 키가 있고, 내용이 비어 있지 않으면 정상이에요. 대략 이런 구조로 나와요.

{
  "model": "claude-opus-4-7",
  "content": "...",
  "thinking": "먼저 행렬 거듭제곱 방식을 고려해보면..."
}

thinking 필드가 아예 없거나 null이면 플러그인 버전을 다시 확인해요.

응용

thinking_adaptive 옵션도 새로 생겼어요. true로 켜면 모델이 질문 복잡도에 따라 thinking 깊이를 알아서 조절해요. 단순한 질문엔 짧게, 복잡한 추론엔 길게 쓰는 식이에요.

llm -m claude-opus-4.7 \
  -o thinking_adaptive true \
  "이 코드의 시간복잡도를 분석해줘"

# thinking 블록 확인
llm logs --json -n 1

트러블슈팅

thinking_display 결과가 안 보인다면 llm logs --json으로 로그 DB를 들여다봐야 해요. llm의 prompt 명령은 기본적으로 텍스트 응답만 stdout에 보여주고 thinking 블록은 별도로 쏘지 않아요.

thinking_effort: xhigh 옵션이 unknown option 에러를 낸다면 플러그인이 0.25 미만이에요. pip install -U llm-anthropic으로 다시 올려요.

모델 이름을 claude-opus-4 또는 다른 버전으로 쓰면 thinking_effort: xhigh가 지원 안 될 수 있어요. 이 옵션은 claude-opus-4.7에서 확인된 값이에요.

이 설정으로 터미널에서 바로 Claude의 추론 과정을 들여다볼 수 있게 돼요. 디버깅이나 프롬프트 튜닝할 때 모델이 어떻게 생각하는지 보고 싶을 때 꽤 유용하더라고요.

참고 출처