**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๊ฐ ๊ณต์ ํ๋ ๋จ์ผ ์ง์ค์ ์์ฒ
โ
๋๋ถ๋ถ์ ์์คํ :
- ์ธ๊ฐ โ ํ๋ คํ ๋์๋ณด๋, ๊ทธ๋ํ, UI
- AI โ ๋ฐ์ดํฐ๋ฒ ์ด์ค, API, JSON
๊ฒฐ๊ณผ:
- ๋ฐ์ดํฐ ์ค๋ณต
- ๋๊ธฐํ ๋ฌธ์
- ์ง์ค์ ์์ฒ ๋ถ๋ช ํ
- AI ์ ๊ทผ ์ API ๋น์ฉ ๋ฐ์
๋ค์ํ ๋ฐ์ดํฐ ์์ค
โ Memacs Modules
ํต์ผ๋ Org ํ์ผ (~/org/memacs/*.org)
โโ (์๋ฐฉํฅ)
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ ์ธ๊ฐ โ AI โ
โ Org-agenda โ File Read โ
โ (์๊ฐํ) โ (Context) โ
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโ
**ํต์ฌ**:
- ์ธ๊ฐ: Emacs Org-agenda๋ก ์๊ฐํ
- AI: ๋์ผํ Org ํ์ผ์ context๋ก ์ฝ์
- ํ์: ํ ์คํธ (ํฌ๋ช ), Git (๋ฒ์ ๊ด๋ฆฌ), Org-mode (ํ์คํ)
โ
์ด ํ๋ก์ ํธ๋ **โ์๊ฐ๊ณผ์ ์ ์๋ฐฉโ** ์ํ๊ณ์ ํต์ฌ ๋ ์ด์ด์ ๋๋ค.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 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 ์ํ๊ณ:
- nixos-config - ์ฌํ ๊ฐ๋ฅํ OS ํ๊ฒฝ
- doomemacs-config - ํฐ๋ฏธ๋ ์ต์ ํ Emacs
- emacs-fulllab-config - ์คํ ํ๊ฒฝ
- claude-config - AI ๋ฉ๋ชจ๋ฆฌ ์์คํ
- zotero-config - AI ์ฟผ๋ฆฌ ๊ฐ๋ฅํ ์์ง
- โ memacs-config - ์ธ๊ฐ-AI ๊ณต์ ์ธํฐํ์ด์ค โ
- meta-config - ๊ณ์ธต์ ์์ด์ ํธ ์ํคํ ์ฒ
๋ฐ์ดํฐ ์์ค:
- self-tracking-data - 3-5๋ ์ถ์ ํจํด (Samsung Health, atimelogger)
โ
โConsider a future device for individual use, which is a sort of mechanized private file and libraryโ
**๋น์ **:
- ๊ฐ์ธ์ ๋ชจ๋ ๊ธฐ๋ก์ ํ๊ณณ์
- ์๊ฐ ๊ธฐ๋ฐ ํ์
- ์ฐ์์ ์ฐ๊ฒฐ (associative trails)
- ํฌ๋ช ํ ์ ์ด
โ Memex์ ์คํ:
- Org-mode = ๊ตฌ์กฐํ๋ ํ ์คํธ
- Git = ๋ฒ์ ๊ด๋ฆฌ
- Emacs = ํ์ฅ ๊ฐ๋ฅํ ํ๊ฒฝ
- ํ์์คํฌํ = ์๊ฐ ๊ธฐ๋ฐ ํตํฉ
โ 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 โ ์๋ฉด-์์ฐ์ฑ โ
โ โ ์๊ด๊ด๊ณ โ
โโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโ
๊ธฐ์กด ๋ชจ๋ (novoid/Memacs):
memacs_git.py: Git commitsmemacs_photos.py: Photos with EXIFmemacs_ical.py: Calendar eventsmemacs_sms.py: SMS messagesmemacs_rss.py: RSS feedsmemacs_firefox.py: Browser historymemacs_twitter.py: Tweetsmemacs_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.orgmemacs_zotero.py: Bibliography and reading history
โ
Notion, Obsidian, Roam Research:
- โ ๋ฐ์ดํฐ: ํด๋ผ์ฐ๋ ๋๋ ํ์ ํฌ๋งท
- โ AI ์ ๊ทผ: API ๋น์ฉ ๋๋ ๋ถ๊ฐ๋ฅ
- โ ํต์ : ์ ํ์
Google Calendar, Todoist, etc:
- โ ๋ฐ์ดํฐ: ๋ฒค๋ ๋ฝ์ธ
- โ AI ์ ๊ทผ: OAuth + API ์๊ธ
- โ ํต์ : ๋ถํฌ๋ช
Self-tracking ์ฑ๋ค:
- โ ๋ฐ์ดํฐ: ์ฑ๋ง๋ค ๊ณ ๋ฆฝ๋จ
- โ ํตํฉ: ์๋ export/import
- โ AI ์ ๊ทผ: ๊ฑฐ์ ๋ถ๊ฐ๋ฅ
ํฌ๋ช
์ฑ:
- ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ํ
์คํธ ํ์ผ
- Git์ผ๋ก ๋ฒ์ ๊ด๋ฆฌ
- ์จ๊น ์๋ Raw ๋ฐ์ดํฐ
- Org-mode = ์ธ๊ฐ์ด ์ฝ์ ์ ์๋ ํ์
ํต์ ์ฑ:
- ์์ ํ ์์ ๊ถ
- ์ธ๋ถ ์๋น์ค ๋ถํ์
- ์ด์์ฑ 100%
- self-hosting ๊ฐ๋ฅ
AI_์ ๊ทผ์ฑ:
- API ๋น์ฉ 0์
- ๋ฌด์ ํ ์ปจํ
์คํธ
- ํ์คํ๋ ํ์ (Org-mode)
- Life-Context Agent๊ฐ ์ง์ ์ฝ์
ํตํฉ์ฑ:
- ๋จ์ผ ํ์ (Org-mode)
- ์๊ฐ์ถ ๊ธฐ๋ฐ
- ์ฐ๊ด์ฑ (Tags, Properties)
- ๋ชจ๋ ๋ฐ์ดํฐ ์์ค ํตํฉโ
* 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:
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 โญโญ ํ๋ณต!
// 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 "์๋ฉด ๋ถ์กฑ ๊ฐ์ง. ํ๋ก์ ํธ ์ผ์ ์กฐ์ ๊ถ์ฅ";
}โ
# 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# 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;; ~/.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")))# ~/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 ๋ฒ์ ๊ด๋ฆฌ
โ
- [ ]
memacs_atimelogger.py - [ ]
memacs_samsung_health.py - [ ]
memacs_diary_clocks.py - [ ]
memacs_zotero.py
- [ ] Org ํ์ผ ํ์ ๊ตฌํ
- [ ] ์๋ฉด-์์ฐ์ฑ ํจํด ๋ถ์
- [ ] ์๊ฐ ํ ๋น ์ต์ ํ ์๊ณ ๋ฆฌ์ฆ
- [ ] Meta Agent ํตํฉ
- [ ] meta-config A2A ํ๋กํ ์ฝ
- [ ] Family-Config Domain Agent
- [ ] ์ค์๊ฐ ์ ๋ฐ์ดํธ (inotify)
- [ ] Org-agenda custom views
- [ ] ์ ๊ท ๋ชจ๋ ๋ฌธ์ํ
- [ ] ์ฌ์ฉ ๊ฐ์ด๋ (ํ๊ธ/์๋ฌธ)
- [ ] upstream PR (novoid/Memacs)
- [ ] ์ปค๋ฎค๋ํฐ ํผ๋๋ฐฑ ๋ฐ์
โ
- novoid/Memacs - Original Memacs project
- Memacs White Paper - Karl Voitโs dissertation
- meta-config - ๊ณ์ธต์ ์์ด์ ํธ ์ํคํ ์ฒ
- claude-config - AI ๋ฉ๋ชจ๋ฆฌ ์์คํ
- self-tracking-data - 3-5๋ ์ถ์ ํจํด
- acp.el by xenodium - ACP Client for Emacs
- agent-shell by xenodium - Agent UI
- ํฃโs ๋์งํธ๊ฐ๋ - 1,400+ org files
- Memex (1945) - Vannevar Bush
- โ์๊ฐ๊ณผ์ ์ ์๋ฐฉโ - ์ธ๊ฐ-AI ํ์ ์ฒ ํ
โ
- Original Memacs: GPLv3 (novoid/Memacs)
- This fork: GPLv3
- ์ ๊ท ๋ชจ๋: GPLv3
โ
**Junghan Kim** (junghanacs)
- Website: ํฃโs ๋์งํธ๊ฐ๋
- GitHub: @junghanacs
- Email: junghanacs@gmail.com
โ
- **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!
- Original Memacs README - ์๋ณธ ํ๋ก์ ํธ README