shell_gpt

AI Coding ToolsCLIPython

★ 12,282주당 +8조회 4

무엇인가

ShellGPT는 셸과 LLM 사이에 놓이는 프롬프트 변환기다. 사용자가 자연어로 요구한 작업을 셸 명령, 코드 조각, 문서 텍스트로 바꿔 터미널 세션 안에서 돌려준다. 명령 문법을 외우거나 검색 엔진을 거치지 않고 작업을 끝내는 자리를 대신한다.

어떻게 동작하나

프롬프트는 명령행 인자와 표준입력 어느 쪽으로도 들어간다. 파이프와 리다이렉션으로 로그나 diff를 넘기면 그 내용이 함께 전달된다. 기본 백엔드는 OpenAI API의 GPT-4이고, API 키는 첫 실행에서 입력받아 ~/.config/shell_gpt/.sgptrc에 저장된다. --shell 또는 -s는 현재 OS와 $SHELL 값을 반영해 실행 가능한 명령을 만들고 대화형 모드에서 확인을 거쳐 실행한다. --no-interaction을 주면 명령을 stdout으로만 출력해 다른 프로그램에 파이프로 넘길 수 있다. --code 또는 -c는 설명 없이 코드만 요구한다. --chat으로 시작한 대화는 CHAT_CACHE_PATH에 세션 단위로 저장되고, --repl은 같은 세션 객체를 읽어 REPL 루프로 이어 간다. 함수 호출 기능을 설치하면 LLM이 시스템의 함수 실행을 요청할 수 있다.

무엇과 다른가

대체 대상은 man 페이지, 웹 검색, 셸 자동완성이다. 이들은 명령 이름을 이미 알고 있어야 하거나 사람이 읽고 옮겨 적어야 한다. ShellGPT는 OS와 셸 종류를 컨텍스트로 넣어 같은 요청에 macOS와 Ubuntu가 다른 명령을 내놓게 하고, 결과를 터미널 입력 버퍼에 직접 넣어 실행 전 편집을 가능하게 한다. 대화 상태를 세션 파일로 남겨 이전 요청을 이어서 정제할 수 있는 점도 일회성 자동완성과 다르다.

어떻게 쓰나

설치는 pip install shell-gpt다. 첫 실행에서 OpenAI API 키를 묻고 설정 파일에 기록한다. sgpt "질문" 형태로 단발 질의를 하고, sgpt -s "시스템 업데이트"처럼 -s를 붙여 명령을 생성한다. sgpt --install-integration을 실행하면 .bashrc 또는 .zshrc에 몇 줄이 추가되고, 터미널을 재시작한 뒤 Ctrl+l로 현재 입력 줄을 제안 명령으로 바꿀 수 있다. sgpt --chat 이름, sgpt --repl 이름으로 세션을 열고 --list-chats와 --show-chat으로 세션 목록과 내용을 확인한다.

전제와 한계

기본 경로는 OpenAI API이며 사용량에 따라 과금된다. API 키가 없으면 동작하지 않는다. Ollama 같은 로컬 백엔드로 바꿀 수 있지만 로컬 모델용으로 최적화되어 있지 않다. Linux, macOS, Windows와 PowerShell, CMD, Bash, Zsh에서 쓸 수 있다. 생성된 셸 명령은 실행 전에 사용자가 확인하는 대화형 모드가 기본이고, 함수 호출을 설치하면 LLM 요청이 시스템 함수 실행으로 이어질 수 있다.

유사 도구