Skip to content

Modernized Memacs modules for life-context tracking. Extended with new modules (atimelogger, samsung_health) for comprehensive digital life visualization.

License

Notifications You must be signed in to change notification settings

junghan0611/memacs-config

 
 

Repository files navigation

Memacs-Config: 인간-AI 공유 인터페이스

Memacs-Config: 인간-AI 공유 인터페이스

**Fork from**: novoid/Memacs **목적**: Memex의 실현 - “텍스트 기반 프론트엔드” **철학**: “Single Source of Truth for Human and AI” **상태**: 🔬 ACTIVE DEVELOPMENT **업데이트**: 2025-10-15

“What were you doing on February 14th of 2007?”

Memacs의 원래 질문입니다.

하지만 2025년, 우리는 더 큰 질문을 던집니다:

“AI가 나를 이해하려면 무엇이 필요한가?”

답: 투명하고, 통제 가능하며, 표준화된 나의 삶의 기록 → Memacs = 인간과 AI가 공유하는 단일 진실의 원천

🎯 이 프로젝트의 존재 이유

문제: 인간과 AI의 인터페이스 불일치

대부분의 시스템:

  • 인간 → 화려한 대시보드, 그래프, UI
  • AI → 데이터베이스, API, JSON

결과:

  • 데이터 중복
  • 동기화 문제
  • 진실의 원천 불명확
  • AI 접근 시 API 비용 발생

해결: Memacs = 단일 진실의 원천

다양한 데이터 소스
    ↓ Memacs Modules
통일된 Org 파일 (~/org/memacs/*.org)
    ↓↑ (양방향)
┌──────────────┬──────────────┐
│    인간      │      AI      │
│  Org-agenda  │  File Read   │
│  (시각화)    │  (Context)   │
└──────────────┴──────────────┘

**핵심**:

  • 인간: Emacs Org-agenda로 시각화
  • AI: 동일한 Org 파일을 context로 읽음
  • 형식: 텍스트 (투명), Git (버전 관리), Org-mode (표준화)

🌟 완전한 맥락: -config 생태계에서의 위치

이 프로젝트는 **”시간과정신의방”** 생태계의 핵심 레이어입니다.

전체 아키텍처

┌─────────────────────────────────────────────────┐
│  Layer 7: Knowledge Publishing                  │
│  - notes.junghanacs.com                         │
└─────────────────────────────────────────────────┘
                     ↑
┌─────────────────────────────────────────────────┐
│  Layer 6: Agent Orchestration (meta-config)     │
│  - Meta Agent ↔ Domain Agents                   │
└─────────────────────────────────────────────────┘
                     ↑↓
┌─────────────────────────────────────────────────┐
│  Layer 5: Human-AI Shared Interface (THIS!)     │
│  ★ memacs-config = Memex의 실현 ★              │
│                                                 │
│  역할: Universal Translator                     │
│  - 모든 데이터 소스 → Org-mode 통일           │
│  - 시간 기반 통합 (타임스탬프)                 │
│  - 투명성 + 통제성 + AI 접근성                 │
└─────────────────────────────────────────────────┘
                     ↑
┌─────────────────────────────────────────────────┐
│  Layer 4: AI Agent Memory (claude-config)       │
└─────────────────────────────────────────────────┘
                     ↑
┌─────────────────────────────────────────────────┐
│  Layer 3: Knowledge Management                  │
│  - Emacs/Org-mode                               │
└─────────────────────────────────────────────────┘
                     ↑
┌─────────────────────────────────────────────────┐
│  Layer 2: Development Environment               │
│  - doomemacs-config                             │
└─────────────────────────────────────────────────┘
                     ↑
┌─────────────────────────────────────────────────┐
│  Layer 1: Infrastructure (nixos-config)         │
└─────────────────────────────────────────────────┘

관련 프로젝트들

-config 생태계:

  1. nixos-config - 재현 가능한 OS 환경
  2. doomemacs-config - 터미널 최적화 Emacs
  3. emacs-fulllab-config - 실험 환경
  4. claude-config - AI 메모리 시스템
  5. zotero-config - AI 쿼리 가능한 서지
  6. memacs-config - 인간-AI 공유 인터페이스 ★
  7. meta-config - 계층적 에이전트 아키텍처

데이터 소스:

💡 철학적 기반: Memex → Memacs → AI 시대

Memex (1945, Vannevar Bush)

“Consider a future device for individual use, which is a sort of mechanized private file and library”

**비전**:

  • 개인의 모든 기록을 한곳에
  • 시간 기반 탐색
  • 연상적 연결 (associative trails)
  • 투명한 제어

Memacs (2012, Karl Voit)

→ Memex의 실현:

  • Org-mode = 구조화된 텍스트
  • Git = 버전 관리
  • Emacs = 확장 가능한 환경
  • 타임스탬프 = 시간 기반 통합

AI 시대 (2025, This Project)

→ Memacs + AI Agent:

  • Org-mode = 인간과 AI의 공통 언어
  • 단일 진실의 원천 (Single Source of Truth)
  • 투명성 (텍스트 파일)
  • 통제성 (Git, 외부 서비스 불필요)
  • AI 접근성 (API 비용 0원)

🏗️ 아키텍처

데이터 흐름

Input (다양한 소스):
├─ self-tracking-data/
│  ├─ Samsung Health (수면, 운동, HRV)
│  └─ atimelogger (시간 추적 DB)
├─ ~/sync/org/
│  ├─ diary.org (CLOCK 엔트리)
│  └─ journal/ (일일 노트)
├─ Git repositories
├─ Photos (EXIF 타임스탬프)
└─ Zotero (읽기 기록)

        ↓ Memacs Modules (Python)

Output (통일된 Org):
~/org/memacs/
├─ sleep.org          (수면 데이터)
├─ timelog.org        (시간 추적)
├─ work-sessions.org  (딥워크 세션)
├─ git.org            (커밋 기록)
├─ photos.org         (사진 타임라인)
└─ reading.org        (독서 기록)

        ↓↑ (양방향 참조)

┌─────────────────┬─────────────────┐
│  Human          │  AI             │
│                 │                 │
│  Emacs          │  Life-Context   │
│  Org-agenda     │  Agent          │
│                 │                 │
│  C-c a a        │  reads:         │
│  → Week view    │  ~/org/memacs/  │
│                 │                 │
│  투명한         │  패턴 분석:     │
│  Raw Dashboard  │  수면-생산성    │
│                 │  상관관계       │
└─────────────────┴─────────────────┘

Memacs 모듈 (기존 + 신규)

기존 모듈 (novoid/Memacs):

  • memacs_git.py: Git commits
  • memacs_photos.py: Photos with EXIF
  • memacs_ical.py: Calendar events
  • memacs_sms.py: SMS messages
  • memacs_rss.py: RSS feeds
  • memacs_firefox.py: Browser history
  • memacs_twitter.py: Tweets
  • memacs_lastfm.py: Music listening

신규 모듈 (이 프로젝트에서 추가):

  • memacs_atimelogger.py: Time tracking (atimelogger DB)
  • memacs_samsung_health.py: Sleep, HRV, exercise (Samsung Health CSV)
  • memacs_diary_clocks.py: CLOCK entries from diary.org
  • memacs_zotero.py: Bibliography and reading history

🔥 왜 이것이 혁명적인가?

기존 시스템들의 한계

Notion, Obsidian, Roam Research:

  • ❌ 데이터: 클라우드 또는 폐쇄 포맷
  • ❌ AI 접근: API 비용 또는 불가능
  • ❌ 통제: 제한적

Google Calendar, Todoist, etc:

  • ❌ 데이터: 벤더 락인
  • ❌ AI 접근: OAuth + API 요금
  • ❌ 통제: 불투명

Self-tracking 앱들:

  • ❌ 데이터: 앱마다 고립됨
  • ❌ 통합: 수동 export/import
  • ❌ AI 접근: 거의 불가능

Memacs의 혁명

투명성:
  - 모든 데이터가 텍스트 파일
  - Git으로 버전 관리
  - 숨김 없는 Raw 데이터
  - Org-mode = 인간이 읽을 수 있는 형식

통제성:
  - 완전한 소유권
  - 외부 서비스 불필요
  - 이식성 100%
  - self-hosting 가능

AI_접근성:
  - API 비용 0원
  - 무제한 컨텍스트
  - 표준화된 형식 (Org-mode)
  - Life-Context Agent가 직접 읽음

통합성:
  - 단일 형식 (Org-mode)
  - 시간축 기반
  - 연관성 (Tags, Properties)
  - 모든 데이터 소스 통합

🎨 구체적 예시

Org 파일 형식

* 2025-10-15 화요일
** [2025-10-15 화 23:30]--[2025-10-16 수 07:15] 수면 😴
   :PROPERTIES:
   :ID:       sleep_20251015
   :DURATION: 7.75h
   :QUALITY:  85%
   :DEEP_SLEEP: 2.1h
   :REM_SLEEP: 1.8h
   :LIGHT_SLEEP: 3.85h
   :SOURCE:   Samsung Health
   :END:

** 09:00-11:30 DEEPWORK 🎯
   :PROPERTIES:
   :ID:       timelog_20251015_01
   :CATEGORY: work
   :DURATION: 2.5h
   :PROJECT:  Family-Config
   :ENERGY:   high
   :SOURCE:   atimelogger
   :END:

** 14:00-15:45 Reading 📚
   :PROPERTIES:
   :ID:       timelog_20251015_02
   :CATEGORY: learning
   :DURATION: 1.75h
   :BOOK:     [[zotero:bush1945memex][As We May Think]]
   :SOURCE:   atimelogger + Zotero
   :END:

인간이 보는 것 (Org-agenda)

Week-agenda (W42):
월요일      _______________________________________________________________
  08:30...... TODO Family-Config A2A Server 구현
  09:00-11:30 DEEPWORK 🎯 (Family-Config)
  23:30...... [수면] 7.75h ⭐ 목표 달성!
  
화요일      _______________________________________________________________
  09:00-11:30 DEEPWORK 🎯 (memacs-config README)
  14:00-15:45 Reading 📚 (Vannevar Bush)
  23:45...... [수면] 8.2h ⭐⭐ 회복!

AI가 보는 것 (Life-Context Agent)

// Life-Context Agent reads:
const sleepData = parseOrgFile('~/org/memacs/sleep.org');
const timelogData = parseOrgFile('~/org/memacs/timelog.org');

// 분석:
const avg_sleep = calculateAverage(sleepData, 7); // 최근 7일
// → 7.2시간 (양호!)

const deepwork_pattern = analyzePattern(timelogData);
// → 수면 > 7h일 때 딥워크 4.2시간
// → 수면 < 6h일 때 딥워크 2.1시간
// → 상관계수: 0.78 (강한 양의 상관관계)

// 제안:
if (avg_sleep < 6.5) {
  return "수면 부족 감지. 프로젝트 일정 조정 권장";
}

🚀 시작하기

1. 설치

# Clone this repository
git clone https://github.com/junghan0611/memacs-config.git ~/repos/gh/memacs-config
cd ~/repos/gh/memacs-config

# Python 3 필수
python3 -m venv venv
source venv/bin/activate

# 의존성 설치
pip install -r requirements.txt

2. 신규 모듈 테스트 (개발 중)

# atimelogger
python3 memacs/atimelogger.py \
  -d ~/repos/gh/self-tracking-data/atimelogger/database.db3 \
  -o ~/org/memacs/timelog.org

# Samsung Health
python3 memacs/samsung_health.py \
  -f ~/repos/gh/self-tracking-data/samsunghealth_*/com.samsung.shealth.sleep.*.csv \
  -o ~/org/memacs/sleep.org

# diary.org CLOCK entries
python3 memacs/diary_clocks.py \
  -f ~/sync/org/20220101T010100--diary.org \
  -o ~/org/memacs/work-sessions.org

3. Org-agenda 설정

;; ~/.doom.d/config.el 또는 ~/.emacs.d/init.el

(setq org-agenda-files
      '("~/org/"
        "~/org/journal/"
        "~/org/memacs/"))  ; ← Memacs 파일 추가!

;; Custom agenda view: Life Overview
(add-to-list 'org-agenda-custom-commands
  '("l" "Life Overview"
    ((agenda "" ((org-agenda-span 7)))      ; 이번 주
     (tags "DEEPWORK")                       ; 딥워크 세션
     (tags "sleep")                          ; 수면 기록
     (todo "TODO"))))                        ; 할 일

;; 키바인딩
(global-set-key (kbd "C-c l") 
  (lambda () (interactive) (org-agenda nil "l")))

4. 일일 업데이트 (Cron)

# ~/org/memacs/update-all.sh
#!/bin/bash

cd ~/repos/gh/memacs-config
source venv/bin/activate

# 모든 모듈 실행
python3 memacs/atimelogger.py -d ~/repos/gh/self-tracking-data/atimelogger/database.db3 -o ~/org/memacs/timelog.org
python3 memacs/samsung_health.py -f ~/repos/gh/self-tracking-data/samsunghealth_*/sleep.csv -o ~/org/memacs/sleep.org
python3 memacs/diary_clocks.py -f ~/sync/org/20220101T010100--diary.org -o ~/org/memacs/work-sessions.org

# Git commit
cd ~/org/memacs
git add -A
git commit -m "Update memacs data $(date +%Y-%m-%d)"

echo "Memacs data updated!"
# Cron 설정 (매일 오전 6시)
# crontab -e
0 6 * * * /home/goqual/org/memacs/update-all.sh

📊 실제 사용 시나리오

시나리오: “최근 수면 패턴 분석해서 프로젝트 일정 조정해줘”

1. User (Emacs agent-shell):
   "최근 수면 패턴 분석해서 프로젝트 일정 조정해줘"

2. Meta Agent (Claude Code):
   - Intent: "수면 패턴 분석" + "일정 조정"
   - 판단: Life-Context + Personal 도메인

3. Life-Context Agent:
   reads ~/org/memacs/sleep.org:
   - 최근 7일 평균 수면: 6.2시간 (부족!)
   - 금요일 수면: 5.1시간 (최악)
   
   reads ~/org/memacs/timelog.org:
   - 딥워크 시간: 월~목 4시간, 금 1.5시간
   
   분석:
   - 상관관계: 수면 < 6h → 딥워크 50% 감소

4. Meta Agent:
   - 현재 진행 중: Family-Config 구현
   - 제안: 금요일 → 월요일 이동

5. Personal Agent:
   - ~/org/projects/ 수정
   - Git commit

6. Response (Emacs Org-agenda):
   ✅ 일정 조정 완료
   
   분석:
   - 최근 7일 평균 수면 6.2시간 (목표 7.5h)
   - 수면 부족 시 딥워크 50% 감소 확인
   
   조치:
   - Family-Config 작업: 금→월 이동
   - 제안: 주말 충분한 휴식

**핵심**:

  • 사용자는 한 번만 요청
  • AI는 Memacs에서 모든 컨텍스트 자동 확인
  • 결과는 Org-agenda에서 투명하게 확인
  • 모든 것이 텍스트 파일, Git 버전 관리

🎯 로드맵

Phase 1: 신규 모듈 개발 (2025 Q4)

  • [ ] memacs_atimelogger.py
  • [ ] memacs_samsung_health.py
  • [ ] memacs_diary_clocks.py
  • [ ] memacs_zotero.py

Phase 2: Life-Context Agent 연동 (2025 Q4)

  • [ ] Org 파일 파서 구현
  • [ ] 수면-생산성 패턴 분석
  • [ ] 시간 할당 최적화 알고리즘
  • [ ] Meta Agent 통합

Phase 3: 생태계 통합 (2026 Q1)

  • [ ] meta-config A2A 프로토콜
  • [ ] Family-Config Domain Agent
  • [ ] 실시간 업데이트 (inotify)
  • [ ] Org-agenda custom views

Phase 4: 커뮤니티 (2026 Q2+)

  • [ ] 신규 모듈 문서화
  • [ ] 사용 가이드 (한글/영문)
  • [ ] upstream PR (novoid/Memacs)
  • [ ] 커뮤니티 피드백 반영

🔗 관련 링크

원본 프로젝트

-config 생태계

외부 참조

철학적 배경

  • 힣’s 디지털가든 - 1,400+ org files
  • Memex (1945) - Vannevar Bush
  • “시간과정신의방” - 인간-AI 협업 철학

📝 라이선스

  • Original Memacs: GPLv3 (novoid/Memacs)
  • This fork: GPLv3
  • 신규 모듈: GPLv3

👤 저자

**Junghan Kim** (junghanacs)

🙏 감사

  • **Karl Voit** (novoid) - Original Memacs creator
  • **Vannevar Bush** - Memex 비전 (1945)
  • **Álvaro Ramírez** (xenodium) - acp.el, agent-shell
  • **Org-mode Community** - 놀라운 도구

💭 마지막으로

“Memacs는 단순히 데이터를 Org-mode로 변환하는 도구가 아닙니다.

그것은 인간의 삶을 투명하게 기록하고, AI가 그 삶의 맥락을 이해할 수 있게 하며, 둘 사이의 진정한 협업을 가능하게 하는

**존재 대 존재의 인터페이스**입니다.”

— 힣 (Junghan), 2025-10-15

**상태**: 🔬 ACTIVE DEVELOPMENT **다음 업데이트**: memacs_atimelogger.py 구현 **기여 환영**: Issues and PRs welcome!

See Also

About

Modernized Memacs modules for life-context tracking. Extended with new modules (atimelogger, samsung_health) for comprehensive digital life visualization.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.6%
  • Shell 1.1%
  • Makefile 0.3%