소담 오브레인 (SoDam O-Brain) — AI 기억 시스템

AI와 나눈 대화에서 중요한 결정·약속을 자동으로 저장하고, 지식 그래프로 시각화하는 완전 로컬 기억 도구.

비유 한 줄: AI는 천재지만 대화가 끝나면 모든 걸 잊어버립니다. O-Brain은 그 AI 옆에 두는 자동 메모 노트예요. 중요한 말을 알아서 적어두고, 언제든 꺼내줍니다.


목차

  1. 핵심 기능
  2. 사전 준비물
  3. 다운로드 방법
  4. 설치 (2단계)
  5. Claude Code 플러그인 방식 (선택)
  6. MCP 도구 연동 (Claude Code)
  7. 빠른 시작
  8. 실행 · 사용 방법
  9. 주요 명령어
  10. 파일·데이터 위치
  11. 워크플로우
  12. 아키텍처 요약
  13. 보안 개요 · 데이터 흐름
  14. 업데이트 내용 요약
  15. 문제해결 빠른 참조
  16. FAQ
  17. 라이선스 · 저작권 · 상업적 용도

핵심 기능

기능 설명
100% 로컬 모든 기억이 내 PC에만 저장됩니다. 외부 서버·클라우드 전송 없음
하이브리드 검색 키워드(FTS5) + 의미 유사도(벡터 검색)를 동시에 사용
지식 그래프 기억들을 2D/3D 점과 선으로 시각화
시간여행 날짜 지정으로 그 날 기준 살아있던 기억만 조회
신뢰도 감쇠 AI 추출 기억은 30일 반감기로 신뢰도 자동 감소
보안 필터 API 키·비밀번호 자동 제거 후 저장 ([REDACTED])
자동 백업 + 백업 목록 화면 서버 시작 시·일괄 삭제 전 스냅샷 자동 생성. ⚙ 설정에서 백업 목록(날짜·용량) 확인 + "지금 백업 만들기" + 수동 복원 방법 안내
MCP 연동 Claude Code에서 7개 도구로 기억 저장·검색·관계 관리
고아 노드 시각화 관계 없는 기억에 점선 테두리 표시
일괄 선택·삭제 여러 기억을 한 번에 선택해 삭제 + 10초 안에 되돌리기
⚙ 설정 페이지 목록 개수·그래프 노드 개수·자동 새로고침·테마·안내 배너를 화면에서 직접 조절, 브라우저에 저장돼 계속 유지
중복 기억 정리 비슷한 기억 쌍을 자동으로 찾아 보여주고, 확인 후 병합·삭제(백업+10초 되돌리기)
API 토큰 검증 모든 API 요청에 로컬 토큰 검사, 없거나 틀리면 차단
성능 가드 기억이 많아지면(1500건+) 그래프 연산을 자동으로 단순화해 멈춤 방지
믿을 수 있는 검색 순위 사람이 확인한 기억이 자동추출 노이즈보다 검색 결과 위쪽에 오도록 관련도·중요도·최신성·신뢰도를 함께 반영
저신뢰 기억 필터 목록 탭에서 자동 추출 신뢰도가 낮은(50% 미만) 기억만 골라 검토 가능
그래프 안정성·키보드 접근성 그래프를 못 불러오면 오류 안내+다시 시도 버튼 표시, 마우스 없이 Tab·Enter만으로 그래프의 모든 기억을 탐색·조회 가능

사전 준비물

항목 요구 사항
운영체제 Windows 10 / 11 (64-bit)
Node.js 20.x LTS 이상 (nodejs.org에서 무료 설치)
저장 공간 500 MB 이상 (임베딩 모델 ~90 MB 포함)
RAM 4 GB 이상 (8 GB 이상 권장)
브라우저 Chrome, Edge, Firefox 등

Claude Code는 MCP 도구 연동·플러그인 설치 시에만 필요. 웹 대시보드는 Claude Code 없이도 사용 가능.


다운로드 방법

이 문서를 읽고 있다면 O-Brain 파일은 이미 내 컴퓨터에 있습니다. 프로젝트 폴더 위치만 확인하면 됩니다(현재 이 PC 기준 절대경로).

Git으로 받는 경우(개발자용):

git clone [저장소 주소]
cd [폴더명]

저장소가 비공개(private)일 경우 접근 권한이 필요합니다.


설치 (2단계)

1단계: 의존성 설치 (터미널에서)

cd <저장소를 내려받은 폴더>\app
npm install

예시: 저장소를 C:\Tools\O-Brain에 내려받았다면 cd C:\Tools\O-Brain\app

2단계: 서버 시작

npm start

O-Brain 로컬 서버 ▶ http://127.0.0.1:7740 메시지가 나오면 성공.

브라우저에서 열기:

http://127.0.0.1:7740

첫 실행 시: AI 임베딩 모델(약 90 MB)을 자동 다운로드합니다. 1~3분 소요. 이후 실행부터는 즉시 시작.


Claude Code 플러그인 방식 (선택)

Claude Code를 사용 중이라면 플러그인으로도 설치 가능합니다. 반드시 2단계로 나눠서 실행하세요(한 번에 설치 시도 시 "Marketplace not found" 오류):

/plugin marketplace add <저장소를 내려받은 폴더>\plugin
/plugin install o-brain@o-brain-local

예시: /plugin marketplace add C:\Tools\O-Brain\plugin

설치 후 Claude Code 재시작 → 슬래시 명령어 사용 가능:

명령 하는 일
/o-brain:status 현재 기억 수·상태 조회
/o-brain:selftest 저장·검색·보안 일괄 점검 (✅✅✅이면 정상)
/o-brain:remember 현재 대화에서 결정 추출·저장
/o-brain:link 기억끼리 관계 연결
/o-brain:backup 수동 백업 생성
/o-brain:open 브라우저로 대시보드 열기(서버가 꺼져 있으면 자동으로 켬)

MCP 도구 연동 (Claude Code)

Claude Code settings.json에 등록하면 대화 중 기억을 바로 저장·검색할 수 있습니다:

{
  "mcpServers": {
    "o-brain": {
      "command": "node",
      "args": ["C:/절대경로/app/src/mcp-server.mjs"]
    }
  }
}

경로는 절대 경로, 슬래시(/) 사용 — 백슬래시(\) 쓰면 오작동할 수 있습니다.

사용 가능한 MCP 도구: save_memory, search_memory, get_memory, get_related, get_timeline, add_relation, list_categories


빠른 시작

  1. npm install (최초 1회) → npm start
  2. 브라우저에서 http://127.0.0.1:7740 열기
  3. (Claude Code 사용자) 평소처럼 대화 중 또렷한 결정 문장을 말하고 /clear → 자동 저장
  4. 화면 우측 상단 ⚙ 설정에서 목록 개수·그래프 노드 개수 등을 취향대로 조절

상세 스텝바이스텝: GUIDE.md


실행 · 사용 방법

실행

# app 폴더에서 실행
npm start                              # 서버 시작 (기본 포트 7740)
$env:OBRAIN_PORT=7741; npm start       # 포트를 바꿔서 시작 (PowerShell)

서버 종료: 터미널에서 Ctrl + C.

사용 — 웹 대시보드 (5개 탭)

설명
그래프 기억을 점과 선으로 표시하는 지식 맵. 첫 화면.
개요 총 기억 수, 유형별·카테고리별 분포, 연결 많은 기억
목록 기억을 카드 형태로 나열. 선택 모드로 일괄 삭제 가능
타임라인 시간순으로 기억 표시
⚙ 설정 목록/타임라인/개요 불러오기 개수, 그래프 표시 노드 개수, 자동 새로고침 켜짐·주기, 테마, 안내 배너 표시 여부 — 5개 항목을 이 화면에서 직접 조절. 값은 브라우저(localStorage)에 저장돼 다음에 열어도 유지됨

자세한 사용법(그래프 조작·관계 연결·검색·시간여행·일괄삭제 등)은 GUIDE.md 7장 참고.


주요 명령어

# app/ 폴더에서 실행
npm start          # 서버 시작 (포트 7740)
npm run selftest   # 자가 진단
npm run backup     # 수동 백업
npm run status     # DB 상태 조회
npm run seed       # 예제 데이터 입력 (테스트용)

전체 HTTP API 엔드포인트·MCP 도구 입출력 표는 GUIDE.md 10장 참고.


파일·데이터 위치

항목 위치
기억 데이터베이스 app/data/obrain.db
자동 백업 app/data/backup/ (최신 7개 보관)
API 토큰 파일 app/data/.api-token (실행마다 갱신)
개인 설정 app/.env.local (없으면 기본값 사용)
이 문서들 프로젝트 최상위(README.md/GUIDE.md/영문판/각 .html)

환경 변수 (app/.env.local)

변수 기본값 설명
OBRAIN_PORT 7740 서버 포트 번호
OBRAIN_DATA_DIR ./data 데이터 저장 폴더

워크플로우

일반 사용자(웹 UI 중심): 아침에 npm start → 어제 기억 확인 → 작업 중 중요 결정 직접 입력 → 저녁에 관계 연결·정리.

Claude Code 사용자(MCP/플러그인): 대화 중 결정을 말하고 /clear로 세션 종료 → 자동 저장 → 가끔 /o-brain:open으로 화면 확인 → /o-brain:backup으로 주기적 백업.

상세 흐름은 GUIDE.md 11장 참고.


아키텍처 요약

[Claude Code / 브라우저]
        ↓
[Express 서버 127.0.0.1:7740]
        ↓
[보안 필터] → [임베딩(로컬 AI)] → [SQLite DB]
                                    ├── FTS5 (키워드 검색)
                                    └── sqlite-vec (벡터 검색)

기술 스택: Node.js ES Modules · Express.js v5 · SQLite (better-sqlite3) · sqlite-vec · @huggingface/transformers (all-MiniLM-L6-v2) · force-graph / 3d-force-graph · @modelcontextprotocol/sdk


보안 개요 · 데이터 흐름

  • 서버는 **127.0.0.1(내 PC 전용)**에만 바인딩 — 외부 기기에서 접근 불가
  • 기억 저장 전 API 키·비밀번호 자동 제거 (redact.mjs 처리)
  • 서버 실행마다 새로운 로컬 API 토큰 자동 생성 (crypto.randomBytes)
  • data/, .env.local, *.sqlite.gitignore에 포함 — Git에 절대 올라가지 않음
  • 외부 클라우드 통신 없음. 임베딩 모델도 완전 로컬 실행
  • 입력값 검증: 잘못된 id·범위 밖 숫자·CORS 미허용 출처는 서버가 400/403/404로 안전하게 거부(실측 확인됨)

데이터 흐름 다이어그램·보안 헤더 전체 목록은 GUIDE.md 12장 참고.


업데이트 내용 요약

최신 항목이 위에 오도록 정리했습니다. 각 항목을 눌러 펼쳐 보세요.

  • 백업 목록 + 수동 복원 안내: ⚙ 설정 화면에서 그동안 쌓인 백업(날짜·용량)을 확인하고, "지금 백업 만들기" 버튼으로 즉시 추가 백업 생성. 문제 발생 시 되돌리는 방법도 화면에 단계별로 안내.
  • 저신뢰 기억 필터: 목록 탭에서 자동 추출 신뢰도가 낮은(50% 미만) 기억만 골라볼 수 있는 필터 추가.
  • save_memory 카테고리 지정: Claude Code가 기억을 저장할 때 분류(카테고리)를 직접 지정할 수 있도록 MCP 도구 확장(생략 시 기존처럼 자동 분류).
  • 플러그인 설치 경로 문제 수정: 이전 버전은 개발 PC의 폴더 경로가 설정 파일에 고정돼 있어 다른 컴퓨터에 설치하면 MCP·명령어가 작동하지 않았음 — 어느 컴퓨터에 내려받아도 스스로 경로를 찾도록 수정.
  • 에러 메시지 정리: 예상치 못한 서버 오류 시 내부 상세 정보 대신 안내 메시지만 보이도록 수정(문제 진단용 상세 기록은 서버 로그에만 남김).
  • 검색 순위 개선: 검색·MCP search_memory 결과 정렬에 관련도(70%)·중요도(15%)·최신성(10%)·신뢰도(5%)를 함께 반영. 사람이 확인한 기억이 자동추출 노이즈에 밀려나지 않게 함(정확히 일치하는 결과는 여전히 최우선 — 순위가 뒤집히지 않음).
  • 그래프 불러오기 실패 표시: 서버 연결 실패 시 조용히 빈 화면으로 남는 대신 오류 안내 + "다시 시도" 버튼 표시.
  • 단건 삭제도 되돌리기 지원: 기억 1개만 삭제할 때도 일괄삭제와 같은 확인창 + 10초 되돌리기 적용(이전엔 되돌릴 수 없었음).
  • 비활성 버튼 안내: 아직 누를 수 없는 버튼(예: 선택 없을 때 삭제 버튼)에 마우스를 올리면 이유가 표시됨.
  • 검색 로딩 표시: 검색어를 입력하고 결과를 기다리는 짧은 순간에도 작은 로딩 표시가 나타남.
  • 그래프 키보드 접근성: 마우스 없이 Tab·Enter만으로 그래프의 모든 기억을 순서대로 탐색·조회 가능.
  • 그래프 성능: 기억 5000건 환경에서 9.8초 걸리던 그래프 생성을, 1500건 초과 시 자동 단순화하는 성능 가드로 8ms까지 단축(약 300배).
  • 중복 기억 정리: 개요 탭에서 비슷한 기억 쌍을 자동 탐지 → 확인 후 "A만 남기기·B만 남기기·합치기" 선택 정리(백업+10초 되돌리기).
  • 보안 강화: 로컬 API 토큰이 발급만 되고 검사되지 않던 상태를 고쳐 실제로 매 요청마다 검사하도록 활성화. 기억 저장 시 중요도·신뢰도 범위 밖 값도 자동 보정되도록 수정.
  • 전체 기능 실동작 검증: HTTP API 19개, MCP 도구 7개, 클로드코드 자동저장·불러오기 훅 2개, 실제 웹 브라우저(2D/3D 그래프·검색·악성 스크립트 방어)까지 90개 이상 경우의 수를 직접 실행해 확인.
  • 목록/타임라인/개요 불러오기 개수를 50/100/200/500/직접입력(1~500)으로 조절 가능하게 하고, 브라우저에 저장해 다음에 열어도 유지되도록 함.
  • 헤더 ⚙ 버튼 → **5번째 탭(진짜 설정 페이지)**으로 이동. 그래프 표시 노드 개수(502000)·자동 새로고침 켜짐/주기(10300초)·테마(밝게/어둡게)·안내 배너 표시 여부까지 5개 항목 완비.
  • 버그 수정 1: 그래프 노드 개수에 소수(예 500.7)를 입력하면 서버가 500 에러를 내고 화면이 처리 안 된 예외를 던지던 문제 — 서버·클라이언트 양쪽에서 정수로 강제하도록 수정.
  • 버그 수정 2: 일괄삭제 확인창은 "10초 안에 되돌리기 가능"이라 안내하지만 실제 되돌리기 버튼은 5.5초면 사라지던 불일치 — 10초로 통일.
  • 기억 상세보기에 "저장 세션 · N시간 전" 표시 추가(여러 Claude Code 창을 동시에 쓸 때 출처 구분).
  • 검색 결과가 limit으로 잘렸을 때 "관련 기억이 N건 더 있어요" 안내가 뜨도록 수정(조용한 잘림 방지).
  • 신뢰도 감쇠 기능이 최초 실행 시 기존 기억을 즉시 바닥까지 떨어뜨리던 버그 수정.
  • 다중 선택 → 일괄 삭제 → 확인 모달 → undo 토스트 흐름을 실제 브라우저에서 끝까지 검증.
  • 검증 중 선택모드 진입 시 삭제/취소 툴바가 안 보이던 버그 발견·수정.
  • MCP 도구 7개(save_memory·search_memory·get_memory·get_related·get_timeline·list_categories·add_relation) 전부 실제 프로토콜로 호출해 확인.
  • 저장 중복 방지(거의 동일한 기억은 저장 스킵 + 사유 반환).
  • MCP add_relation 도구, /o-brain:link 명령(관련 기억 제안 → 사람이 종류 확정).
  • 대시보드 다중선택 → 일괄 삭제(확인 모달 + undo), 터치타깃 접근성 보정.
  • scope(global/project) 필터, Apache-2.0 라이선스 정식 적용, 유료 Haiku API 제거(호스트 LLM 재활용으로 대체).
  • save_memory MCP·/o-brain:remember·룰 기반 입력정제 등 "기억의 질" 기반 작업.
  • 대시보드 모바일 가독성·터치타깃 ≥44px 보정.
  • 대시보드 XSS 방어·CSP/보안 헤더 추가.

전체 이력(마일스톤별 상세)은 프로젝트의 CHECKPOINT.md에 있습니다(개발 참고용 문서).


문제해결 빠른 참조

증상 해결
'node'은 명령이 아닙니다 nodejs.org에서 LTS 설치 → 터미널 새로 열기
EADDRINUSE :::7740 .env.localOBRAIN_PORT=7741 추가 후 재시작
그래프가 비어 있음 npm run seed로 예제 데이터 추가
브라우저 접속 안 됨 npm start 실행 확인 → 주소가 http://127.0.0.1:7740인지 확인
임베딩 다운로드 실패 인터넷 연결 확인 · 방화벽에서 Node.js 허용
기억 실수 삭제 삭제 후 10초 안이면 화면의 "되돌리기" 클릭. 이미 지났다면 app/data/backup/에서 최신 .db 파일 복원
설정에서 개수를 바꿨는데 그래프가 그대로 정상입니다 — 그래프 탭은 "표시할 노드 개수"라는 별도 설정을 씁니다(목록 개수와 다름)

더 많은 증상별 대처는 GUIDE.md 15장 참고.


FAQ (자주 묻는 질문)

Q. 데이터는 어디에 저장되나요? A. app/data/obrain.db(SQLite 파일)에만 저장됩니다. 외부로 전송되지 않습니다.

Q. 비용이 드나요? A. O-Brain 자체는 무료입니다. Claude Code/Anthropic API를 쓰는 경우 그 서비스의 요금이 별도로 적용될 수 있습니다.

Q. 그래프 탭 노드 개수와 목록 개수 설정은 같은 건가요? A. 아닙니다. ⚙ 설정 페이지의 "한 번에 불러올 개수"는 목록/타임라인/개요에만, "표시할 노드 개수"는 그래프 탭에만 각각 따로 적용됩니다.

더 많은 FAQ는 GUIDE.md 16장 참고.


라이선스 · 저작권 · 상업적 용도

Apache License 2.0 © SoDam AI Studio, 2026

항목 내용
개인 사용 자유롭게 사용 가능
수정 · 복제 허용 (저작권 고지 보존 필수)
상업적 사용 Apache-2.0 조건 하에 허용
보증 없음 (AS-IS) — 사용 결과 책임은 사용자에게 있음
외부 서비스 Claude / Anthropic 등 외부 서비스 약관은 별도 적용
  • 내장 오픈소스 라이브러리(better-sqlite3, sqlite-vec, @huggingface/transformers, force-graph 등)는 각자의 라이선스(MIT/Apache-2.0)를 따릅니다
  • "Claude", "Anthropic"은 해당 회사의 상표입니다. O-Brain은 이들과 공식 제휴 관계가 없습니다
  • 라이선스 전문: LICENSE 파일 · 의존성 고지 전문: NOTICE 파일
  • 법률·저작권·상업 조건의 상세 항목(허용/의무/책임제한/상표/개인정보 등 12개 세부 조항)은 GUIDE.md 17장 참고

이 문서와 README.html의 내용은 동일합니다. 상세 가이드: GUIDE.md (한국어) · GUIDE.en.md (영문)