amrit110/oli
요약
oli는 Claude Code의 오픈 소스 대안으로, 코딩 지원을 위한 강력한 에이전트 능력을 갖춘 도구입니다. Rust 백엔드와 React/Ink 프론트엔드를 결합한 하이브리드 아키텍처를 통해 클라우드 API(Claude 3.7 Sonnet, GPT-4o, Gemini)와 Ollama를 통한 로컬 LLM을 모두 지원합니다.
핵심 포인트
- Claude Code를 대체할 수 있는 오픈 소스 에이전트 도구
- Rust 백엔드와 React/Ink 기반의 인터랙티브한 터미널 UI 제공
- 클라우드 모델 및 Ollama를 통한 로컬 LLM(Qwen, Llama 등) 지원
- 파일 검색, 코드 편집, 쉘 명령 실행 등 강력한 에이전트 기능 수행
- Claude 3.7 Sonnet에 최적화된 시스템 프롬프트 및 JSON 스키마 지원
oli는 코딩 지원을 위한 강력한 에이전트 (Agentic) 능력을 갖춘 Claude Code의 오픈 소스 대안입니다. 주요 기능:
-
현대적인 하이브리드 아키텍처:
-
성능과 핵심 기능을 위한 Rust 백엔드
-
아름답고 인터랙티브한 터미널 UI를 위한 React/Ink 프론트엔드
-
클라우드 API (Anthropic Claude Sonnet 3.7, OpenAI GPT4o 및 Google Gemini)와 로컬 LLM (Ollama를 통해) 모두 지원
-
파일 검색, 편집 및 명령 실행을 포함한 강력한 에이전트 (Agentic) 능력
-
모든 모델 제공업체 (Anthropic, OpenAI, Google 및 Ollama)에 대한 도구 사용 (Tool use) 지원
# 저장소 클론 (Clone)
git clone https://github.com/amrit110/oli
cd oli
...
개발 환경은 uv를 사용하여 설정할 수 있습니다. 따라서 uv가 설치되어 있는지 확인한 후 다음을 실행하십시오:
uv sync --dev
source .venv/bin/activate
pre-commit run --all-files
API 기반 기능을 위해 환경 변수를 설정하십시오:
# 프로젝트 루트에 .env 파일 생성
echo "ANTHROPIC_API_KEY=your_key_here" > .env
# 또는
...
Claude 3.7 Sonnet은 가장 신뢰할 수 있고 고급화된 에이전트 (Agent) 능력을 제공합니다:
- Anthropic에서 API 키를 받으십시오
- ANTHROPIC_API_KEY 환경 변수를 설정하십시오
- UI에서 "Claude 3.7 Sonnet" 모델을 선택하십시오
이 구현에는 다음이 포함됩니다:
- Claude 3.7에 최적화된 시스템 프롬프트 (System prompts)
- 구조화된 응답을 위한 JSON 스키마 (JSON schema) 출력 포맷팅
- 개선된 에러 핸들링 (Error handling) 및 재시도 메커니즘
oli는 Ollama를 통해 로컬 모델을 지원합니다:
-
아직 설치하지 않았다면 Ollama를 설치하십시오
-
Ollama 서버를 시작하십시오:
ollama serve -
사용하려는 모델을 가져오십시오 (도구 사용 (Tool use) 능력이 있는 모델을 권장합니다):
# 호환 가능한 모델 예시 ollama pull qwen2.5-coder:14b ollama pull qwen2.5-coder:3b ollama pull llama3:8b -
oli를 시작하고 모델 선택 메뉴에서 Ollama 모델을 선택하십시오
참고: 도구 사용 (Tool use) 및 에이전트 (Agent) 능력의 최상의 결과를 위해, 함수 호출 (Function calling)을 지원하는 Qwen 2.5 Coder와 같은 모델을 사용하십시오.
- 애플리케이션 시작:
./run.sh
모델 선택:
-
완전한 에이전트 기능 (Agent capabilities)을 위한 클라우드 모델 (Claude 3 Sonnet, GPT-4o, Gemini 2.5)
-
Ollama를 통한 로컬 모델 (Qwen, Llama 등)
채팅 인터페이스에서 코딩 쿼리 (Coding query)를 수행하십시오:
- 파일 검색 요청
- 코드 수정 요청
- 쉘 명령 (Shell commands) 실행
- 코드 설명 요청
애플리케이션은 하이브리드 아키텍처 (Hybrid architecture)를 사용합니다:
┌───────────────┐ ┌───────────────┐
│ React + Ink UI│◄───────┤ Rust Backend │
│ │ JSON │ │
...
Rust Backend: 에이전트 기능, 도구 실행 (Tool execution) 및 API 호출을 처리합니다.
React/Ink Frontend: 부드러운 애니메이션과 함께 현대적이고 대화형인 터미널 인터페이스를 제공합니다.
시도해 볼 수 있는 몇 가지 쿼리 예시입니다:
- "코드베이스를 설명하고 시작하는 방법을 알려줘"
- "프로젝트의 모든 파일 목록을 보여줘"
- "Cargo.toml 파일의 내용을 요약해줘"
- "'anyhow' 크레이트 (Crate)를 임포트하는 모든 파일을 보여줘"
이 프로젝트는 Apache 2.0 라이선스 (Apache 2.0 License) 하에 라이선스가 부여됩니다 - 자세한 내용은 LICENSE 파일을 참조하십시오.
- 이 프로젝트는 Claude Code 및 유사한 AI 어시스턴트 (AI assistants)에서 영감을 받았습니다.
- 최적의 에이전트 기능을 위해 Anthropic의 Claude 3.7 Sonnet 모델을 사용합니다.
- 성능과 신뢰성을 위해 Rust로 구축된 백엔드 (Backend).
- 현대적인 터미널 UI 경험을 위해 React와 Ink로 구축된 프론트엔드 (Frontend).
- 훌륭한 라이브러리와 도구를 제공해 준 Rust 및 React 커뮤니티에 특별한 감사를 전합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기