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 이상 요구)
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가 핵심이에요. 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의 추론 과정을 들여다볼 수 있게 돼요. 디버깅이나 프롬프트 튜닝할 때 모델이 어떻게 생각하는지 보고 싶을 때 꽤 유용하더라고요.