Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Summary

Delegate heavy code generation to a local LLM (Ollama / Ollama Cloud / LM Studio). Search + memory layer + Codex CLI compatibility.

Install to Claude Code

/plugin install tunaLlama@tunallama-local

Run in Claude Code. Add the marketplace first with /plugin marketplace add hang-in/tunaLlama if you haven't already.

README.md

tunaLlama

![CI](https://github.com/hang-in/tunaLlama/actions/workflows/ci.yml) ![License: MIT](LICENSE) ![Python 3.11+](https://www.python.org/downloads/) ![Status: usable beta](#) ![Tests: 507 passing](#) ![Coverage: 90%](#) ![Claude Code / Codex CLI](#)

Claude Code / Codex CLI를 쓰면서 토큰이 빨리 닳는 사용자를 위한 위임(delegation) 도구입니다.

무거운 코드 생성은 로컬 Ollama / LM Studio / Ollama Cloud에 위임하고, 작업 분해와 검증만 Claude(또는 Codex)가 같은 세션 안에서 맡습니다. 레포 하나로 Claude Code와 Codex CLI 둘 다 작동합니다(둘 다 .claude-plugin/marketplace.json을 인식).

---

한 줄 정의

tunaLlama는 프롬프트 시드나 AGENTS.md 템플릿이 아닙니다. MCP 기반 위임 런타임입니다.

상위 모델이 모든 문서와 긴 코드를 직접 떠안는 대신, 긴 코드 생성은 로컬/저비용 LLM에 넘기고 Architect는 작업 분해와 검증에만 집중하게 만드는 것이 핵심입니다.

| 항목 | 내용 | | --- | --- | | 상태 | v0.6.1 usable dogfooding release (2026-07-04) | | 검증됨 | Claude Code + Codex CLI 양쪽에서 MCP tool 호출 (macOS / Linux / Windows) | | 수집 중 | organic dogfooding 측정, 외부 사용자 재현성 | | 라이선스 | MIT | | 영문 문서 | README.en.md |

---

누가 쓰면 도움이 될까

  • Claude Code Pro/Max 정액제 사용자 (한도 관리가 필요한 경우)
  • Codex CLI 사용자 (OpenAI 정액제 / API quota 관리)
  • Ollama 로컬 / Ollama Cloud / LM Studio 환경이 있는 사용자
  • 한국어 작업을 다루는 사용자 (Kiwi 형태소 토크나이저 통합)

절약 효과에 대한 솔직한 안내: 실제 한도 절약 효과는 작업 유형, 모델, provider 지연시간, Architect의 검증 방식에 따라 달라집니다. Anthropic / OpenAI의 정액제 한도 계산식은 공개돼 있지 않습니다. 따라서 tunaLlama는 "정량 절감 보장"이 아니라, 긴 생성 작업을 위임해 상위 모델 사용량을 줄일 수 있는 구조를 제공합니다. 실제 가치는 본인 dogfooding으로 확인하시길 권장합니다.

기술 요구사항

  • Python 3.11+
  • Ollama / LM Studio / Ollama Cloud 중 하나
  • Claude Code (MCP 플러그인 지원 버전) 또는 Codex CLI

---

어떻게 작동하는가

역할은 셋으로 나뉩니다.

| 역할 | 모델 | 책임 | | --- | --- | --- | | Architect | Claude / Codex (정액제) | 분해 / 사양 / 검증 / 통합 | | Developer | 로컬 LLM (Ollama / Cloud / LM Studio) | 코드 생성 / 자체 리뷰 / 자체 수정 | | Reviewer | Architect와 같은 세션 | 최종 판정 |

전형적인 호출 흐름:

1. 사용자가 작업을 요청합니다 (한국어 / 영어). 2. Architect가 작업을 분해합니다. 짧으면 tuna_dev_review, 길면 spec 문서를 쓴 뒤 tuna_dev_review_from_spec. 3. 백엔드가 generate → review → fix 루프를 반복합니다. 이 위임에는 종료 조건이 있습니다(review pass 또는 max iter). 모든 호출은 SQLite에 기록되고 한국어 형태소로 색인됩니다. 4. 검색의 진짜 가치는, mid-size 로컬 LLM의 컨텍스트 한계를 Architect가 보완하는 데 있습니다(Opus + Sonnet subagent 패턴과 동일). Phase 7-2의 합성 시드 기반 측정에서 context boost +0.58 ~ +0.64가 관측됐습니다. 다만 이는 실사용 확정 수치가 아니며, organic dogfooding metric은 별도 수집 중입니다. 5. Architect가 결과를 검증한 뒤 사용자에게 반환합니다.

더 자세히: 워크플로우 · 내부 구조

---

5분 설치

> 에이전트에게 한 줄로 위임하기: Claude Code / Codex CLI 세션에서 > https://github.com/hang-in/tunaLlama 의 INSTALL.md 따라 설치해줘 > 라고 입력하면, 에이전트가 INSTALL.md를 읽고 의존성 / .env / 플러그인 등록 / 검증까지 단계별로 실행합니다. 5분 안에 사용 가능합니다.

수동 설치는 아래 순서입니다.

1. Clone + 의존성 설치

git clone https://github.com/hang-in/tunaLlama
cd tunaLlama

# uv 권장 (mise.toml 에 정의됨)
mise install                   # python 3.11 + uv
mise run install               # editable + dev 의존성

# 또는 pip 직접
pip install -e .

2. 환경변수 (Ollama Cloud를 쓸 경우만)

cp .env.example .env
echo "OLLAMA_CLOUD_API_KEY=발급받은_키" >> .env

3. init / doctor

tunallama init                 # 대화식 - provider/모델 자동 발견
tunallama doctor               # Python / config / provider / DB / Kiwi 검사

doctor를 통과하지 못하면 Troubleshooting을 참조하세요.

4-A. Claude Code 사용자

플러그인으로 설치:

claude plugin marketplace add /path/to/tunaLlama
claude plugin install tunaLlama@tunallama-local

> Windows 사용자 — MCP 전송을 HTTP 로 (필수). > mac/Linux 는 위 플러그인 설치(stdio 자동 spawn)로 끝입니다. 하지만 Windows 에서는 > Python + stdio MCP 가 Claude Code 와의 조합에서 in-session tool 호출이 무한 hang > 합니다(서버는 정상 — 같은 머신서 HTTP/비-Python MCP 는 정상 작동. Claude Code 의 > Windows stdio MCP 클라이언트 이슈). tunaLlama 는 HTTP(streamable-http) 데몬으로 > 우회합니다. 셋업 스크립트 한 번이면 됩니다: > > ``powershell > powershell -ExecutionPolicy Bypass -File plugin\bin\tunallama-win-setup.ps1 > ` > > 이 스크립트가 ① HTTP 데몬을 로그온 자동시작 작업으로 등록·실행, ② Claude Code 에 > tunallama HTTP MCP 등록, ③ 플러그인의 stdio MCP 비활성화(중복/hang 제거)까지 합니다. > 이후 Claude Code 재시작mcp__tunallama__* 툴 정상. 제거는 -Uninstall` 플래그. > (플러그인의 skill/subagent/hook 은 그대로 동작합니다. 자세한 내용: INSTALL.md.)

또는 ~/.claude/settings.jsonmcpServers에 직접 등록:

{
  "mcpServers": {
    "tunallama": {
      "command": "python",
      "args": ["-m", "plugin.mcp_server"],
      "cwd": "/path/to/tunaLlama"
    }
  }
}

4-B. Codex CLI 사용자

Codex CLI는 .claude-plugin/marketplace.json을 직접 읽습니다(4개 인식 위치 중 하나로 명시 지원).

codex plugin marketplace add /path/to/tunaLlama
codex plugin install tunaLlama@tunallama-local

호환 상세: docs/specs/phase8_codex.md

---

첫 호출 해보기

설치 후 Claude Code / Codex 세션에서 실행합니다. Architect가 자동으로 호출할 수도 있지만, 첫 사용과 재현 가능한 워크플로우에서는 명시 호출을 권장합니다.

코드 생성 위임 (권장 흐름)

사용자: "json 파싱하는 함수 작성해줘.
        먼저 tuna_load_memory 로 프로젝트 컨벤션 확인하고
        tuna_dev_review 로 위임해줘."

Architect:
1. tuna_load_memory()                       ← 프로젝트 컨벤션 fetch
2. tuna_recall(query="json parsing")         ← 과거 비슷 작업 surface (옵션)
3. tuna_dev_review(requirements="...", language="python")
   → 로컬 LLM 이 generate → review → fix 루프 수행
4. Architect 가 결과 검증 후 사용자에게 반환

큰 작업 (spec 기반)

docs/specs/foo.md 에 작업 spec 을 먼저 작성한 뒤:

사용자: "tuna_dev_review_from_spec 으로 docs/specs/foo.md 진행해줘"

→ 백엔드가 bounded generate → review → fix 루프 수행
→ 최종 코드 + iteration 로그 반환

메모리 검색

사용자: "tuna_recall 로 이 프로젝트의 임베딩 모델 설정 검색해줘"

→ 과거 5 개 호출 결과 surface

전체 도구 13개 목록: docs/internals.md

---

한계

v0.6.1 usable dogfooding release입니다. Claude Code + Codex CLI 양쪽에서 MCP tool 호출은 검증했지만(macOS / Linux / Windows), organic dogfooding(실제 일상 사용) 측정 자산은 아직 수집 중입니다. 아래는 카테고리별 정리입니다.

1. 사용 한도 / 비용

  • 한도 절약은 아직 체감 데이터 수준입니다. Anthropic / OpenAI 정액제 한도 계산식이 비공개라 정량 측정이 불가능합니다.
  • MCP 도구의 system prompt 비용은 의도된 trade-off입니다. 13개 도구의 description + schema가 매 대화의 system prompt에 prepend되며, 추정치는 약 1.6k tokens입니다. 이는 실수로 생긴 context bloat가 아니라, Architect가 적절한 위임 도구를 고르기 위한 affordance 비용입니다. tunaLlama는 이 비용을 없애기보다 도구 수와 description 품질을 관리해 호출 적중률과 검증 품질을 유지하는 쪽을 택합니다. 측정: phase7-mcp-audit.md

2. 측정

  • 검색 측정값(R@5, P@1 등)은 합성 시드 기반입니다. 실사용자 워크플로우 검증은 별개 과제입니다. 측정: docs/measurements/
  • organic dogfooding metric을 수집 중입니다 (v0.5.7+). 매 위임 후 4종(standalone_toy_rate / convention_adherence_rate / ast_excess_score / syntactically_valid)이 ~/.tunallama/metrics.db에 적재됩니다. tunallama metrics show로 조회하고, TUNA_ORGANIC_METRICS=0으로 비활성화합니다. 누적 baseline과 외부 사용자 재현성은 아직 측정 진행 중입니다.
  • 테스트 커버리지 90%. CI가 통과시키는 unit/plugin 507 tests + integration/search_quality 마커 27 tests = 총 534 collected. 미커버 10%의 대부분은 외부 서비스 의존 경로입니다(llm/ollama.py 62% / llm/lmstudio.py 58%, pytest -m integration 실행 시 추가 커버). token_count.py 34%는 Phase 5-4 보류 모듈로, Anthropic API 미보유라 unit test가 없습니다.

3. MCP / 클라이언트 호환성

  • Architect 호출에 의존합니다. tuna_* 도구는 Architect가 작업 컨텍스트를 보고 호출하는 구조라, 도구 description 품질이 호출 적중률을 결정합니다. 첫 사용과 재현 가능한 워크플로우에서는 명시 호출을 권장합니다.
  • Subagent 자동 인식이 작동하지 않습니다 (Codex 0.128.0 실측). plugin/agents/tuna-developer.toml이 캐시되지만, Codex의 spawn_agent 가능 type에 tuna-developer가 등록되지 않습니다(default / explorer / worker만 지원). Claude Code 측은 미실측입니다. 단, MCP tools 13개는 양쪽 모두 정상 작동하므로 위임 자체는 도구 레벨에서 가능합니다.
  • MCP resource auto-attach + SessionStart hook이 작동하지 않습니다 (Codex). tunallama://memory/state resource는 양 클라이언트 모두 세션 시작 시 attach되지 않습니다. v0.5.2의 SessionStart hook(plugin/hooks/session_start.py)은 Claude Code v0.5.5+에서만 작동하고 Codex는 미인식입니다. 권장 운영: Claude Code는 hook으로 state.md를 auto-prepend, Codex는 사용자가 tuna_load_memory를 명시 호출.

4. 로컬 LLM / provider

  • 로컬 LLM에 의존합니다. Ollama / LM Studio / Ollama Cloud 중 하나가 없으면 작동하지 않습니다.

5. 검색 / 메모리 품질

  • 한국어 형태소 분석은 Kiwi에 의존합니다. Kiwi가 처리하지 못하는 도메인 단어(신조어, 전문용어)는 검색 품질에 영향을 줄 수 있습니다.

6. state.md auto-extract

  • false positive 위험이 있습니다. v0.5.1에서 코드 블록 안 텍스트 skip + meaningful 토큰 검증으로 완화했지만, 100% 제거는 어렵습니다. 의심 entry를 발견하면 tunallama state clean(auto entry 삭제) 또는 직접 편집(tunallama state path로 경로 확인)하세요.

양 환경 동작 매트릭스

v0.5.6 실측 기준 (Claude Code 2.1.138 + Codex CLI 0.128.0):

| 항목 | Claude Code | Codex CLI | | --- | :---: | :---: | | MCP tools 13개 (도구 호출) | ✓ | ✓ | | DB 공유 (~/.tunallama/memory.db) | ✓ | ✓ | | state.md 공유 | ✓ | ✓ | | tuna_load_memory / tuna_recall 명시 호출 | ✓ | ✓ | | Agents auto-discovery (tuna-developer) | | ✗ | | Skills auto-load (delegate-to-ollama) | | ? | | Hooks 등록 (SessionStart / PreToolUse) | | ? | | SessionStart hook 실행 + state.md auto-prepend | | ✗ | | MCP resource auto-attach (tunallama://memory/state) | ✗ | ✗ |

> state.md 경로: ~/.tunallama/projects/<hash>/state.md

권장 운영 모델

Claude Code (v0.5.5+): state.md auto-prepend가 SessionStart hook으로 작동합니다. Architect가 첫 turn부터 conventions / decisions / constraints / anti-patterns를 자동 인지합니다. 별도 명시 호출이 필요 없습니다. 단, state.md를 의도적으로 수정한 뒤 효과를 빨리 보고 싶으면 새 세션을 시작하세요.

Codex CLI (0.128.0): SessionStart hook을 인식하지 못합니다. Architect가 첫 turn에 tuna_load_memory를 명시 호출하거나 docs를 직접 fetch해야 합니다. DB 공유 / state.md 공유 / MCP tools 호출은 모두 작동합니다.

---

왜 프롬프트 시드가 아닌가

tunaLlama는 에이전트에게 더 많은 문서를 읽혀서 컨텍스트 한계를 해결하려 하지 않습니다. 대신 작업 단위를 작게 잘라 MCP 도구로 로컬/저비용 LLM에 넘기고, 상위 Architect 모델은 짧은 spec, review 결과, 최종 diff 판단에만 집중하게 합니다.

문서 기반 운영 규칙은 시간이 지나면 stale state, drift, lost-in-the-middle 문제를 만들 수 있습니다. tunaLlama는 이를 피하기 위해 위임 호출을 SQLite에 기록하고, 필요할 때 검색·리콜하는 실행 계층을 둡니다.

무엇이 아닌가

  • tunaFlow의 멀티 에이전트 라운드테이블이 아닙니다.
  • OllamaClaude 포크가 아닙니다 (패턴만 참고).
  • 단일 모델 데모 / 연구 노트북이 아닙니다.
  • 자동 weakness 감지 / 동적 tool 작성이 아닙니다 (Architect 판단으로 tuna_log_limitation 호출).

---

측정 자료

검색 알고리즘 / context boost / MCP audit 측정 결과입니다.

모두 합성 시드 기반이므로, 실사용 데이터 검증은 별개 과제입니다.

---

Troubleshooting / FAQ

tunallama doctor 실패

Python 버전: 3.11+ 필요. python --version으로 확인.

provider 미감지: Ollama / LM Studio가 실행 중인지 확인.

curl http://localhost:11434/api/tags  # Ollama
curl http://localhost:1234/v1/models  # LM Studio

Ollama Cloud 키 미감지: .env 파일이 cwd에 있는지, OLLAMA_CLOUD_API_KEY=... 행이 첫 줄에 있는지 확인.

Kiwi 형태소 분석기 실패: pip install kiwipiepy로 재설치. macOS는 Xcode CLI tools 필요(xcode-select --install).

MCP 도구가 안 보이거나 새 세션에서 server fail

증상: /plugin 화면에서 tunaLlama MCP Server Status: ✘ failed. 또는 도구 목록에 tuna_*가 안 보임. Windows 는 tool 호출이 무한 hang 으로 나타남.

원인 0 - Windows (Python+stdio hang): Windows 에서는 Python + stdio MCP 가 Claude Code 와의 조합에서 in-session tool 호출이 무한 hang 한다(서버는 정상 — Claude Code 의 Windows stdio MCP 클라이언트 이슈). HTTP 데몬으로 전환한다:

powershell -ExecutionPolicy Bypass -File plugin\bin\tunallama-win-setup.ps1

이후 Claude Code 재시작 → mcp__tunallama__* 정상. 자세히: INSTALL.md Windows 섹션. (아래 원인 1~3 은 macOS / Linux.)

원인 1 - venv 의존성 미해결 (v0.5.8 이하): plugin의 .mcp.jsoncommand: "python"으로 system python을 spawn합니다. mise / pyenv / direnv 같은 shell hook은 Claude Code의 child process에서 활성화되지 않아, venv의 fastmcp / anthropic SDK 등 deps를 못 잡고 ImportError가 납니다. v0.5.9+부터 wrapper script(plugin/bin/tunallama-mcp)가 .venv/bin/python으로 자동 fallback하므로 업데이트를 권장합니다.

원인 2 - .mcp.json cwd가 잘못됨: claude plugin install한 위치를 확인. 직접 등록한 경우 cwd가 tunaLlama 레포 절대경로인지 확인.

원인 3 - Python venv 부재: .venv/bin/python 자체가 없으면 wrapper도 system python으로 fallback해서 deps 부재로 실패합니다. mise run install 또는 uv venv && uv pip install -e .로 .venv를 생성하세요.

tuna_* 도구가 호출되지 않음

Architect가 자동 호출하지 않음: SKILL.md 또는 tunallama://memory/state resource가 attach 안 됐을 수 있습니다. tuna_load_memory 명시 호출을 시도하세요.

도구 description 품질: task가 너무 추상적이면 Architect가 도구를 선택하지 못합니다. "tuna_dev_review 사용해서 작성해줘"처럼 명시적으로 지시하세요.

LLM 호출 timeout

기본 timeout은 600초 (tunallama_core/config/models.py). cloud LLM 응답 지연 시 retry 3회. 그래도 실패하면 logger.warning으로 기록되므로 dev 환경에서 stderr를 확인하세요.

자주 timeout이 발생하면: 로컬 LLM으로 swap하거나 모델 크기를 줄이세요(qwen3-coder-next 등 latency 최적화 모델).

검색 품질이 낮게 느껴짐

현재 측정 (cloud 0 path, 984 record LOPO / 792 query): rerank P@1 0.77 / R@5 0.59 / σR@5 0.31. HyDE+KURE path (24 leader sample, cloud 1): P@1 0.92 / σR@5 0.14. 자세히: phase5e-corpus-scaling.md

R@5 < 0.8의 의미: 자동 prepend(auto_recall=always) 시 noise가 섞일 수 있습니다. 단 Phase 4-4 + 5-3 측정에서 cloud LLM이 무관 prefix를 자동 무시하는 것이 확인됐고, 실제 코드 품질 영향은 작습니다.

기본값 on_request 유지를 권장합니다. auto_recall=always는 위 risk를 인지하고 쓰세요.

state.md에 의도치 않은 entry가 생김

원인: LLM 출력의 코드 블록 / 주석 / 일반 단어가 false positive로 auto-extract됩니다(v0.5.1부터 코드 블록 안 텍스트 + meaningful 토큰 검증 필터 추가, 단 100%는 아님).

CLI 명령 (v0.5.1+):

tunallama state show    # 내용 출력
tunallama state path    # 파일 경로 출력
tunallama state clean   # (auto) 태그 entry 삭제, manual/verified 보존
  • 파일 위치: ~/.tunallama/projects/<hash>/state.md (직접 편집 가능)
  • (manual) / (verified) 태그: 사용자 수정은 다음 update 시 보존됩니다.
  • 자동 추출 비활성화: .env 또는 환경변수에 TUNA_AUTO_EXTRACT_STATE=0.

---

기여자

mise install                    # python 3.11 + uv
mise trust                      # mise.toml 신뢰 (보안)
mise run install                # editable + dev 의존성
mise run test                   # pytest (unit + plugin only)

# 측정 통합 테스트 (Ollama qwen3-embedding:0.6b + cloud LLM 호출):
.venv/bin/pytest -m search_quality -s

자세한 기여 가이드: CONTRIBUTING.md

디렉토리 / 문서

(v0.6.1 · v0.6.0 · v0.5.9 · v0.5.8 · v0.5.7 · v0.5.6 · v0.5.5 · v0.5.4 · v0.5.3 · v0.5.2 · v0.5.1 · v0.5.0 · v0.4.0 · v0.3.0)

라이선스 / 기여

MIT. 이슈/PR 환영합니다. 한국어/영어 모두 가능합니다. 영문 README는 README.en.md와 함께 동기화 유지해 주세요.

Related plugins

Browse all →