patriceckhart/zot
Yet another coding agent harness, lightweight and written in go.
zot – Go 기반 코딩 어시스턴트 하네스
기능
- 코드 관련 작업을 위해 대규모 언어 모델(LLM)과 대화할 수 있는 단일 정적 바이너리를 제공합니다.
- 즉시 사용 가능한 30개 이상의 LLM 제공업체(Anthropic, OpenAI/Codex, Google Gemini, Ollama 등)를 지원하며 Ollama를 통해 로컬 모델도 호출할 수 있습니다.
- 모델이 호출할 수 있는 내장 '도구'(파일 읽기/쓰기, 편집, bash 명령 실행, glob)를 제공하여 LLM을 자율 코딩 에이전트로 전환합니다.
- 세 가지 모드로 실행됩니다:
- 대화형 TUI – 프롬프트를 입력하고 모델의 행동을 관찰하는 터미널 UI.
- 출력 모드 –
zot "프롬프트"는 최종 생성 텍스트를 출력하고 종료합니다. - JSON 모드 – 프로그램 소비를 위해 줄바꿈으로 구분된 JSON 이벤트를 스트리밍합니다.
- Telegram 봇 브리지, 플러그인 시스템(하위 프로세스 + JSON-RPC), 테마, 사용자 지정 키 바인딩, 마크다운 파일을 통한 영구 '에이전트'/스킬을 포함합니다.
설치 방법
- macOS/Linux 원라이너 설치 프로그램(
curl … | bash) 또는 Windows PowerShell. go install github.com/patriceckhart/zot/cmd/zot@latest.- 사전 빌드된 바이너리는 GitHub 릴리스 페이지에서도 제공됩니다.
주요 개념
| 개념 | 설명 |
|---|---|
| 제공업체 | zot가 통신하는 원격 LLM 서비스(Anthropic, OpenAI, Gemini 등). |
| 도구 | 모델이 요청할 수 있는 내장 동작: 파일 읽기/쓰기, 편집, 셸 명령 실행, glob 패턴. |
| AGENTS.md | 모든 프롬프트에 상시 지침을 추가하는 전역 또는 프로젝트별 마크다운 파일(예: "명시적으로 요청하지 않는 한 파일을 편집하지 마십시오"). |
| SKILL.md | /skill:<이름>으로 호출할 수 있는 재사용 가능한 지침 스니펫. |
| 확장 프로그램 | 모든 언어로 작성된 외부 프로그램; zot는 JSON-RPC로 통신합니다. |
| 지속 모드 | 충돌 후에도 유지되고 여러 클라이언트에 제공될 수 있는 영구 로컬 저장소($ZOT_HOME/sessions/…). |
| 테마 및 키맵 | $ZOT_HOME 아래의 JSON 파일로 TUI의 색상과 키보드 단축키를 사용자 지정할 수 있습니다. |
일반적인 워크플로
- 바이너리를 설치하고
zot를 실행합니다. 첫 실행 시/login명령이 있는 TUI가 열립니다. - API 키 또는 OAuth로 로그인합니다(도구는 Anthropic, OpenAI, Kimi, xAI, GitHub Copilot과 같은 제공업체를 위해 브라우저를 열거나 기기 코드 흐름을 사용할 수 있습니다).
- 예:
fix the failing test와 같은 프롬프트를 입력합니다. Zot는 선택한 모델에 프롬프트를 보내고 응답을 받으며 자동으로 도구를 호출할 수 있습니다(파일 편집, 테스트 스위트 실행 등). - TUI는 모델의 추론, 도구 출력, 최종 답변을 표시합니다. 작업을 승인, 거부 또는 편집할 수 있습니다.
- 선택적으로
AGENTS.md또는SKILL.md를 추가하여 향후 동작을 형성하거나 도메인별 작업을 위한 사용자 지정 확장 프로그램을 작성합니다.
구성 및 상태
- 모든 파일은
$ZOT_HOME(기본값:$XDG_STATE_HOME/zot또는 플랫폼별 해당 경로) 아래에 있습니다. config.json은 마지막으로 사용한 제공업체/모델, UI 기본 설정, HTTP 프록시, 사용자 지정 키 바인딩을 저장합니다.auth.json은 API 키 또는 OAuth 토큰을 보관합니다(모드 0600). 토큰은 자동으로 갱신됩니다.models.json으로 사용자 지정 엔드포인트 또는 자체 호스팅 모델을 정의할 수 있습니다.- 세션 기록은
sessions/아래에 JSONL로 저장되며zot --continue로 재개할 수 있습니다.
중요성
- 단일 바이너리: Python 런타임, Docker 또는 무거운 종속성 없음 – Go 실행 파일 하나면 충분합니다.
- 광범위한 제공업체 지원: 주요 상용 API 및 로컬 Ollama 모델과 작동하여 코드 변경 없이 제공업체를 쉽게 전환할 수 있습니다.
- 도구 사용: 모델이 파일을 읽고 쓰고 셸 명령을 실행할 수 있어 코드 생성, 리팩터링 또는 디버깅을 위한 진정한 '에이전트' 동작이 가능합니다.
- 확장 가능: 플러그인 아키텍처를 통해 재컴파일 없이 도메인별 기능(예: 데이터베이스 쿼리 도구)을 추가할 수 있습니다.
제한 사항 / 주의 사항
- 공식 CLI와 동일한 OAuth 클라이언트 ID를 사용합니다. 제공업체가 이를 취소할 수 있으므로 API 키 흐름이 가장 안전한 폴백입니다.
- 확장 프로그램은 옵트인입니다. 기본적으로 제공되지 않습니다.
- 영구 상태는 로컬 머신에 있습니다. 여러 머신 간에 세션을 공유하려면
zot continuous serve를 실행해야 합니다.
결론
zot는 내장 도구 사용, 멀티 제공업체 지원, 사용자 지정 가능한 터미널 UI를 갖춘 LLM을 대화형 코딩 어시스턴트로 전환하는 가볍고 Go 네이티브 하네스입니다.
관련
- Dispatch
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트