제 친구가 GoblinMD를 만들었습니다: LLM 프롬프트용 코드 및 PDF 패키징 오프라인 데스크톱 앱 (오픈 소스, Python & PyQt5 기반)
my friend built GoblinMD : an offline desktop app to pack code & PDFs into prompts for LLMs (open source, built in Python & PyQt5)
핵심 요약
코드와 문서를 LLM용 마크다운으로 변환해주는 오프라인 데스크톱 도구 'GoblinMD' 소개.
- 오프라인 패키징 — 코드와 PDF를 로컬에서 안전하게 마크다운으로 변환함
- 고급 기능 — 코드 미니파이, 토큰 계산, Git Diff 필터링 지원
- 시각적 처리 — PDF 내 도표를 추출하여 LLM에 이미지 토큰으로 전달함
- 사용자 편의성 — 실시간 비용 추정 및 드래그 앤 드롭 카드 뷰 제공
안녕 형들,
내 친구가 프로젝트 하나 만들었는데 레딧 카르마가 없어서 여기 올리질 못하더라고. 코딩이나 문서 작업하면서 LLM 쓰는 사람들한테 진짜 유용할 것 같아서 내가 대신 올려줌.
친구 놈이 LLM에 코드 전체를 복사해서 넣거나 파일 수십 개씩 업로드하는 거에 질려버렸거든. 토큰도 엄청 잡아먹고 컨텍스트 윈도우만 지저분해지니까 말이야. 그래서 GoblinMD(PyQt5로 짠 순수 파이썬 앱)를 만들었어. 프로젝트 폴더나 문서를 깔끔한 마크다운 파일 하나로 싹 합쳐주는 툴임.
이 프로젝트가 하는 일
GoblinMD는 프로젝트 폴더, 파일, PDF를 LLM에 바로 집어넣기 좋게 하나의 마크다운 파일로 만들어줌. 주요 기능은 이래:
- 심층 PDF 파싱: 페이지별로 텍스트를 읽어줌. 다이어그램이나 차트 같은 시각 자료는 자동으로 추출해서 로컬 폴더에 저장하고, 마크다운 안에 <code>[IMAGE: path]</code> 토큰을 박아줌. 그래서 텍스트랑 같이 시각 자료를 채팅창에 바로 드래그 앤 드롭하면 됨.
- 코드 최소화(Minification): 파이썬, js, ts, html, css 등에서 주석, 독스트링, 빈 줄 싹 다 날려버림.
- 스켈레톤 모드: 함수나 클래스 내부를 접어서 LLM이 구현 세부 사항에 토큰 낭비 안 하고 코드 구조만 파악하게 해줌.
- 오프라인 토큰 카운트: tiktoken 써서 오프라인에서 정확한 토큰 수 계산 가능.
- 비용 추정: 인기 모델들 프롬프트 비용을 실시간으로 계산해줌.
- Git Diff 필터: Git에서 변경된 파일(staged/unstaged/untracked)만 골라서 패키징 가능.
- 블록 재정렬: 카드 뷰로 바꿔서 파일 카드들을 드래그 앤 드롭으로 프롬프트 순서 바꿀 수 있음.
- 실시간 파일 감시: VS Code나 다른 에디터에서 수정하면 마크다운 프롬프트가 자동으로 업데이트됨.
- 트러블슈팅: 간단한 듀얼 출력 로컬 로깅 지원.
타겟 유저
이건 그냥 장난감 수준이 아니라 개발자, 소프트웨어 엔지니어, 연구원들이 코드베이스나 기술 문서로 LLM 돌릴 때 매일 쓸 수 있게 만든 실전용 데스크톱 툴임.
비교
- 웹 기반 툴이랑 비교: GoblinMD는 100% 로컬 오프라인임. API 키, 코드, 개인 문서가 외부 서버로 절대 안 나감.
- 기존 CLI 패키저랑 비교: 예쁜 PyQt5 GUI에 실시간 토큰 바, 비용 추정, 커스텀 프롬프트 템플릿, 드래그 앤 드롭 카드 뷰까지 지원함.
- 멀티모달 PDF 처리: 다른 파서들은 그냥 텍스트만 긁어오는데, 이건 시각적 레이아웃까지 살려서 차트나 다이어그램을 따로 빼고 마크다운에 토큰을 박아주니까 LLM한테 텍스트랑 이미지를 같이 먹일 수 있음.
⚙️ 기술 스택
- 언어: 100% Python 3.10+
- GUI: PyQt5 (slate 스타일 Fusion 테마)
- 라이브러리: PDF 다이어그램 추출용 PyMuPDF (fitz), 오프라인 토큰 계산용 tiktoken.
로컬에서 돌아가고 개인정보 보호 확실하고 무료임. 비영리 라이선스라 수정이나 포크는 마음대로 해도 되는데, 이걸로 돈 벌거나 팔아먹는 건 안 됨.


