jan
무엇인가
Jan은 로컬 LLM 추론과 채팅 UI를 하나의 데스크톱 애플리케이션으로 묶은 도구다. 클라우드 챗봇 클라이언트의 자리를 로컬 실행으로 대체하는 계열에 속한다. 모델 가중치와 대화 내용이 사용자 컴퓨터를 벗어나지 않는 구성을 목표로 한다.
어떻게 동작하나
구성은 Tauri 셸, TypeScript 프론트엔드, 번들된 llama.cpp 추론 엔진으로 나뉜다. 모델은 HuggingFace에서 내려받아 로컬에 저장하고 추론은 llama.cpp가 담당한다. 앱은 localhost:1337에 OpenAI 호환 HTTP 서버를 열어 다른 프로그램이 같은 모델을 호출하게 한다. MCP(Model Context Protocol)로 외부 도구를 연결해 에이전트 동작을 붙인다. OpenAI, Anthropic, Mistral, Groq, MiniMax 같은 클라우드 제공자도 같은 인터페이스로 연결된다.
무엇과 다른가
클라우드 API 기반 챗봇과의 차이는 추론 위치다. 요청이 외부 서버로 전송되지 않고 로컬 프로세스에서 처리된다. 로컬 러너 계열과의 차이는 포함 범위다. 채팅 UI, 어시스턴트 설정, OpenAI 호환 서버, MCP 연동이 한 애플리케이션 안에 들어 있다. 추론 백엔드는 JAN_ENGINE_VARIANT로 선택하며 cpu, vulkan, metal, cuda12, cuda13, hip/rocm 토큰을 '-'로 조합한다.
어떻게 쓰나
설치는 운영체제별 바이너리를 받아 실행한다. Windows는 jan.exe, macOS는 jan.dmg, Linux는 jan.deb 또는 jan.AppImage를 쓴다. 소스에서 빌드할 때는 make dev가 의존성 설치, 코어 컴포넌트 빌드, 앱 실행을 한 번에 처리한다. make build는 프로덕션 빌드, make test는 테스트와 린트, make clean은 전체 삭제를 담당한다. Windows에서는 Git Bash에서 make dev를 실행한다.
전제와 한계
요구 사항은 macOS 13.6 이상, Windows 10 이상, 그리고 대부분의 Linux 배포판이다. 로컬 모델 실행에는 RAM이 필요해 3B 모델에 8GB, 7B에 16GB, 13B에 32GB를 권장한다. GPU 가속은 NVIDIA, AMD, Intel Arc를 지원한다. Windows 빌드 경로가 260자 MAX_PATH를 넘으면 nvcc가 실패하므로 빌드 트리를 %LOCALAPPDATA%\jan-engine으로 옮기거나 JAN_ENGINE_BUILD_DIR을 짧은 경로로 지정한다.
관련 논문 2
유사 도구
- Atomic-Chat오픈웨이트 LLM을 로컬에서 실행하고 OpenAI 호환 서버로 노출하는 데스크톱 앱이다. llama.cpp와 MLX 엔진을 앱 안에서 전환한다.
- atomic-agent로컬 llama.cpp로 오픈웨이트 모델을 돌리며 브라우저·파일·셸을 조작하는 로컬 우선 AI 에이전트 CLI다. 상태와 제어 루프가 전부 사용자 디스크에 남는다.
- gpt4all데스크톱과 노트북에서 LLM을 API 호출이나 GPU 없이 로컬로 실행하는 C++ 추론 클라이언트다. llama.cpp를 백엔드로 쓴다.
- terax-aiTauri 2와 Rust로 만든 7MB대 터미널 우선 AI 개발 환경이다. 네이티브 PTY와 WebGL 터미널, CodeMirror 6 편집기, BYOK·로컬 모델 에이전트 패널을 한 창에 묶는다.
- chatboxChatGPT·Claude·Gemini·Ollama 등 여러 LLM을 한 창에서 대화하는 크로스플랫폼 데스크톱 클라이언트다. 대화 데이터를 기기 로컬에 저장한다.
- lmdeployLLM을 4bit로 압축해 GPU에서 서빙하는 파이썬 툴킷이다. TurboMind와 PyTorchEngine 두 추론 엔진, OpenAI 호환 API 서버를 포함한다.