chr15m/runprompt

Run LLM prompts from your shell

해결하는 문제

runprompt를 사용하면 사용자가 셸에서 직접 LLM 프롬프트를 실행할 수 있으며, 프롬프트를 임시적인 챗봇 요청이 아닌 일급의 버전 관리 가능한 아티팩트로 취급할 수 있습니다. .prompt 파일(프롬프트 텍스트와 모델 및 스키마와 같은 메타데이터를 번들링함)을 명령줄을 통해 실행하는 방법을 제공함으로써 프롬프트와 데이터를 웹 인터페이스에 수동으로 복사하여 붙여넣을 필요를 없애줍니다.

작동 방식

이 도구는 구성(모델, 출력 형식, 도구)을 위한 YAML 프론트매터 섹션과 템플릿 본문을 포함하는 .prompt 파일을 사용합니다. 다음을 지원합니다:

  • 입력 처리: STDIN, 명령줄 인자 또는 JSON 문자열을 통해 데이터를 수락하며, 이는 Handlebars/Mustache 구문을 사용하여 프롬프트에 보간됩니다.
  • 동적 컨텍스트: 프론트매터의 before: 키를 사용하면 프롬프트를 LLM에 보내기 전에 실시간 데이터(예: git log)를 수집하기 위해 셸 명령어를 실행할 수 있습니다.
  • 구조화된 출력: Picoschema를 사용하여 출력 형식을 정의하여 LLM이 파싱 가능한 JSON을 반환할 수 있도록 합니다.
  • 확장성: 실행 중에 LLM이 시스템과 상호 작용하기 위해 호출할 수 있는 Python 함수 또는 인라인 셸 스크립트로 정의된 "도구"를 지원합니다.
  • 실행: 독립형 스크립트로 실행하거나 pip/uv를 통해 설치하거나 shebang(#!/usr/bin/env runprompt)을 통해 실행 파일로 사용할 수 있습니다.

대상 사용자

AI 워크플로우를 자동화하거나, LLM을 위한 맞춤형 CLI 하네스를 구축하거나, AI 프롬프트를 셸 스크립트 및 CI/CD 파이프라인에 통합하려는 개발자 및 파워 유저.

주요 특징

  • 프롬프트 아티팩트: 모델 구성, 스키마 및 프롬프트 텍스트를 단일 .prompt 파일에 번들링합니다.
  • 셸 통합: 프롬프트 간의 데이터 파이프링 및 프롬프트 전 셸 명령어 실행에 대한 네이티브 지원.
  • 도구 사용: LLM이 호출할 수 있는 사용자 정의 Python 도구 또는 간단한 셸 도구를 정의할 수 있는 기능.
  • 대화형 모드: 파일을 읽거나 LLM에 특정 파일에 대한 쓰기 권한을 부여하는 명령어가 포함된 내장 채팅 모드.
  • 멀티 프로바이더 지원: Anthropic, OpenAI, Google AI, OpenRouter 및 모든 OpenAI 호환 엔드포인트(예: Ollama)와 함께 작동합니다.

관련

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