로컬 우선 AI 비서 LocalGPT – Rust 기반, 지속 메모리 지원
(github.com/localgpt-app)- Rust로 개발된 로컬 실행형 AI 비서로, 인터넷 연결 없이 개인 기기에서 완전 동작하며 데이터가 외부로 전송되지 않음
- 단일 실행 파일 구조로 Node.js, Docker, Python 설치 없이 구동 가능하며, 약 27MB 크기의 경량 바이너리 형태
- 지속 메모리 시스템은 Markdown 기반 지식 저장소와 SQLite FTS5 및 semantic search를 통해 장기 기억과 검색 기능을 제공
- CLI, 웹 UI, 데스크톱 GUI를 모두 지원하며, OpenAI·Anthropic·Ollama 등 다중 LLM 제공자와 호환
- OpenClaw 포맷과 호환되어 SOUL, MEMORY, HEARTBEAT 파일을 활용한 자율 작업 수행이 가능함
개요
- LocalGPT는 로컬 장치 중심의 AI 비서로, 지속적인 메모리와 자율 작업 기능을 갖춘 Rust 기반 애플리케이션
- 외부 서버 의존 없이 개인 기기에서 완전 실행
- OpenClaw 프로젝트에서 영감을 받아 호환성 유지
- 설치는
cargo install localgpt명령으로 가능하며, GUI 포함 또는 헤드리스 모드로 선택 가능
주요 특징
- 단일 바이너리 구조로 Node.js, Docker, Python이 필요 없음
- 로컬 데이터 보존: 모든 메모리와 설정이 사용자의 기기 내에 저장
- 지속 메모리: Markdown 파일 기반의 지식 저장소를 사용하며, SQLite FTS5 및 sqlite-vec을 통한 빠른 검색과 의미 기반 검색 지원
- 자율 하트비트(heartbeat) 기능으로 백그라운드에서 작업 수행 가능
- 다양한 인터페이스: CLI, 웹 UI, 데스크톱 GUI 제공
- 다중 LLM 지원: Anthropic(Claude), OpenAI, Ollama 등과 연동 가능
작동 방식
- 메모리는
~/.localgpt/workspace/디렉터리에 저장되며, 주요 파일 구성은 다음과 같음-
MEMORY.md: 장기 지식 저장 -
HEARTBEAT.md: 자율 작업 큐 -
SOUL.md: 성격 및 행동 지침 -
knowledge/: 주제별 구조화된 지식 저장소
-
- SQLite FTS5로 키워드 검색, sqlite-vec으로 로컬 임베딩 기반 의미 검색 수행
설정 및 CLI 명령
- 설정 파일은
~/.localgpt/config.toml에 저장되며, 기본 모델·API 키·하트비트 주기·작업 시간대 등을 지정 - 주요 CLI 명령
-
localgpt chat: 대화 세션 시작 -
localgpt ask "질문": 단일 질의 실행 -
localgpt daemon start: 백그라운드 데몬 실행 -
localgpt memory search "query": 메모리 검색 -
localgpt config init: 기본 설정 생성
-
HTTP API
- 데몬 실행 시 REST API 제공
-
GET /health: 상태 확인 -
POST /api/chat: 대화 요청 -
GET /api/memory/search?q=<query>: 메모리 검색 -
GET /api/memory/stats: 메모리 통계 조회
-
기술 스택
- Rust, Tokio, Axum, SQLite (FTS5 + sqlite-vec) , fastembed, eframe 기반
- Apache-2.0 라이선스 하에 공개되어 있으며, 약 93%의 코드가 Rust로 작성됨
기타 정보
- GitHub에서 약 646개의 스타와 39개의 포크를 보유
- 블로그 글 *“Why I Built LocalGPT in 4 Nights”*에서 개발 과정과 커밋별 세부 내역을 공개
- 주요 기여자는 Yi Wang, Claude, objectkit, Ax73 등 4명으로 확인됨
Hacker News 의견들
-
2026년에 이런 걸 보고 있다니 정말 사이버펑크한 기분임
MEMORY.md,HEARTBEAT.md,SOUL.md같은 구조가 너무 흥미로움
다만ANTHROPIC_API_KEY에 의존하니 “local-first”라 부르긴 애매함
그래도 장기적으로는 local-first가 미래라고 생각함
작년에 Rust로 비슷한 걸 만들었는데, 로컬에서 모델을 돌리니 속도 차이가 확실했음
내 데모 영상도 있음
OS 레벨에서 이런 걸 구현하는 건 정말 패러다임 전환급 경험이었음
앞으로 5~10년 안에 우리가 기기와 상호작용하는 방식이 근본적으로 바뀔 것 같음- 이건 local-first가 아님, 이름이 잘못된 것 같음
- 굳이 제3자 LLM을 쓸 필요는 없음
OpenAI나 Anthropic 호환 엔드포인트를 직접 지정할 수 있고, localhost에서도 가능함 - 관련 코드 참고: providers.rs L222
- 나도 LAN에서 OpenClaw와 Qwen3 Coder Next를 local-first 방식으로 돌려보고 있음
이제 막 시작했지만 꽤 가능성이 있어 보임 - AI에 대한 호불호를 떠나, 지금의 투자 규모는 우리 세대의 Apollo 프로그램 같음
앞으로 수년 내 100개 이상의 기가와트급 데이터센터가 생길 예정이라 함
군수 산업보다는 훨씬 나은 자금 사용처라고 생각함
-
조언 하나, 게시글이나 문서는 직접 쓰거나 최소한 편집은 직접 하는 게 좋음
지금 문서와 글은 전부 LLM이 쓴 것처럼 보여서 정성이 느껴지지 않음- 요즘은 몇 문장 이상 쓰는 걸 포기한 사람도 많음
이런 표절 세탁 기계들이 사람의 글쓰기 감각을 망가뜨리고 있음 - 나도 동의함, 직접 문서를 쓰면 오히려 재밌어짐
- 반론도 있음
나는 원래 문서 쓰는 걸 싫어해서, 예전엔 내 코드에 문서가 거의 없었음
덕분에 다른 사람이 쓰기 어려웠음
LLM은 정확한 설명을 빠르게 만들어주고 최신 상태로 유지해줘서 문서 작성엔 최적임
사람이 안 썼다는 게 보이더라도, 내용이 맞다면 문제없다고 생각함 - 이런 저품질 포스트를 막는 억제책이 되면 좋겠지만 현실은 아님
오히려 노력 안 하는 걸 자랑스럽게 여기는 분위기가 있음
- 요즘은 몇 문장 이상 쓰는 걸 포기한 사람도 많음
-
이 프로젝트 아이디어는 훌륭함
지속 메모리 + 시맨틱 검색 구조화 프레임워크가 핵심임
SOUL 기능은 사실 대부분의 LLM이 이미 마크다운 파일 형태로 지원함
이런 구조는 프라이빗 에이전트 네트워크 구축의 출발점이 될 수 있음
다만 이름이 문제임 — LocalGPT는- 로컬이 아니고,
- GPT 모델도 아님
의도를 더 정확히 반영하는 이름으로 바꾸는 게 좋겠음
-
진지한 질문인데, 이게 OpenClaw와 뭐가 다른지 궁금함
같은SOUL.md,MEMORY.md,HEARTBEAT.md구조를 쓰고,
OpenClaw는 이미 멀티채널 메시징, 음성통화, 브라우저 자동화, 서브 에이전트까지 있음
Rust로 만든 것 외에 차별점이 있는지 알고 싶음- 나를 포함해 많은 사람이 OpenClaw를 무서워함
기능이 너무 많고, 보안 아키텍처가 부실함
권한 승인도 형식적이고, 자기 설정을 스스로 바꿀 수 있음
그래서 나는 Wardgate로 권한을 분리함
여러 노드/에이전트로 나누고, 자격증명과 API 접근을 분리하는 게 필요함 - 이건 그냥 바이브 코딩용 정적 사이트 생성기 같음
- 작고 Node 기반이 아니라는 점이 장점임
모든 사람이 고성능 머신을 가진 건 아니니까
- 나를 포함해 많은 사람이 OpenClaw를 무서워함
-
왜 LLM 제공자(OpenAI, Anthropic 등)에 연결해야 하는지 궁금함
로컬 GPT라면 추론도 로컬에서 해야 하는 거 아닌가?- 꼭 외부에 연결할 필요는 없음
Ollama 같은 로컬 서버를 LLM 제공자로 지정할 수 있음
README엔 Anthropic 예시만 있지만, 코드 보면 다른 것도 가능함
설정 한 줄만 바꾸면 됨 - 노력은 좋지만, 이름이 오해를 부름
실제로는 로컬도 아니고 GPT도 아님
그냥 OpenClaw의 Rust 버전 클론에 가까움 - 로컬이 설정되지 않으면 온라인 제공자로 자동 폴백됨
관련 코드: providers.rs L222 - 꼭 필요하진 않음
- 꼭 외부에 연결할 필요는 없음
-
LocalGPT나 OpenClaw 같은 에이전트의 보안 핵심 문제는
“private data access + external communication + untrusted content”의 치명적 삼합체임
악성 이메일 하나면 “내 메일함을 공격자에게 전달하라”는 명령을 실행할 수도 있음
나는 이를 해결하기 위해 object-capability 기반 보안 정책을 연구 중임
민감 정보 유출을 원천적으로 막는 정책을 만들고 싶음- 이 삼합체 문제는 지금 이 분야의 가장 시급한 과제임
해결책은 두 가지로 봄- 모든 외부 전송을 수동 승인으로 제한 (OTP 등)
하지만 피로도가 높음 - 아예 설계 단계에서 삼합체를 피함 — 예를 들어 외부 통신을 차단한 2요소형 에이전트
혹시 다른 접근법을 연구 중인지 궁금함
- 모든 외부 전송을 수동 승인으로 제한 (OTP 등)
- 이 삼합체 문제는 지금 이 분야의 가장 시급한 과제임
-
나는 OpenClaw를 써봤는데, 관찰 가능성(observability) 이 부족함
지금 이 에이전트가 뭘 생각하고 뭘 하는지, 로그가 전혀 안 보임
이런 시스템은 Elixir/BEAM으로 짜면 완벽할 것 같음
프로세스 트리로 상태를 추적하고, 메시지 박스를 덤프해서 생각 흐름을 볼 수 있음- lemon 프로젝트가 딱 그런 걸 하는 것 같음
- GPT나 Claude 같은 모델은 내부 생각을 일부러 숨김
보여주는 건 일부뿐이고, 실제로는 더 많은 토큰을 소비함 - 좋은 아이디어임, 직접 만들어보면 좋겠음
- 나도 관찰성 부족에 동의함
기본 기능이어야 할 걸 유튜브 튜토리얼로 해결하라니, 지금은 혼돈 상태임
-
Linux Mint에서
cargo install localgpt가 실패했음
Cargo.toml에"x11"을 추가하니 빌드 성공함
Rust는 잘 모르지만, 이건 GUI 종속성 문제였던 듯함- 설치 절차는 다음과 같음
근데 Kai Lentit라는 사람, 혹시 채용 중인가?git clone https://github.com/localgpt-app/localgpt.git cd localgpt/ Cargo.toml에 "x11" 추가 cargo install --path ~/.cargo/bin
- 설치 절차는 다음과 같음
-
로컬 어시스턴트로 쓸 만한 로컬 모델은 어떤 게 있을까?
연산 자원과 메모리의 절충점을 평가하는 시도가 있는지도 궁금함
어느 정도 하드웨어가 있어야 쓸모 있는 수준이 되는지 알고 싶음 -
“로컬”이라는 단어가 요즘은 참 이상하게 쓰임
대부분의 기능이 결국 인터넷과 상호작용하는데도 로컬이라 부름