Skip to content

About

Local-first Markdown notes and todos desktop app (Tauri 2 + React). Your .md files stay the source of truth.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Ticksidian

로컬 Markdown 파일을 원본으로 쓰면서, 같은 노트를 바로 실행 항목(할 일)으로 이어 주는 데스크톱 노트 앱입니다. 옵시디언처럼 폴더 속 .md 파일을 그대로 열고, 할 일은 type: "todo" 머리말(frontmatter)을 단 보통의 .md 파일로 저장합니다.

상태: 초기 개발 단계의 공개 스냅샷입니다. 동작·문서가 예고 없이 바뀔 수 있고, 현재 macOS에서만 확인했습니다.

무엇을 하나요

  • 폴더(볼트)를 고르면 그 안의 .md 파일을 노트 목록으로 보여 주고, 블록 편집기(BlockNote)로 편집합니다.
  • 노트 저장은 원자적 쓰기이며, 저장 직전에 디스크에서 파일이 바뀌었는지 확인해 외부 수정을 덮어쓰지 않습니다.
  • [[위키링크]]와 백링크, 태그, 할 일(마감일·우선순위·완료), 이미지 붙여넣기, 그림(.excalidraw) 편집을 지원합니다.
  • 정적 HTML 내보내기, 로컬 검색, 선택 기능으로 Gemini 기반 검색/정리(API 키 필요)가 있습니다.
  • 원본은 항상 로컬 .md 파일입니다. 서버·인덱스(SQLite)는 캐시일 뿐 원본이 아닙니다.

구성

폴더 내용
app/ React 18 + TypeScript + Vite + Tailwind 4 프런트엔드
src-tauri/ Tauri 2 + Rust 데스크톱 셸(파일 접근·감시·키체인)
server/ 개발용 인증 서버(선택, 개발 전용)
scripts/ 로컬 검색 색인(RAG)·가져오기 도구

빌드

필요한 것: Node.js ^20.19.0 또는 >=22.12.0(잠금 파일의 Vite 8 engines 기준, 개발 환경은 Node 24), Rust 안정 버전(stable), Tauri 2 사전 준비물.

npm ci                      # 루트 도구(Playwright, sqlite-vec)
npm --prefix app ci         # 프런트엔드 의존성
npm --prefix app run build  # 프런트엔드 빌드 (tsc -b && vite build)
cd src-tauri && cargo build # Rust 셸 빌드

개발 창 실행은 npm run app:dev(Tauri CLI가 필요합니다: cargo install tauri-cli --version "^2").

시험

  • 프런트엔드 단위 시험: npm --prefix app run 으로 qa:* 스크립트 목록을 확인합니다.
  • 브라우저 시험은 app/tests/browser 의 Playwright 시험입니다.
  • 브라우저 시험은 파일 권한·키체인 같은 실제 데스크톱 동작을 검증하지 못합니다. 그 부분은 Tauri 창에서 확인해야 합니다.

알려진 제한

  • 비밀 폴더(보안 메모 뷰어, Gemini 키 조회): 앱의 보안 메모 화면에서 비밀 폴더 고르기로 직접 폴더를 고릅니다. 고르기 전에는 안내만 보이고 아무 폴더도 읽지 않습니다. 설정은 ~/.ticksidian-desktop/secrets-config.json에 저장되며, 루트·홈 폴더·홈의 상위·노트 볼트를 포함하거나 그 안쪽인 폴더·앱 설정 폴더는 선택할 수 없습니다. 설정 파일을 직접 고쳐도 같은 검사를 다시 거치고, 허용되지 않으면 이유를 보이고 무시합니다.
  • Gemini 키: 환경 변수 GEMINI_API_KEY를 먼저 쓰고, 없으면 <비밀 폴더>/gemini.env의 GEMINI_API_KEY= 줄을 읽습니다. 다른 파일 이름은 설정 파일의 geminiKeyRelPath(비밀 폴더 기준 상대경로)로 바꿉니다.
  • 노트 볼트: 루트·홈 폴더·홈의 상위·앱 설정 폴더·설정된 비밀 폴더와 겹치는 폴더는 볼트로 등록되지 않고 이유가 화면에 보입니다. 홈 아래 일반 폴더(예: ~/Documents/내볼트)는 됩니다. 이전에 홈 같은 넓은 폴더를 볼트로 쓰던 경우 다음 시작에 열리지 않고 볼트 선택 화면으로 갑니다.
  • 한계: 앱이 노트 볼트로 등록한 폴더 안의 파일은 일반 파일 명령이 읽을 수 있으므로 비밀 파일을 볼트 안에 두지 마세요. 앱 설정 폴더는 일반 파일 명령에서 보호되지만, 보호는 앱의 명령 검사에 의한 것이며 같은 컴퓨터의 다른 프로그램이 파일을 직접 바꾸는 것까지 막지는 않습니다. 등록 검사와 실제 사용 사이에 다른 프로그램이 링크를 바꾸는 경우도 막지 못합니다.
  • 서버 동기화는 구현되어 있지 않습니다(개발용 인증 서버만 있음).

라이선스

Apache-2.0. LICENSE와 NOTICE를 보세요. 기여 방법은 CONTRIBUTING.md에 있습니다.

About

Local-first Markdown notes and todos desktop app (Tauri 2 + React). Your .md files stay the source of truth.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages