Ollama 모델 기반
OCode는 심층적인 코드베이스 지능(Codebase Intelligence)과 자율적인 작업 실행을 제공하는 정교한 터미널 네이티브 (Terminal-native) AI 코딩 어시스턴트입니다. 로컬 Ollama 모델과 원활하게 작동하도록 설계된 OCode는 엔터프라이즈급 AI 지원을 개발 워크플로우에 직접 가져옵니다.
터미널 네이티브 (Terminal-native) 워크플로우 – 셸(Shell) 환경에서 직접 실행
심층적인 코드베이스 지능 (Deep codebase intelligence) – 전체 프로젝트를 자동으로 매핑하고 이해
자율적인 작업 실행 (Autonomous task execution) – 다단계 개발 작업을 엔드 투 엔드(End-to-end)로 처리
직접적인 Ollama 통합 – 프록시 없이 로컬/원격 Ollama로부터 완성된 결과물을 스트리밍
확장 가능한 플러그인 레이어 – 모델 컨텍스트 프로토콜 (Model Context Protocol, MCP)을 통한 제3자 통합 지원
| 도메인 | 기능 |
|---|
| 코드 생성 및 수정 (Code Generation & Modification) | 다중 파일 리팩토링 (Refactors), TDD 스캐폴딩 (Scaffolding), 최적화, 문서화 |
| 프로젝트 이해 (Project Understanding) | 아키텍처 분석, 의존성 추적, 파일 간 추론 |
| 개발 자동화 (Development Automation) | Git 워크플로우, 테스트 실행, 빌드 및 CI 통합 |
| 데이터 처리 (Data Processing) | JSON/YAML 파싱 및 쿼리, 데이터 검증, 형식 변환 |
| 시스템 운영 (System Operations) | 프로세스 모니터링, 환경 관리, 네트워크 연결 테스트 |
| 대화형 운영 (Interactive Operations) | 자연어 질의, 문맥적 탐색, 디버깅 지원 |
OCode는 카테고리별로 정리된 19개 이상의 특화된 도구를 포함합니다:
file_edit
file_ops
glob
find
ls
head_tail
wc
grep
- 정규 표현식 (Regex) 지원을 통한 고급 텍스트 검색
text_tools
diff
json_yaml
- JSONPath를 사용한 JSON/YAML 데이터 파싱, 쿼리 및 조작
notebook_tools
ps
-
시스템 프로세스 (system processes) 모니터링 및 쿼리
env
-
환경 변수 (environment variables) 및 .env 파일 관리
ping
-
네트워크 연결 (network connectivity) 테스트
bash
-
셸 명령 (shell commands) 안전하게 실행
which
-
시스템 명령 (system commands) 위치 찾기
git_tools
-
Git 작업 및 리포지토리 (repository) 관리
architect
-
프로젝트 아키텍처 (architecture) 분석 및 문서화
agent
-
전문화된 에이전트 (agents)에게 복잡한 작업 위임
memory_tools
-
컨텍스트 (context) 및 세션 메모리 (session memory) 관리
mcp
# 자동 설치 (권장)
curl -fsSL https://raw.githubusercontent.com/haasonsaas/ocode/main/scripts/install.sh | bash
이 명령은 다음을 수행합니다:
- ✅ Python 3.8+ 및 의존성 (dependencies) 확인
- 🐍 가상 환경 (virtual environment) 설정 (선택 사항)
- 📦 강화된 멀티 액션 탐지 (multi-action detection) 기능이 포함된 OCode 설치
- 🤖 데이터 처리 및 시스템 모니터링을 포함한 19개 이상의 전문화된 도구 (tools) 구성
- 🔧 셸 완성 (shell completion) 설정
- ✨ 강화된 대화 파싱 (conversation parsing) 테스트
수동 설치를 선호하거나 사용자 정의 설정이 필요한 경우:
필수 사항:
Python 3.8+
python --version 또는 python3 --version으로 확인
pip
- Python과 함께 제공되어야 하며,
pip --version으로 확인
전체 기능 사용을 위해:
Ollama
Git
Python 3.8+가 설치되어 있지 않은 경우:
macOS:
Linux (Ubuntu/Debian):
# 패키지 리스트 업데이트
sudo apt update
# Python 3.11 및 pip 설치
...
Linux (CentOS/RHEL/Fedora):
# Fedora
sudo dnf install python311 python311-pip python311-venv
# CentOS/RHEL (EPEL 사용)
...
Windows:
# python.org에서 다운로드하여 설치 프로그램 실행
# https://www.python.org/downloads/windows/
# 설치 중 "Add Python to PATH"를 반드시 체크하세요
...
Python 설치 확인:
# Python 버전 확인
python3 --version
# 또는
...
가상 환경 (virtual environment) 설정 (강력 권장):
# OCode를 위한 전용 디렉토리 생성
mkdir ~/ocode-workspace
cd ~/ocode-workspace
...
pip 권한 문제가 발생하는 경우:
# 옵션 1: --user 플래그 사용 (사용자 디렉토리에 설치)
python3 -m pip install --user --upgrade pip
# 옵션 2: 가상 환경 (virtual environment) 사용 (권장)
...
macOS:
# Homebrew 사용 (권장)
brew install ollama
# 또는 https://ollama.ai 에서 다운로드
Linux:
# 한 줄 설치 프로그램
curl -fsSL https://ollama.ai/install.sh | sh
# 또는 패키지 관리자 (package manager) 사용
...
Windows:
# https://ollama.ai 에서 다운로드
# 또는 위의 Linux 지침에 따라 WSL 사용
Ollama 시작하기:
# Ollama 서비스 시작
ollama serve
# 새 터미널에서 모델 다운로드
...
Ollama 작동 여부 확인:
# 서비스가 실행 중인지 확인
curl http://localhost:11434/api/version
# 다음과 같은 결과가 반환되어야 합니다: {"version":"0.7.1"}
...
방법 1: 강화된 설치 스크립트 (권장)
# 설치 스크립트 클론(clone) 및 실행
git clone https://github.com/haasonsaas/ocode.git
cd ocode
...
방법 2: 개발용 설치 (Development Installation)
# 저장소(repository) 클론
git clone https://github.com/haasonsaas/ocode.git
cd ocode
...
방법 3: 직접 Git 설치
pip install git+https://github.com/haasonsaas/ocode.git
방법 4: pipx 사용 (격리된 설치)
# pipx가 설치되어 있지 않다면 설치
pip install pipx
# ocode 설치
...
# ocode 명령어를 사용할 수 있는지 확인
python -m ocode_python.core.cli --help
# 다음과 같이 표시되어야 합니다:
...
"command not found" 오류가 발생하는 경우: 아래의 문제 해결 (Troubleshooting) 섹션을 참조하세요.
# 프로젝트 디렉토리로 이동
cd /path/to/your/project
# 이 프로젝트를 위한 OCode 초기화
...
# Ollama 호스트 설정 (기본 localhost를 사용하는 경우 이 단계는 필요하지 않음)
export OLLAMA_HOST=http://localhost:11434
# 간단한 프롬프트로 테스트
...
OCode는 다중 동작 감지 (multi-action detection) 기능이 포함된 고급 대화 파싱 (conversation parsing) 기능을 포함합니다:
# 이제 이 쿼리들은 필요한 여러 작업을 정확하게 식별합니다:
python -m ocode_python.core.cli -p "Run tests and commit if they pass" # test_runner + git_commit
python -m ocode_python.core.cli -p "Find all TODO comments and replace them" # grep + file_edit
...
14개 이상의 쿼리 카테고리 (Query Categories): 에이전트 관리 (Agent management), 파일 작업 (file operations), 테스트 (testing), git, 아키텍처 분석 (architecture analysis), 데이터 처리 (data processing)
19개 이상의 특화된 도구 (Specialized Tools): 데이터 처리 및 시스템 모니터링을 포함한 개발 워크플로 (development workflows)에 대한 포괄적인 지원
컨텍스트 최적화 (Context Optimization): 쿼리 유형에 기반한 지능형 파일 분석
에이전트 위임 (Agent Delegation): 복잡한 다단계 워크플로 (multi-step workflows)를 위한 권장 사항
도구 고정 제거 (Tool fixation eliminated): 더 이상 도구 목록을 기본값으로 사용하지 않음
컨텍스트 전략 (Context strategies): 쿼리 복잡도에 따라 none/minimal/targeted/full 적용
정확도 향상 (Enhanced accuracy): 97% 이상의 쿼리 카테고리 분류 정확도
대화형 모드 (Interactive Mode):
# 대화형 세션 시작
python -m ocode_python.core.cli
# 대화형 모드 명령어:
...
단일 프롬프트 모드 (Single Prompt Mode):
# 질문하기
python -m ocode_python.core.cli -p "Explain the authentication system"
# 코드 변경 요청
...
모델 지정 (Specify Model):
# 특정 모델 사용
python -m ocode_python.core.cli -m llama3.2 -p "Review this code for security issues"
# 복잡한 작업을 위해 더 큰 모델 사용
...
다양한 출력 형식 (Different Output Formats):
# JSON 출력
python -m ocode_python.core.cli -p "List all functions in main.py" --out json
# 스트리밍 JSON (실시간 처리를 위함)
...
현재 설정 확인 (View current configuration):
python -m ocode_python.core.cli config --list
특정 설정 가져오기 (Get specific setting):
python -m ocode_python.core.cli config --get model
python -m ocode_python.core.cli config --get permissions.allow_file_write
설정 지정 (Set configuration):
python -m ocode_python.core.cli config --set model=llama3.2:latest
python -m ocode_python.core.cli config --set temperature=0.1
python -m ocode_python.core.cli config --set permissions.allow_shell_exec=true
환경 변수 (Environment Variables):
# 모델 선택 (Model selection)
export OCODE_MODEL="codellama:7b"
# Ollama 서버 위치 (Ollama server location)
...
프로젝트별 설정 (.ocode/settings.json):
{
"model": "llama3.2:latest",
"max_tokens": 4096,
...
# 새로운 기능 생성 (Generate new features)
ocode -p "JWT 토큰을 사용한 사용자 인증 시스템을 생성해줘"
# 기존 코드에 기능 추가 (Add functionality to existing code)
...
# 기존 코드 이해 (Understand existing code)
ocode -p "데이터베이스 커넥션 풀링 (database connection pooling)이 어떻게 작동하는지 설명해줘"
# 보안 검토 (Security review)
...
# 테스트 생성 (Generate tests)
ocode -p "UserRepository 클래스에 대한 포괄적인 단위 테스트 (unit tests)를 작성해줘"
# 실패하는 테스트 수정 (Fix failing tests)
...
# 스마트 커밋 (Smart commits)
ocode -p "이 변경 사항들에 대해 설명적인 메시지를 포함한 git 커밋을 생성해줘"
# 코드 리뷰 (Code review)
...
# JSON/YAML 처리 (JSON/YAML processing)
ocode -p "config.json 파일을 파싱하여 모든 데이터베이스 연결 문자열을 추출해줘"
# 데이터 검증 (Data validation)
...
# 프로세스 모니터링 (Process monitoring)
ocode -p "모든 Python 프로세스와 해당 메모리 사용량을 보여줘"
# 성능 분석 (Performance analysis)
...
# 아키텍처 리뷰 (Architecture review)
ocode -p "현재 프로젝트 아키텍처를 분석하고 개선 사항을 제안해줘"
# 의존성 분석 (Dependency analysis)
...
다양한 작업 유형별 설정:
# 간단한 쿼리를 위한 빠른 응답 (Fast responses for simple queries)
export OCODE_MODEL="llama3.2:3b"
# 일반적인 코딩을 위한 균형 잡힌 성능 (Balanced performance for general coding)
...
대규모 코드베이스 최적화:
{
"max_context_files": 50,
"max_tokens": 8192,
...
네트워크 최적화:
# 원격 Ollama 인스턴스용 (For remote Ollama instances)
export OLLAMA_HOST="http://gpu-server:11434"
export OCODE_TIMEOUT=300 # 대규모 요청을 위한 5분 타임아웃 (5 minute timeout for large requests)
제한적 권한 (Restrictive permissions):
{
"permissions": {
"allow_file_read": true,
...
개발 권한 (Development permissions):
{
"permissions": {
"allow_file_read": true,
...
문제: ocode: 명령어를 찾을 수 없음 (Problem: ocode: command not found)
해결책 1: 전체 모듈 경로 사용 (Solution 1: Use the full module path)
# 전체 Python 모듈 경로 사용 (Use the full Python module path)
python -m ocode_python.core.cli --help
# 또는 가상 환경을 사용하는 경우 (Or if using virtual environment)
...
해결책 2: 스크립트 위치 설치 및 확인 (Solution 2: Install and check script location)
# 개발 모드로 설치
pip install -e .
# 스크립트가 설치된 위치 확인
...
해결책 3: pipx 사용 (Solution 3: Use pipx)
pip install pipx
pipx install git+https://github.com/haasonsaas/ocode.git
문제: 임포트 시 ModuleNotFoundError 발생 (Problem: ModuleNotFoundError when importing)
해결책 (Solution):
# 의존성 재설치
pip install -e .
# 또는 강제 재설치
...
문제: 설치 중 권한 거부 (Problem: Permission denied during installation)
해결책 (Solution):
# --user 플래그를 사용하여 sudo 없이 설치
pip install --user ocode
# 또는 가상 환경 (Virtual Environment) 사용
...
문제: Ollama 연결 실패 (Problem: Failed to connect to Ollama)
진단 (Diagnosis):
# Ollama가 실행 중인지 확인
ps aux | grep ollama
# 포트가 열려 있는지 확인
...
해결책 (Solutions):
# Ollama 서비스 시작
ollama serve
# 다른 포트 확인
...
문제: 모델을 찾을 수 없음 오류 (Problem: Model not found errors)
해결책 (Solution):
# 사용 가능한 모델 목록 확인
ollama list
# 필요한 모델 풀 (Pull)
...
문제: 느린 응답 또는 타임아웃 (Problem: Slow responses or timeouts)
해결책 (Solutions):
# 타임아웃 시간 증가
export OCODE_TIMEOUT=600 # 10분
# 더 작은 모델 사용
...
문제: 설정이 로드되지 않음 (Problem: Configuration not loading)
진단 (Diagnosis):
# 설정 파일 위치 확인
ocode config --list
# 파일이 존재하고 읽기 가능한지 확인
...
해결책 (Solutions):
# 프로젝트 재초기화
rm -rf .ocode/
ocode init
...
문제: 권한 거부 오류 (Problem: Permission denied errors)
해결책 (Solution):
# 현재 권한 확인
ocode config --get permissions
# 필요한 권한 활성화
...
문제: 높은 메모리 사용량 (Problem: High memory usage)
해결책 (Solutions):
# 컨텍스트 크기 축소
ocode config --set max_context_files=10
ocode config --set max_tokens=2048
...
문제: 느린 시작 (Problem: Slow startup)
해결책 (Solutions):
# Ollama에서 모델 프리로드 (Preload)
ollama run llama3.2:latest "hello"
# 프로젝트 스캔 범위 축소
...
문제: 연결 거부 (원격 Ollama) (Problem: Connection refused (remote Ollama))
해결책 (Solutions):
# 네트워크 연결 테스트
ping your-ollama-server
telnet your-ollama-server 11434
...
문제: 모델의 응답 품질 저하 (Problem: Model gives poor responses)
해결책 (Solutions):
다른 모델 시도하기
ocode config --set model=codellama:latest
ocode config --set model=llama3.2:70b
...
문제: 모델 응답이 중간에 끊김 (Problem: Model responses cut off)
해결책 (Solutions):
# 토큰 제한 (token limit) 늘리기
ocode config --set max_tokens=8192
# 더 큰 컨텍스트 윈도우 (context window)를 가진 모델 사용
...
상세 로그 (verbose logging) 활성화:
# 환경 변수 (Environment variable)
export OCODE_VERBOSE=true
# CLI 플래그 (flag)
...
시스템 정보 확인:
# OCode 버전 및 설정 (config)
ocode --help
ocode config --list
...
로그 분석 (Log analysis):
# OCode 로그 확인 (구현된 경우)
tail -f ~/.ocode/logs/ocode.log
# 시스템 로그 확인
...
OCode는 확장 가능한 AI 통합을 위해 완전한 MCP 지원을 포함합니다: