kardolus/chatgpt-cli

ChatGPT CLI is a powerful, multi-provider command-line interface for working with modern LLMs. It supports OpenAI, Azure, Perplexity, LLaMA, and more, with features like streaming, interactive chat, prompt files, image/audio I/O, MCP tool calls, and an experimental agent mode for safe, multi-step automation.

ChatGPT CLI – 최신 LLM을 위한 터미널 프론트엔드

소개 – 셸에서 직접 다양한 대형 언어 모델 제공자 (OpenAI, Azure, Perplexity, LLaMA 등)와 대화할 수 있게 해주는 단일 바이너리 명령줄 도구입니다. 일반 쿼리, 스트리밍 응답, 대화형 REPL 세션, 그리고 모델이 도구 (셸, 파일 시스템, 웹 검색, MCP 서비스)를 호출하여 다단계 작업을 해결할 수 있게 해주는 일련의 "에이전트" 기능을 지원합니다.

주요 기능

  • 스트리밍 및 쿼리 모드 – 실시간 토큰별 출력 또는 원샷 질문과 응답.
  • 스레드 기반 컨텍스트 – 각 논리적 대화 (스레드)는 슬라이딩 윈도우 토큰 제한을 가진 자체 기록을 유지합니다. 기록은 ~/.chatgpt-cli 아래에 저장됩니다.
  • 프롬프트 파일 – --prompt <file>은 쿼리 전에 재사용 가능한 지시 파일을 주입합니다.
  • 에이전트 모드 – 실험적 ReAct 또는 Plan/Execute 루프를 통해 모델이 내장 도구 (셸 명령, 파일 작업, 웹 검색)를 사용하여 생각하고, 행동하고, 관찰하게 합니다. 예산 (단계, 토큰, 시간) 및 정책 규칙 (허용된 도구, 작업 디렉토리 샌드박스)이 실행의 안전을 보장합니다.
  • MCP (Model Context Protocol) 통합 – 외부 HTTP 또는 stdio 도구를 호출하고, 해당 JSON-RPC 결과를 [MCP: <tool>] 컨텍스트로 대화에 삽입합니다.
  • 멀티미디어 I/O – 이미지 업로드 (--image), 이미지 생성 또는 편집 (--draw), 오디오 업로드 (--audio), 전사 (--transcribe), 음성 합성 (--speak).
  • 모델 탐색 – -l/--list-models은 현재 제공자가 제공하는 모델을 보여줍니다.
  • 계층적 구성 – 플래그 > 환경 변수 > config.yaml > 기본값; 제공자별 섹션을 통해 OpenAI, Azure, Perplexity, 302 AI, Atlas Cloud 등의 키를 저장할 수 있습니다.

설치

  • Homebrew (macOS): brew tap kardolus/chatgpt-cli && brew trust kardolus/chatgpt-cli && brew install chatgpt-cli
  • 사전 빌드된 바이너리 – 최신 GitHub 릴리스에서 적절한 chatgpt-<os>-<arch>를 curl로 다운로드하고, 실행 권한을 부여한 뒤 $PATH에 배치합니다 (Apple Silicon, Intel macOS, Linux amd64/arm64/386, FreeBSD, Windows용 예제는 README에 있습니다).

시작하기

  1. OpenAI 키 내보내기: export OPENAI_API_KEY=sk-…
  2. 기록 폴더 생성: mkdir -p ~/.chatgpt-cli
  3. 간단한 쿼리 시도: chatgpt "What is the capital of the Netherlands?"
  4. 대화형 REPL 실행: chatgpt --interactive
  5. 프롬프트 파일 사용: git diff | chatgpt --prompt ./prompts/write_pull-request.md
  6. 에이전트 실행: chatgpt "Why is my test failing?" --agent

구성 하이라이트

  • config.yaml은 ~/.chatgpt-cli에 있습니다 (또는 --config-dir을 통해 사용자 지정 디렉토리 설정).
  • 제공자별 섹션에서 API 키, 기본 URL 및 모델 기본값을 설정할 수 있습니다.
  • 에이전트별 설정 (budget, policy, work-dir)은 동일한 파일이나 --set-… 플래그를 통해 구성할 수 있습니다.
  • --completion 도우미를 사용하여 Bash/Zsh/Fish에 대한 자동 완성을 활성화할 수 있습니다.

왜 관심을 가져야 할까요

  • 터미널에 머물게 하여 웹 UI로의 컨텍스트 전환을 피합니다.
  • 에이전트 모드는 안전 제한을 준수하면서 스크립트를 실행하고, 파일을 편집하거나 실시간 웹 데이터를 가져올 수 있는 가벼운 "auto-GPT"를 제공합니다.
  • MCP 지원은 코드를 작성하지 않고도 Model Context Protocol을 따르는 모든 사용자 정의 도구를 연결할 수 있음을 의미합니다.

링크 및 리소스

  • 전체 문서: 위의 README 섹션.
  • 프롬프트 라이브러리: https://github.com/kardolus/prompts
  • 이슈 트래커 및 기여 가이드는 repo에 링크되어 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트
  • 프로젝트