25684ea8f7
- Created README.zh.md for Chinese localization of the project. - Developed a README translation script to support multiple languages using Claude Agent SDK. - Implemented CLI and programmatic usage for the translation tool. - Added examples for integrating the translation tool into build scripts and CI/CD pipelines. - Enhanced error handling and logging for translation processes. - Included support for various languages and output customization options.
434 lines
18 KiB
Markdown
434 lines
18 KiB
Markdown
---
|
|
<h1 align="center">
|
|
<br>
|
|
<a href="https://github.com/thedotmack/claude-mem">
|
|
<picture>
|
|
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/thedotmack/claude-mem/main/docs/public/claude-mem-logo-for-dark-mode.webp">
|
|
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/thedotmack/claude-mem/main/docs/public/claude-mem-logo-for-light-mode.webp">
|
|
<img src="https://raw.githubusercontent.com/thedotmack/claude-mem/main/docs/public/claude-mem-logo-for-light-mode.webp" alt="Claude-Mem" width="400">
|
|
</picture>
|
|
</a>
|
|
<br>
|
|
</h1>
|
|
|
|
<h4 align="center"><a href="https://claude.com/claude-code" target="_blank">Claude Code</a>를 위해 구축된 지속적 메모리 압축 시스템.</h4>
|
|
|
|
<p align="center">
|
|
<a href="LICENSE">
|
|
<img src="https://img.shields.io/badge/License-AGPL%203.0-blue.svg" alt="License">
|
|
</a>
|
|
<a href="package.json">
|
|
<img src="https://img.shields.io/badge/version-6.5.0-green.svg" alt="Version">
|
|
</a>
|
|
<a href="package.json">
|
|
<img src="https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg" alt="Node">
|
|
</a>
|
|
<a href="https://github.com/thedotmack/awesome-claude-code">
|
|
<img src="https://awesome.re/mentioned-badge.svg" alt="Mentioned in Awesome Claude Code">
|
|
</a>
|
|
</p>
|
|
|
|
<br>
|
|
|
|
<p align="center">
|
|
<a href="https://github.com/thedotmack/claude-mem">
|
|
<picture>
|
|
<img src="https://raw.githubusercontent.com/thedotmack/claude-mem/main/docs/public/cm-preview.gif" alt="Claude-Mem Preview" width="800">
|
|
</picture>
|
|
</a>
|
|
</p>
|
|
|
|
<p align="center">
|
|
<a href="#빠른-시작">빠른 시작</a> •
|
|
<a href="#작동-방식">작동 방식</a> •
|
|
<a href="#mcp-검색-도구">검색 도구</a> •
|
|
<a href="#문서">문서</a> •
|
|
<a href="#설정">설정</a> •
|
|
<a href="#문제-해결">문제 해결</a> •
|
|
<a href="#라이선스">라이선스</a>
|
|
</p>
|
|
|
|
<p align="center">
|
|
Claude-Mem은 도구 사용 관찰 내용을 자동으로 캡처하고 의미론적 요약을 생성하여 향후 세션에서 사용할 수 있도록 함으로써 세션 간 컨텍스트를 원활하게 보존합니다. 이를 통해 Claude는 세션이 종료되거나 재연결된 후에도 프로젝트에 대한 지식의 연속성을 유지할 수 있습니다.
|
|
</p>
|
|
|
|
---
|
|
|
|
## 빠른 시작
|
|
|
|
터미널에서 새로운 Claude Code 세션을 시작하고 다음 명령을 입력하세요:
|
|
|
|
```
|
|
> /plugin marketplace add thedotmack/claude-mem
|
|
|
|
> /plugin install claude-mem
|
|
```
|
|
|
|
Claude Code를 재시작하세요. 이전 세션의 컨텍스트가 자동으로 새 세션에 나타납니다.
|
|
|
|
**주요 기능:**
|
|
|
|
- 🧠 **지속적 메모리** - 세션 간 컨텍스트 유지
|
|
- 📊 **점진적 공개** - 토큰 비용 가시성을 갖춘 계층화된 메모리 검색
|
|
- 🔍 **스킬 기반 검색** - mem-search 스킬로 프로젝트 기록 쿼리 (~2,250 토큰 절약)
|
|
- 🖥️ **웹 뷰어 UI** - http://localhost:37777에서 실시간 메모리 스트림
|
|
- 💻 **Claude Desktop 스킬** - Claude Desktop 대화에서 메모리 검색
|
|
- 🔒 **프라이버시 제어** - `<private>` 태그를 사용하여 민감한 콘텐츠를 저장소에서 제외
|
|
- ⚙️ **컨텍스트 설정** - 주입되는 컨텍스트에 대한 세밀한 제어
|
|
- 🤖 **자동 작동** - 수동 개입 불필요
|
|
- 🔗 **인용** - `claude-mem://` URI로 과거 결정 참조
|
|
- 🧪 **베타 채널** - 버전 전환을 통해 Endless Mode와 같은 실험적 기능 시도
|
|
|
|
---
|
|
|
|
## 문서
|
|
|
|
📚 **[전체 문서 보기](docs/)** - GitHub에서 마크다운 문서 탐색
|
|
|
|
💻 **로컬 미리보기**: Mintlify 문서를 로컬에서 실행:
|
|
|
|
```bash
|
|
cd docs
|
|
npx mintlify dev
|
|
```
|
|
|
|
### 시작하기
|
|
|
|
- **[설치 가이드](https://docs.claude-mem.ai/installation)** - 빠른 시작 및 고급 설치
|
|
- **[사용 가이드](https://docs.claude-mem.ai/usage/getting-started)** - Claude-Mem이 자동으로 작동하는 방법
|
|
- **[검색 도구](https://docs.claude-mem.ai/usage/search-tools)** - 자연어로 프로젝트 기록 쿼리
|
|
- **[베타 기능](https://docs.claude-mem.ai/beta-features)** - Endless Mode와 같은 실험적 기능 시도
|
|
|
|
### 모범 사례
|
|
|
|
- **[컨텍스트 엔지니어링](https://docs.claude-mem.ai/context-engineering)** - AI 에이전트 컨텍스트 최적화 원칙
|
|
- **[점진적 공개](https://docs.claude-mem.ai/progressive-disclosure)** - Claude-Mem의 컨텍스트 프라이밍 전략 철학
|
|
|
|
### 아키텍처
|
|
|
|
- **[개요](https://docs.claude-mem.ai/architecture/overview)** - 시스템 구성 요소 및 데이터 흐름
|
|
- **[아키텍처 진화](https://docs.claude-mem.ai/architecture-evolution)** - v3에서 v5로의 여정
|
|
- **[훅 아키텍처](https://docs.claude-mem.ai/hooks-architecture)** - Claude-Mem이 라이프사이클 훅을 사용하는 방법
|
|
- **[훅 참조](https://docs.claude-mem.ai/architecture/hooks)** - 7개 훅 스크립트 설명
|
|
- **[워커 서비스](https://docs.claude-mem.ai/architecture/worker-service)** - HTTP API 및 PM2 관리
|
|
- **[데이터베이스](https://docs.claude-mem.ai/architecture/database)** - SQLite 스키마 및 FTS5 검색
|
|
- **[검색 아키텍처](https://docs.claude-mem.ai/architecture/search-architecture)** - Chroma 벡터 데이터베이스를 사용한 하이브리드 검색
|
|
|
|
### 설정 및 개발
|
|
|
|
- **[설정](https://docs.claude-mem.ai/configuration)** - 환경 변수 및 설정
|
|
- **[개발](https://docs.claude-mem.ai/development)** - 빌드, 테스트, 기여
|
|
- **[문제 해결](https://docs.claude-mem.ai/troubleshooting)** - 일반적인 문제 및 솔루션
|
|
|
|
---
|
|
|
|
## 작동 방식
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ 세션 시작 → 최근 관찰 내용을 컨텍스트로 주입 │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
↓
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ 사용자 프롬프트 → 세션 생성, 사용자 프롬프트 저장 │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
↓
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ 도구 실행 → 관찰 내용 캡처 (Read, Write 등) │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
↓
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ 워커 프로세스 → Claude Agent SDK를 통한 학습 내용 추출 │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
↓
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ 세션 종료 → 요약 생성, 다음 세션 준비 │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
**핵심 구성 요소:**
|
|
|
|
1. **5개 라이프사이클 훅** - SessionStart, UserPromptSubmit, PostToolUse, Stop, SessionEnd (6개 훅 스크립트)
|
|
2. **스마트 설치** - 캐시된 종속성 검사기 (사전 훅 스크립트, 라이프사이클 훅 아님)
|
|
3. **워커 서비스** - 웹 뷰어 UI와 10개 검색 엔드포인트를 갖춘 포트 37777의 HTTP API, PM2로 관리
|
|
4. **SQLite 데이터베이스** - FTS5 전문 검색을 갖춘 세션, 관찰 내용, 요약 저장
|
|
5. **mem-search 스킬** - 점진적 공개를 통한 자연어 쿼리 (~2,250 토큰 절약 vs MCP)
|
|
6. **Chroma 벡터 데이터베이스** - 지능형 컨텍스트 검색을 위한 하이브리드 의미론적 + 키워드 검색
|
|
|
|
자세한 내용은 [아키텍처 개요](https://docs.claude-mem.ai/architecture/overview)를 참조하세요.
|
|
|
|
---
|
|
|
|
## mem-search 스킬
|
|
|
|
Claude-Mem은 과거 작업에 대해 질문할 때 자동으로 호출되는 mem-search 스킬을 통해 지능형 검색을 제공합니다:
|
|
|
|
**작동 방식:**
|
|
- 자연스럽게 질문하세요: *"지난 세션에서 무엇을 했나요?"* 또는 *"이 버그를 이전에 수정했나요?"*
|
|
- Claude가 자동으로 mem-search 스킬을 호출하여 관련 컨텍스트를 찾습니다
|
|
- MCP 방식 대비 세션 시작당 ~2,250 토큰 절약
|
|
|
|
**사용 가능한 검색 작업:**
|
|
|
|
1. **관찰 내용 검색** - 관찰 내용 전체에 대한 전문 검색
|
|
2. **세션 검색** - 세션 요약 전체에 대한 전문 검색
|
|
3. **프롬프트 검색** - 원시 사용자 요청 검색
|
|
4. **개념별** - 개념 태그로 찾기 (discovery, problem-solution, pattern 등)
|
|
5. **파일별** - 특정 파일을 참조하는 관찰 내용 찾기
|
|
6. **유형별** - 유형별 찾기 (decision, bugfix, feature, refactor, discovery, change)
|
|
7. **최근 컨텍스트** - 프로젝트의 최근 세션 컨텍스트 가져오기
|
|
8. **타임라인** - 특정 시점 주변의 통합 컨텍스트 타임라인 가져오기
|
|
9. **쿼리별 타임라인** - 관찰 내용을 검색하고 최적 일치 항목 주변의 타임라인 컨텍스트 가져오기
|
|
10. **API 도움말** - 검색 API 문서 가져오기
|
|
|
|
**자연어 쿼리 예시:**
|
|
|
|
```
|
|
"지난 세션에서 어떤 버그를 수정했나요?"
|
|
"인증을 어떻게 구현했나요?"
|
|
"worker-service.ts에 어떤 변경 사항이 적용되었나요?"
|
|
"이 프로젝트의 최근 작업을 보여주세요"
|
|
"뷰어 UI를 추가할 때 무슨 일이 있었나요?"
|
|
```
|
|
|
|
자세한 예시는 [검색 도구 가이드](https://docs.claude-mem.ai/usage/search-tools)를 참조하세요.
|
|
|
|
---
|
|
|
|
## 베타 기능 및 Endless Mode
|
|
|
|
Claude-Mem은 실험적 기능이 포함된 **베타 채널**을 제공합니다. 웹 뷰어 UI에서 직접 안정 버전과 베타 버전을 전환할 수 있습니다.
|
|
|
|
### 베타 시도 방법
|
|
|
|
1. http://localhost:37777 열기
|
|
2. 설정 클릭 (톱니바퀴 아이콘)
|
|
3. **Version Channel**에서 "Try Beta (Endless Mode)" 클릭
|
|
4. 워커가 재시작될 때까지 대기
|
|
|
|
버전을 전환해도 메모리 데이터는 보존됩니다.
|
|
|
|
### Endless Mode (베타)
|
|
|
|
대표적인 베타 기능은 **Endless Mode**입니다 - 세션 길이를 극적으로 연장하는 생체모방 메모리 아키텍처:
|
|
|
|
**문제점**: 표준 Claude Code 세션은 약 50번의 도구 사용 후 컨텍스트 한계에 도달합니다. 각 도구는 1-10k+ 토큰을 추가하며, Claude는 모든 응답마다 이전의 모든 출력을 재합성합니다 (O(N²) 복잡도).
|
|
|
|
**솔루션**: Endless Mode는 도구 출력을 약 500토큰 관찰 내용으로 압축하고 실시간으로 트랜스크립트를 변환합니다:
|
|
|
|
```
|
|
작업 메모리 (컨텍스트): 압축된 관찰 내용 (각 ~500 토큰)
|
|
아카이브 메모리 (디스크): 회상을 위해 보존된 전체 도구 출력
|
|
```
|
|
|
|
**예상 결과**:
|
|
- 컨텍스트 창에서 ~95% 토큰 감소
|
|
- 컨텍스트 소진 전까지 약 20배 더 많은 도구 사용
|
|
- 이차 O(N²) 대신 선형 O(N) 확장
|
|
- 완벽한 회상을 위해 전체 트랜스크립트 보존
|
|
|
|
**주의사항**: 지연 시간 추가 (관찰 생성당 60-90초), 여전히 실험 단계.
|
|
|
|
자세한 내용은 [베타 기능 문서](https://docs.claude-mem.ai/beta-features)를 참조하세요.
|
|
|
|
---
|
|
|
|
## 새로운 기능
|
|
|
|
**v6.4.9 - 컨텍스트 설정:**
|
|
- 컨텍스트 주입에 대한 세밀한 제어를 위한 11개의 새로운 설정
|
|
- 토큰 경제성 표시, 유형/개념별 관찰 내용 필터링 구성
|
|
- 관찰 내용 수 및 표시할 필드 제어
|
|
|
|
**v6.4.0 - 이중 태그 프라이버시 시스템:**
|
|
- 사용자 제어 프라이버시를 위한 `<private>` 태그 - 민감한 콘텐츠를 래핑하여 저장소에서 제외
|
|
- 시스템 레벨 `<claude-mem-context>` 태그는 재귀적 관찰 저장 방지
|
|
- 엣지 처리로 프라이빗 콘텐츠가 데이터베이스에 도달하지 않도록 보장
|
|
|
|
**v6.3.0 - 버전 채널:**
|
|
- 웹 뷰어 UI에서 안정 버전과 베타 버전 전환
|
|
- 수동 git 작업 없이 Endless Mode와 같은 실험적 기능 시도
|
|
|
|
**이전 하이라이트:**
|
|
- **v6.0.0**: 주요 세션 관리 및 트랜스크립트 처리 개선
|
|
- **v5.5.0**: 100% 효과율을 갖춘 mem-search 스킬 향상
|
|
- **v5.4.0**: 스킬 기반 검색 아키텍처 (세션당 ~2,250 토큰 절약)
|
|
- **v5.1.0**: 실시간 업데이트를 갖춘 웹 기반 뷰어 UI
|
|
- **v5.0.0**: Chroma 벡터 데이터베이스를 사용한 하이브리드 검색
|
|
|
|
전체 버전 기록은 [CHANGELOG.md](CHANGELOG.md)를 참조하세요.
|
|
|
|
---
|
|
|
|
## 시스템 요구사항
|
|
|
|
- **Node.js**: 18.0.0 이상
|
|
- **Claude Code**: 플러그인 지원이 포함된 최신 버전
|
|
- **PM2**: 프로세스 매니저 (번들 포함 - 전역 설치 불필요)
|
|
- **SQLite 3**: 지속적 저장을 위해 (번들 포함)
|
|
|
|
---
|
|
|
|
## 주요 이점
|
|
|
|
### 점진적 공개 컨텍스트
|
|
|
|
- **계층화된 메모리 검색**은 인간의 기억 패턴을 반영
|
|
- **레이어 1 (인덱스)**: 세션 시작 시 토큰 비용과 함께 존재하는 관찰 내용 확인
|
|
- **레이어 2 (세부사항)**: MCP 검색을 통해 필요에 따라 전체 내러티브 가져오기
|
|
- **레이어 3 (완벽한 회상)**: 소스 코드 및 원본 트랜스크립트 액세스
|
|
- **스마트 의사결정**: 토큰 수는 Claude가 세부 정보 가져오기 또는 코드 읽기 중에서 선택하는 데 도움
|
|
- **유형 표시기**: 시각적 단서 (🔴 중요, 🟤 결정, 🔵 정보) 관찰 내용의 중요도 강조
|
|
|
|
### 자동 메모리
|
|
|
|
- Claude 시작 시 자동으로 컨텍스트 주입
|
|
- 수동 명령이나 구성 불필요
|
|
- 백그라운드에서 투명하게 작동
|
|
|
|
### 전체 기록 검색
|
|
|
|
- 모든 세션 및 관찰 내용에 걸쳐 검색
|
|
- 빠른 쿼리를 위한 FTS5 전문 검색
|
|
- 인용은 특정 관찰 내용으로 다시 연결
|
|
|
|
### 구조화된 관찰 내용
|
|
|
|
- AI 기반 학습 내용 추출
|
|
- 유형별 분류 (decision, bugfix, feature 등)
|
|
- 개념 및 파일 참조로 태그 지정
|
|
|
|
### 다중 프롬프트 세션
|
|
|
|
- 세션은 여러 사용자 프롬프트에 걸쳐 진행
|
|
- `/clear` 명령 간 컨텍스트 보존
|
|
- 전체 대화 스레드 추적
|
|
|
|
---
|
|
|
|
## 설정
|
|
|
|
설정은 `~/.claude-mem/settings.json`에서 관리됩니다. 파일은 첫 실행 시 기본값으로 자동 생성됩니다.
|
|
|
|
**사용 가능한 설정:**
|
|
|
|
| 설정 | 기본값 | 설명 |
|
|
|---------|---------|-------------|
|
|
| `CLAUDE_MEM_MODEL` | `claude-haiku-4-5` | 관찰 내용용 AI 모델 |
|
|
| `CLAUDE_MEM_WORKER_PORT` | `37777` | 워커 서비스 포트 |
|
|
| `CLAUDE_MEM_DATA_DIR` | `~/.claude-mem` | 데이터 디렉토리 위치 |
|
|
| `CLAUDE_MEM_LOG_LEVEL` | `INFO` | 로그 상세 수준 (DEBUG, INFO, WARN, ERROR, SILENT) |
|
|
| `CLAUDE_MEM_PYTHON_VERSION` | `3.13` | chroma-mcp용 Python 버전 |
|
|
| `CLAUDE_CODE_PATH` | _(자동 감지)_ | Claude 실행 파일 경로 |
|
|
| `CLAUDE_MEM_CONTEXT_OBSERVATIONS` | `50` | SessionStart 시 주입할 관찰 내용 수 |
|
|
|
|
**설정 관리:**
|
|
|
|
```bash
|
|
# CLI 헬퍼를 통한 설정 편집
|
|
./claude-mem-settings.sh
|
|
|
|
# 또는 직접 편집
|
|
nano ~/.claude-mem/settings.json
|
|
|
|
# 현재 설정 보기
|
|
curl http://localhost:37777/api/settings
|
|
```
|
|
|
|
**설정 파일 형식:**
|
|
|
|
```json
|
|
{
|
|
"CLAUDE_MEM_MODEL": "claude-haiku-4-5",
|
|
"CLAUDE_MEM_WORKER_PORT": "37777",
|
|
"CLAUDE_MEM_CONTEXT_OBSERVATIONS": "50"
|
|
}
|
|
```
|
|
|
|
자세한 내용은 [설정 가이드](https://docs.claude-mem.ai/configuration)를 참조하세요.
|
|
|
|
---
|
|
|
|
## 개발
|
|
|
|
```bash
|
|
# 복제 및 빌드
|
|
git clone https://github.com/thedotmack/claude-mem.git
|
|
cd claude-mem
|
|
npm install
|
|
npm run build
|
|
|
|
# 테스트 실행
|
|
npm test
|
|
|
|
# 워커 시작
|
|
npm run worker:start
|
|
|
|
# 로그 보기
|
|
npm run worker:logs
|
|
```
|
|
|
|
자세한 지침은 [개발 가이드](https://docs.claude-mem.ai/development)를 참조하세요.
|
|
|
|
---
|
|
|
|
## 문제 해결
|
|
|
|
**빠른 진단:**
|
|
|
|
문제가 발생하면 Claude에게 문제를 설명하면 troubleshoot 스킬이 자동으로 활성화되어 진단하고 수정 방법을 제공합니다.
|
|
|
|
**일반적인 문제:**
|
|
|
|
- 워커가 시작되지 않음 → `npm run worker:restart`
|
|
- 컨텍스트가 나타나지 않음 → `npm run test:context`
|
|
- 데이터베이스 문제 → `sqlite3 ~/.claude-mem/claude-mem.db "PRAGMA integrity_check;"`
|
|
- 검색이 작동하지 않음 → FTS5 테이블 존재 확인
|
|
|
|
전체 솔루션은 [문제 해결 가이드](https://docs.claude-mem.ai/troubleshooting)를 참조하세요.
|
|
|
|
---
|
|
|
|
## 기여
|
|
|
|
기여를 환영합니다! 다음을 수행해 주세요:
|
|
|
|
1. 저장소 포크
|
|
2. 기능 브랜치 생성
|
|
3. 테스트와 함께 변경 사항 작성
|
|
4. 문서 업데이트
|
|
5. Pull Request 제출
|
|
|
|
기여 워크플로는 [개발 가이드](https://docs.claude-mem.ai/development)를 참조하세요.
|
|
|
|
---
|
|
|
|
## 라이선스
|
|
|
|
이 프로젝트는 **GNU Affero General Public License v3.0** (AGPL-3.0)에 따라 라이선스가 부여됩니다.
|
|
|
|
Copyright (C) 2025 Alex Newman (@thedotmack). All rights reserved.
|
|
|
|
전체 세부 정보는 [LICENSE](LICENSE) 파일을 참조하세요.
|
|
|
|
**의미:**
|
|
|
|
- 이 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있습니다
|
|
- 수정하여 네트워크 서버에 배포하는 경우 소스 코드를 제공해야 합니다
|
|
- 파생 저작물도 AGPL-3.0에 따라 라이선스가 부여되어야 합니다
|
|
- 이 소프트웨어에 대한 보증은 없습니다
|
|
|
|
---
|
|
|
|
## 지원
|
|
|
|
- **문서**: [docs/](docs/)
|
|
- **이슈**: [GitHub Issues](https://github.com/thedotmack/claude-mem/issues)
|
|
- **저장소**: [github.com/thedotmack/claude-mem](https://github.com/thedotmack/claude-mem)
|
|
- **제작자**: Alex Newman ([@thedotmack](https://github.com/thedotmack))
|
|
|
|
---
|
|
|
|
**Claude Agent SDK로 제작** | **Claude Code 기반** | **TypeScript로 제작**
|
|
|
|
--- |