TL;DR
clai는 stdin→LLM→stdout의 단일 실행 모델을 채택해 기존 유닉스 도구들과 파이프라인처럼 결합해 쓸 수 있게 만든 커맨드라인 도구다. 설정은 TOML과 환경변수를 통해 관리되며 OpenAI·Anthropic·Gemini·Bedrock·Ollama 등 여러 제공자를 동일한 인터페이스로 교체할 수 있다. 마크다운 프롬프트·추론 전략·JSON Schema 기반 구조화 출력으로 재현 가능하고 기계 판독 가능한 워크플로우를 구축하도록 설계되어 개발자 도구로서의 통합이 용이하다.
섹션별 상세
이미지 분석

화면은 여러 내장 프롬프트가 stdin으로 전달된 텍스트에 연속으로 적용되어 stdout으로 결과를 내보내는 흐름을 보여준다. 이 데모는 clai가 단일 명령으로 다양한 텍스트 처리 작업을 순차적으로 처리하도록 설계되었음을 시각적으로 확인시킨다. 파이프라인 네이티브 설계의 의도를 즉시 전달하므로 문서 본문과 직접적으로 연관이 있다.
clai의 기본 프롬프트 실행 데모로 tldr·explain·summarize 등의 명령이 파일 및 파이프 입력에서 실행되는 GIF이다.

이 GIF는 사용자가 평문으로 명령 의도를 입력하면 clai가 적절한 쉘 명령으로 변환해 출력하는 과정을 보여 준다. 변환된 명령은 바로 실행 가능한 형태로 제시되어 다른 쉘 명령과 결합할 수 있다는 점을 강조한다. 로컬 쉘 워크플로우에서 명령 생성·검토 과정의 비용을 낮추는 활용 사례를 시사한다.
자연어 요청을 실행 가능한 쉘 명령(find)으로 변환하는 clai shell-cmd 데모 GIF이다.

화면은 모델 출력이 지정된 JSON Schema 형태로 반환되고, 그 결과가 jq로 파이프되어 추가 처리가 이뤄지는 장면을 보여 준다. 이 데모는 스키마 기반 검증과 파이프라인 연계가 자동화 작업에서 실용적이라는 점을 직관적으로 전달한다. 문서에서 강조한 구조화 출력 기능의 작동 방식을 보강하는 시각 자료다.
clai parse 명령으로 스키마에 맞는 JSON을 생성해 jq로 파싱하는 구조화 출력 데모 GIF이다.
용어 해설
- 파이프라인 네이티브(Pipeline-native)
- — clai가 표준 입력(stdin)을 받아 언어 모델로 처리하고 표준 출력(stdout)으로 결과를 내보내는 설계 철학으로, 기존 grep·jq·awk 같은 유닉스 도구와 중간에 삽입해 연속 처리 파이프라인으로 동작하게 만든다. 이 방식은 별도의 REPL이나 세션 상태 없이 단일 명령 실행의 조합으로 워크플로우를 구성하도록 한다.
- 구조화 출력(스키마 검증)(Structured output (JSON Schema))
- — JSON Schema를 사용해 모델 출력이 특정 형식을 따르도록 요청하고, 스키마 검증 실패를 별도 종료 코드로 구분하는 기능이다. clai는 --schema 옵션과 프롬프트 전면의 frontmatter로 스키마를 지정해 파이프라인에서 바로 기계가 읽기 좋은 JSON을 얻을 수 있게 한다.
- 다중 제공자 지원(Multi-provider)
- — OpenAI, Anthropic, Google Gemini/Vertex, AWS Bedrock, Ollama 등 다양한 LLM 제공자를 환경변수와 설정 파일로 지정해 동일한 명령어 인터페이스로 여러 백엔드를 교체할 수 있게 한다. 이를 통해 로컬 모델과 클라우드 모델을 동일한 워크플로에서 번갈아 쓸 수 있다.
- 마크다운 프롬프트 파일(Prompts as markdown files)
- — 사용자 프롬프트를 ~/.config/clai/prompts/ 같은 디렉토리에 마크다운 파일로 저장해 명령어로 즉시 재사용하거나 프로젝트별로 로컬 프롬프트를 우선 적용하도록 한다. 프롬프트 frontmatter에는 모델, 전략, 스키마를 지정할 수 있어 재현 가능한 동작을 만들기 쉽다.
- 추론 전략(Reasoning strategies)
- — Chain-of-Thought, Tree-of-Thought, Chain-of-Draft, Self-Refine 같은 여러 추론 전략을 옵션으로 제공해 모델의 사고 과정을 다르게 유도할 수 있게 한다. clai는 전략을 플래그나 사용자 전략 파일로 지정해 특정 문제 유형에서 더 신뢰할 만한 출력을 얻도록 설계되었다.
코드 예제
git diff --cached | clai commit이 명령은 staged된 git diff를 표준 입력으로 clai에 전달해 commit 메시지를 생성하도록 한다. clai는 지정된 프롬프트(예: commit)와 모델을 사용해 텍스트를 처리한 뒤 표준 출력으로 메시지를 반환한다. 이렇게 생성된 출력은 다른 쉘 도구와 파이프라인으로 이어붙일 수 있다.
clai summarize article.txt파일 article.txt를 모델에 보내 요약을 생성하는 기본 사용 예로, clai는 내장된 summarize 프롬프트를 호출해 응답을 표준 출력으로 출력한다. 사용자는 모델, 온도, 토큰 제한 같은 설정을 환경변수나 config 파일로 조정할 수 있다. 결과는 다른 텍스트 처리 도구와 바로 연결하여 후처리할 수 있다.
clai parse -s '{"name": "str", "amount": "float"}' invoice.txt이 예시는 shorthand 스키마를 주어 invoice.txt에서 구조화된 JSON을 추출하는 흐름을 보여준다. clai는 모델 출력을 스키마와 비교해 유효성을 검사하고, 스키마 불일치 시 별도의 종료 코드를 반환한다. 검증된 JSON은 jq 등으로 추가 가공해 자동화 파이프라인에 투입할 수 있다.
근거 모음
- clai는 stdin → LLM → stdout 흐름으로 작동해 기존 쉘 파이프라인과 자연스럽게 결합된다. — README 첫 문단과 사용 예시(예: git diff | clai commit, cat article.txt | clai summarize)에 동일한 워크플로가 반복됨. 출처
- 여러 제공자와 로컬 모델을 지원하며 설정 파일이나 환경변수로 백엔드를 전환할 수 있다. — Providers 섹션에 OpenAI, Anthropic, Gemini, Vertex, Bedrock, Ollama 및 OpenAI 호환 엔드포인트 예제가 나열되어 있음. 출처
기술
- OpenAI
- Anthropic
- Gemini
- Vertex AI
- AWS Bedrock
- Ollama
- JSON Schema
- Go
활용 사례
- git diff를 입력으로 받아 자동으로 커밋 메시지를 생성하는 워크플로 통합
- 긴 문서나 유튜브 자막을 표준 입력으로 보내 요약·번역·추출을 연속 처리하는 배치 작업
- 코드 리뷰, 취약점 검출 같은 개발용 검사 파이프라인을 LLM으로 자동화
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.