본문으로 건너뛰기

AI 개발 방식 › 개발 도구

오프라인 로컬 LLM CLI

모델 추론을 로컬에서 하는 Gemma CLI — Claude Code 핵심 기능 15/20 이식(v1.6), 이후 보안 모드 토글·MLX 백엔드로 확장

구현 완료
기간
2026.04 ~ 2026.07 (작업 기록 기준)
상태
v1.6 범위 구현(2026-04) · v1.7 확장(보안 모드 토글·다중 백엔드·범용 어시스턴트, 2026-05) · 테스트 약 1,150개(2026-07 기준) · 이후 갱신 없음
맥락
개인 프로젝트 · 인터넷 없이 문서를 다루기 위한 개인 맥의 로컬 도구
역할
v1.6 범위에서 요청 기능 20개 중 정책 충돌 5개 제외 결정, 자동 진행 지시, 프로필별 모델 기본값·백엔드 라우팅 설계, 벤치마크 판정 기준(-15%) 설정
구현
구현 AI 에이전트(spec → test → impl → refactor → review 5단계 파이프라인, 그룹별 5개 병렬) · 사용 도구 이름은 기록 없음
기술
Python, Gemma 4 26B-A4B(QAT), Ollama, mlx_lm, SQLite, pypdf·Office 파서, pytest·ruff·mypy·bandit, AST 외부 호출 정적 검사

핵심 수치.

집계

15/20

요청 기능 20개 중 이식 15(정책 충돌 5개 제외), 회귀 0, v1.6 2026-04

실측

+16~22%

256토큰 생성 기준 디코드 처리량 mlx_lm 대 Ollama — Ollama 0.31.1·mlx-lm 0.31.3, Ollama 쪽은 thinking 토큰 포함, Gemma 4 26B-A4B(MoE), M5 Pro 48GB, 프롬프트 3종 × 5회 median, 2026-07

집계

약 1,150개

테스트 수(70파일), 2026-07 기준

개요

인터넷이 막힌 환경에서도 문서를 다루도록, 모델 추론을 로컬(Ollama·MLX)에서 하는 CLI 다. Claude Code 의 핵심 워크플로우(Skills·MCP·Sub-agents·Plan·Memory·Hooks 등)를 로컬 Gemma 4 위에 재현했다(v1.6). sandbox 작업 폴더·감사 로그·문서 파서(텍스트 32종·PDF·Office, 매크로 거부)를 갖췄다. v1.7 에서는 보안 모드(첨부 자료 밖 인용 거부, 모델 호출을 loopback 으로 한정)를 켜고 끄는 토글을 두고 기본값을 일반 모드로 바꿨으며, 이후 이미지 검색·URL 다운로드처럼 외부 통신을 쓰는 명령도 더했다.

본인 역할

v1.6 범위를 정하면서 요청 기능 20개 가운데 보안·리소스 정책과 충돌하는 5개(Web fetch/search·Cron·Notebook·Worktree·STT)를 빼기로 결정했고, 「실행계획 작성 후 바로 진행」으로 자동 진행을 지시했다. 프로필별 모델 기본값과 백엔드 라우팅을 설계하고, 벤치마크 판정 기준(-15% 이하면 현행 유지)을 측정 전에 정했다. 구현은 5단계 파이프라인(spec → test → impl → refactor → review)으로 돌린 AI 에이전트가 했다.

핵심 판단

  • 벤더 발표 대신 내 모델로 쟀다. Ollama 의 MLX 가속 발표를 보고 전환을 검토했지만, 프롬프트 3종 × 5회 median·A-B-A 재확인으로 재 보니 MLX 가속은 MoE 태그(26B-A4B)에 적용되지 않았고, 256토큰 생성 기준 디코드 처리량은 mlx_lm 이 16~22% 높아 현행을 유지했다.
  • 같은 가중치라도 패키징을 확인했다. Ollama 패키징은 thinking 모드가 켜져 있어 생성 토큰이 본문이 아닌 thinking 채널로 나갔다 — 처리량 비교에는 영향이 없지만 실사용 동작이 다르다는 점을 결과서에 남겼다.
  • 끌 수는 있되 껐다는 사실은 남긴다. 감사 로그는 끌 수 있지만 끈 사실을 기록한다. v1.6 범위에서는 정책과 충돌하는 5개 기능을 제외했고(Web fetch 는 MCP 서버 경유만 허용), 이후 v1.7 후속판에서 이미지 검색·URL 다운로드를 추가했다.

결과

  • Claude Code 핵심 기능 15/20 이식, 회귀 0(v1.6, 2026-04 — 테스트 1,029 통과·6 건너뜀).
  • 테스트 약 1,150개/70파일(2026-07), ruff·mypy strict·bandit 통과(v1 종료 시점).
  • 디코드 실측(256토큰 생성, 5회 median): mlx_lm 78.25 / 79.39 / 73.88 tok/s 대 Ollama 67.30 / 65.08 / 63.66 tok/s — M5 Pro 48GB, Ollama 0.31.1·mlx-lm 0.31.3, 2026-07.

한계와 다음 단계

  • README 가 코드보다 늦어 프로젝트 지침 문서가 정정 역할을 한다. MLX 백엔드에 프리픽스 캐시가 없어 반복 호출이 3배 느리다.
  • 2026-07 이후 갱신이 없고 git 저장소가 아니며, 사용자 효과 기록은 없다.

기술

Python · Gemma 4 26B-A4B(QAT, MoE) · Ollama / mlx_lm 백엔드 라우터 · SQLite 세션 · pypdf·Office 파서 · 보안 모드 토글(v1.7) · pytest·ruff·mypy strict·bandit · AST 외부 호출 정적 검사

관련 사례.

폐쇄망 GPU 서버 로컬 LLM 구축·운영 구성도

인프라

운영 중

폐쇄망 GPU 서버 로컬 LLM 구축·운영

인터넷이 없는 GPU 서버에 드라이버부터 추론 서버까지 반입 파일로 세우고, 사용률 관리와 런타임 패치까지 운영했다

85.9 tok/s · Gemma 4 26B q4_0, V100 32GB 2장 layer split(llama.cpp CUDA), 2026.08 설치 검증

2026.08 ~ 2026.10상세 사례

킷의 HTML 슬라이드 양식 — 「이 문서 보는 법」 장에 조작 키 표와 표기·묶음 색 안내, 아래 진행 막대

방법론·에이전트

운영 중

2-AI 개발 방법론과 에이전트 운영

만드는 AI와 검사하는 AI를 나누고, 검증이 끝나지 않을 때 멈추는 규칙과 「통과」를 부풀리지 않는 기록 규칙을 킷으로 만들어 운영했다

1.5.0 → 1.12.0 · 방법론 킷 판 이력 2026-09 ~ 10, 배포 16파일 — 킷 회귀 878 PASS·0 FAIL은 Codex 응답 대역을 쓴 회귀 시험

2026.04 ~ 2026.10상세 사례

LLM-wiki v2.0 홈 위쪽. 반투명 상단 메뉴(앱·플랫폼, 자동화·도구, 문서, 연구·실험, YouTube, 사용방법), 큰 제목과 로컬 프로젝트·파일·요약 수, 파란 검색하기 단추, 카테고리 라인업 아이콘 6개가 보인다.

개발 도구

운영 중

LLM-wiki — 제자리 색인 개인 위키

개인 작업 폴더 전체를 복사하지 않고 색인해 사람은 웹, AI 에이전트는 CLI 로 찾는 위키 — v2.0 운영 중, 이 사이트 디자인의 출처

1.21~1.59초 · v2.0 전환 리허설 — 실패 주입 3종의 자동 롤백, M5 Pro 48GB, 2026-10-29

2026.07 ~ 진행 중요약 사례