Skip to content

Repository files navigation

회고 (Obsidian Journal)

A tiny native macOS menu bar app for a daily journaling ritual that writes straight into your Obsidian vault.

메뉴바에서 단축키 한 번으로 떠서, 오늘 하루·생각·감정을 적고 저장하면 오늘 날짜의 Obsidian 데일리 노트 # 잡생각 섹션에 바로 append 됩니다. 마찰을 0에 가깝게 만들어 "매일 10분" 을 습관으로 만드는 게 목표입니다.

순수 SwiftUI + AppKit, 외부 의존성 0. 빌드 산출물은 단일 .app 번들 하나입니다.

회고 — 메뉴바 일기 팝오버

다운로드 (빌드 없이 설치)

개발 환경 없이 바로 쓰려면 → 최신 릴리스에서 .zip 다운로드

  1. zip 압축 해제 → 회고.app응용 프로그램 으로 드래그
  2. 처음 열 때 보안 경고가 뜨면: 시스템 설정 → 개인정보 보호 및 보안 → 아래로 스크롤 → "그래도 열기" (한 번만 하면 다음부터 그냥 열림)
  3. 메뉴바 🖊 또는 ⌥⌘J

⚠️ 아직 Apple 공증(notarization) 전이라 위 보안 승인 1회가 필요합니다. 개발자라면 아래 빌드 & 설치로 소스에서 바로 빌드하면 경고 없이 실행됩니다.

기능

  • 메뉴바 상주 (🖊) + 전역 단축키 ⌥⌘J — 어디서든 즉시 팝업
  • 매일 바뀌는 보조 질문(무시 가능), 기분 이모지 / 에너지 1–5 한 번 탭
  • 자유 일기 입력 → ⌘↵ 저장 후 자동 닫힘
  • 오늘 노트가 없으면 데일리 템플릿(# 팔로업 / # 일 / # 잡생각 / # 사이드)으로 자동 생성, 직전 데일리로 가는 🔗 ⟵ [[어제]] 링크까지 — Obsidian 그래프에 자연스럽게 연결
  • 항목마다 mood:: / energy:: 인라인 필드를 남겨 나중에 Dataview 차트로 추이 분석 가능
  • # 잡생각 외 다른 섹션은 절대 건드리지 않음 — 자동 데일리 노트 생성기와 함께 써도 충돌 없음
  • 연속기록(streak) + 최근 8주 히트맵 — vault의 mood:: 마커에서 도출(별도 상태 없음), 메뉴바 배지로 상시 표시
  • 스마트 저녁 알림 — 기본 21:00, 그날 이미 썼으면 스킵. 우클릭 메뉴에서 20/21/22시·끄기 선택
  • 단축키 인지⌥⌘J 를 팝오버·메뉴에 노출

저장 형식 예시:

# 잡생각
**14:30**  `mood:: 🙂` · `energy:: 4`
오늘은 메뉴바 앱을 만들었다. 생각보다 SwiftUI MenuBarExtra 없이도 깔끔하게 됐다.

요구사항

  • macOS 13 이상
  • 빌드: Xcode 또는 Swift toolchain (swift --version)

빌드 & 설치

# 1. 빌드 + ~/Applications/회고.app 로 패키징 (ad-hoc 서명 포함)
./package.sh

# 2. (선택) 로그인 시 자동 실행 등록 + 지금 실행
./autostart.sh

vault 경로 설정

앱은 다음 순서로 Obsidian vault 를 찾습니다:

  1. 환경변수 JOURNAL_VAULT
  2. 설정 파일 ~/.config/obsidian-journal/vault — vault 절대경로를 한 줄로 기록
  3. iCloud Obsidian 자동 탐지 (~/Library/Mobile Documents/iCloud~md~obsidian/Documents 아래 vault 가 하나면)

명시적으로 지정하려면:

mkdir -p ~/.config/obsidian-journal
printf '%s\n' "/path/to/your/Obsidian Vault" > ~/.config/obsidian-journal/vault

해석된 경로 확인:

~/Applications/회고.app/Contents/MacOS/ObsidianJournal --resolve

사용

  • 메뉴바 🖊 클릭 또는 ⌥⌘J
  • 기분·에너지 탭 → 일기 작성 → ⌘↵ 저장
  • 껐다면 다시 켜기: Spotlight 에서 회고, 또는 open ~/Applications/회고.app

제거

./autostart.sh off          # 자동 실행 해제 + 종료
rm -rf ~/Applications/회고.app
rm -f ~/Library/LaunchAgents/com.suyoung.obsidianjournal.plist

구조

파일 역할
Sources/ObsidianJournal/main.swift 부트스트랩 (--selftest / --resolve 플래그)
AppDelegate.swift 메뉴바 아이템 + 팝오버 + 전역 단축키(Carbon)
JournalView.swift SwiftUI 일기 입력 UI
JournalStore.swift vault 해석 + # 잡생각 append 로직
SelfTest.swift GUI 없이 쓰기 로직 검증 (--selftest)
package.sh / autostart.sh 빌드·패키징 / 자동 실행 등록
Sources/JournalCore/*.swift 테스트 가능한 순수 로직 (vault 해석·append·streak·알림 판정·설정)
Sources/ObsidianJournal/ReminderScheduler.swift 알림 권한 + 인앱 타이머

쓰기 로직 검증:

JOURNAL_VAULT=/tmp/journal-test .build/release/ObsidianJournal --selftest

전체 로직 테스트:

swift test

License

MIT

About

오늘 Obsidian 데일리 노트에 일기를 쓰는 macOS 메뉴바 앱 · A tiny macOS menu bar journaling app for Obsidian

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages