로컬에서 실행하는 AI 서비스(MCP 서버, 임베딩 서버 등)를 등록·시작·중지·모니터링하는 JavaFX 데스크톱 앱.
- 서비스 관리 — 등록된 서비스를 시작·중지·재시작. 실행 상태를 대시보드 카드와 좌측 목록에 실시간 반영. 우클릭 컨텍스트 메뉴로 제거 가능
- 로그 모니터링 — 프로세스 stdout/stderr를 실시간 스트리밍. 필터·자동 스크롤·5000행 표시 제한
- 설정 편집 — 실행 인수(ArgSpec)·환경변수를 UI에서 직접 편집하고 저장
- 서비스 설치 — git clone + 의존성 설치 자동화. JAR 번들 서비스는 파일 복사로 설치
- 헬스 체크 — HTTP 엔드포인트를 주기적으로 폴링해 상태 갱신 (기본 10초)
- 메모리 모니터링 — OSHI 기반 RSS·가상 메모리 수집. 대시보드 스파크라인으로 시각화
- 기본 제공 서비스 —
service-packs/*.yml에 정의된 서비스를 선택만 하면 바로 추가 (Groovy 스크립트로 OS/환경 자동 커스터마이징) - 내장 REST API — Javalin 기반 API 서버(선택 활성화). Claude Code 등 외부 도구에서 서비스 상태 조회 가능
- LLM 스킬 & 룰 관리 — Claude/Copilot/Cursor/Gemini 스킬 팩 설치, 외부 디렉토리 스캔 후 선택 파일 로드
- 플러그인 시스템 —
plugin.json선언 기반 로컬 플러그인. cursor-agent-runner·LLM Wiki Agent 기본 제공 - LLM Wiki Agent — 문서를 수집해 AI가 상호 연결된 지식 위키를 자동 구축. Cursor Agent 위임 실행
- 위키 HTML 내보내기 — 위키 워크스페이스를 정적 HTML 사이트로 내보내기 (사이드바·검색·그래프 포함, 다크/라이트 테마)
- 자동 업데이트 — GitHub Releases 연동. 새 버전 감지 시 알림 후 설치 자동화
- 환경 체크 — 첫 실행 시 Node.js·Python·Cursor 등 필수 환경 자동 점검 (SetupChecker)
- 시스템 트레이 — 최소화 시 트레이 상주, 우클릭 메뉴로 빠른 제어
| 서비스 | 런타임 | 설명 |
|---|---|---|
| SQL Gen MCP Server | Java | 자연어 → SQL 변환 MCP 서버 (LangChain4j + PostgreSQL + TEI) |
| BGE-M3 Embedding Server | Python | BAAI/bge-m3 임베딩 모델 API 서버 (FastAPI). CUDA 자동 감지 |
| Swagger MCP Server | Java | Swagger/OpenAPI 스펙 기반 MCP 서버 |
- Java 17 이상
- Gradle 9.x (또는 포함된 Gradle Wrapper 사용)
# 개발 서버 시작 (FXML/CSS 핫 리로드)
./gradlew runDev
# 프로덕션 실행
./gradlew run# 기본 실행
start.bat
# CLI 옵션과 함께 실행
start.bat --api.server.enabled=true --api.server.port=9090start.bat은 build/install/ 배포본이 없으면 installDist를 자동 실행한다.
powershell -ExecutionPolicy Bypass -File bin\buildExe.ps1
# → deploy\LLMManager-1.0.0.zip
# 압축 해제 후 LLMManager.exe 를 바로 실행 (Java 설치 불필요)powershell -ExecutionPolicy Bypass -File bin\buildExe.ps1 -Installer
# → deploy\LLMManager-1.0.0.exe
# 더블클릭 → 설치 마법사 → 시작 메뉴 등록자세한 내용은 docs/패키징.md 참조.
start.bat 또는 ./gradlew run --args="..." 실행 시 아래 옵션을 사용할 수 있다.
| 옵션 | 설명 | 기본값 |
|---|---|---|
--api.server.enabled=true |
내장 REST API 서버 활성화 | false |
--api.server.port=8185 |
API 서버 포트 | 8185 |
--runtime.python=python3 |
Python 실행 명령어 | python |
--runtime.java-home=경로 |
JAVA_HOME 경로 | 환경변수 |
--install.base=경로 |
서비스 기본 설치 경로 | ~/llm-services |
--monitor.health-check-interval=5 |
헬스체크 주기 (초, 1~10) | 10 |
--skill-library.db.provider=sqlite |
스킬 라이브러리 DB (sqlite/postgresql/oracle/mssql) | sqlite |
설정 우선순위: CLI 인수 > settings.json > application.yml
llm_manager/
├── src/main/java/org/kyj/llmmanager/
│ ├── model/ # 데이터 모델 (ServiceInstance, AppSettings 등)
│ ├── model/plugin/ # 플러그인 모델 (PluginManifest, PluginCommand 등)
│ ├── service/ # 비즈니스 로직 (ProcessManager, HealthMonitor 등)
│ ├── setup/ # 환경 점검 (SetupChecker, SetupCheckDialog)
│ ├── ui/ # JavaFX 컨트롤러·다이얼로그·셀
│ └── util/ # 유틸리티
├── src/main/resources/
│ ├── org/kyj/llmmanager/ # FXML 레이아웃
│ └── llm-skills/ # Claude/Copilot/Cursor/Gemini/Wiki-Agent 스킬 파일
├── service-packs/ # 기본 제공 서비스 YAML (배포 포함)
├── plugins/
│ ├── cursor-agent-runner/ # Cursor Agent 실행 플러그인
│ └── wiki-agent/ # LLM Wiki Agent 플러그인 (Python 도구 포함)
├── bin/
│ ├── buildExe.ps1 # 패키지 빌드 스크립트
│ └── Download-WiX.ps1
├── deploy/ # 빌드 결과물 출력 디렉토리
└── docs/ # 아키텍처·패키징·위키 가이드 문서
모든 사용자 데이터는 ~/llm-services/에 저장된다.
| 파일 | 내용 |
|---|---|
services.json |
사용자가 추가한 서비스 정의 목록 |
settings.json |
앱 설정 (런타임 경로, API 포트 등) |
projects.json |
LLM 스킬 설치 프로젝트 목록 |
app.log |
앱 구동 로그 (7일 롤링) |
코드 기준 앱 홈은
PlatformUtil.getAppHome()이며 OS와 무관하게~/llm-services를 사용한다.
# HotswapAgent 다운로드 (최초 1회)
./gradlew downloadHotswapAgent
# 개발 모드 실행 (FXML/CSS/서비스 정의 YAML 변경 즉시 반영)
./gradlew runDevFXML·CSS 변경 시 앱 재시작 없이 자동으로 화면이 갱신된다.
문서를 수집하면 AI가 분석해 상호 연결된 지식 위키를 자동 구축·유지하는 기능.
- Node.js 22+
- 글로벌
@cursor/sdk(npm install -g @cursor/sdk) CURSOR_API_KEY시스템 환경변수- cursor-agent-runner 플러그인 (기본 내장)
- (큰 PDF 전처리 시) Python + pymupdf
| 메뉴 | 설명 |
|---|---|
| 문서 수집 (Ingest) | 파일/폴더 선택 → raw 복사 → AI 분석·위키 작성 |
| 위키 질의 (Query) | 위키를 기반으로 자연어 질의·응답 (이력 영속화) |
| 구조 검사 (Health) | 위키 구조 일관성 검사 |
| 품질 검사 (Lint) | 위키 콘텐츠 품질 검사 |
| 그래프 빌드 (Graph) | vis.js 기반 지식 그래프 생성 |
| 위키 브라우저 | 트리 탐색 + 마크다운 렌더링, [[WikiLink]] 이동, 키워드 검색 |
| HTML 내보내기 | 정적 HTML 사이트 내보내기 (사이드바·검색·그래프·테마 지원) |
자세한 내용은 docs/llm-manager/wiki-agent.md 참조.
앱 시작 시 또는 메뉴에서 GitHub Releases를 확인해 새 버전이 있으면 알림을 표시한다. "업데이트 설치" 클릭 시 ZIP을 내려받아 현재 설치 경로에 자동 적용한다.
./gradlew build 정상 통과 (2026-06-15 기준, v1.0.5).
- 아키텍처 — 레이어 구조·컴포넌트·스레딩 모델
- 서비스 설정 흐름 — YAML 서비스팩, 사용자 서비스 저장 흐름
- 패키징 가이드 — 실행파일·설치파일 빌드 방법
- LLM Wiki Agent 가이드 — 위키 에이전트 사용법·트러블슈팅
