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.9+
llmCLI 설치 (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가 핵심이에요. 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 블록 확인
--json 플래그를 붙이면 응답 전체가 JSON으로 나와요. thinking 블록도 여기 담겨요.
llm -m claude-opus-4-7 \
-o thinking_effort xhigh \
-o thinking_display true \
--json \
"피보나치 수열의 100번째 항을 구하는 가장 효율적인 방법을 설명해줘"
저장된 로그에서 꺼내보고 싶다면 llm logs 명령을 써요.
llm logs --json | head -c 5000
확인 방법
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 \
--json \
"이 코드의 시간복잡도를 분석해줘"
트러블슈팅
thinking_display 결과가 안 보인다면 --json 플래그를 빠뜨린 경우가 대부분이에요. 일반 텍스트 모드에선 thinking 블록이 출력에 포함되지 않아요.
thinking_effort: xhigh 옵션이 unknown option 에러를 낸다면 플러그인이 0.25 미만이에요. pip install -U llm-anthropic으로 다시 올려요.
모델 이름을 claude-opus-4 또는 다른 버전으로 쓰면 thinking_effort: xhigh가 지원 안 될 수 있어요. 이 옵션은 claude-opus-4-7에서 확인된 값이에요.
이 설정으로 터미널에서 바로 Claude의 추론 과정을 들여다볼 수 있게 돼요. 디버깅이나 프롬프트 튜닝할 때 모델이 어떻게 생각하는지 보고 싶을 때 꽤 유용하더라고요.