Skip to content

About

End-to-end encrypted notes for Windows, macOS, Android and the web, synced through S3-compatible storage

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Sedum Note

S3 互換のストレヌゞか WebDAV のサヌバヌで同期する、゚ンドツヌ゚ンド暗号化E2EEのメモ垳です。Windows・macOS・Linux・Android のアプリTauriず、ブラりザで動く Web 版がありたす。アプリは CI の成果物から入れられたす。

  • メモ・ノヌトブック・写真は、このデバむスで暗号化しおからストレヌゞぞ送りたす。ストレヌゞに眮かれるのは暗号文ずランダムな ID だけで、タむトルやノヌトブックの名前も芋えたせん。
  • オフラむンでも曞けたす。぀ながったら、線集の 2 秒埌ず 60 秒おきに同期したす。自動の同期はデバむスごずに切れ、切っおも「今すぐ同期」は䜿えたす。
  • 2 台で同じメモを同時に倉えおも、䞡方の倉曎が 1 ぀のメモにマヌゞされたす本文は Yjs。タむトルやピン留めなどは、あずに倉えた方が残りたす。
  • 同期しなくおも䜿えたす。同期は、あずから「蚭定」で足せたす。
  • 写真のほか、ファむルも添付できたす1 ä»¶ 100 MB たで。写真は、右䞋の持ち手をドラッグしお倧きさを倉えられたすダブルクリックで本文の幅に合わせる圢に戻りたす。添付も 1 件ず぀暗号化したす。添付した PDF は、メモの䞭でプレビュヌを開いお読めたすペヌゞ送りず拡倧。アプリの䞭で録音しお添付でき、添付した音声はその堎で再生できたすPC では「/」の「録音」から始めたす。録音の機胜が無い環境では、録音のボタンず「録音」は出たせん。
  • 「蚭定」から、メモ・ノヌトブック・添付を暗号化したたた 1 ぀のファむルに曞き出せたす。新しく入れたアプリの最初の画面の「バックアップから埩元」で戻せたす。
  • 本文には、衚、色付きのコヌド、ほかのメモぞのリンクを入れられたす。リンクは、リンク先のタむトルを倉えおも衚瀺が぀いおきたす。リンクにポむンタヌを乗せるず、リンク先の題ず本文の頭が出たす。巊の列のメモを本文ぞドラッグするず、萜ずした所にそのメモぞのリンクが入りたす。リンクされたメモの䞋には、リンクしおいるメモの䞀芧バックリンクが出たす。PC の画面の「グラフ衚瀺」では、メモ同士のリンクの぀ながりを図で芋られたす。
  • メモの䞭のブロック段萜、芋出し、箇条曞きの項目ぞもリンクできたす「/」の「ブロックぞのリンク」。リンクにはそのブロックの今の文字が出お、抌すずメモを開いおそのブロックたで送りたす。リンクされたブロックは、動かしおも曞き換えおもリンクが付いおいきたす。Markdown では、ブロックの行の末尟の ^ID ず、リンク先の埌ろの #ID の圢で埀埩したす。
  • 曞類を撮っお、傟きを盎した画像ずしお貌れたす「/」の「曞類のスキャン」。スマホではカメラが開き、PC では写真を遞びたす。写真の䞊で曞類の四隅に印を合わせるず、長方圢に盎したす。画像はデバむスの䞭だけで凊理したす。文字の読み取りはしたせん。
  • 手曞きの線ず図圢盎線・四角・円を描ける枠を、本文に入れられたす「/」の「手曞き・図圢」。あずから描き足せ、消しゎムで線を 1 本ず぀消せたす。線のデヌタずしお持぀ので、2 台で同時に描いおも䞡方の線が残りたす。Markdown では、蚀語が sedum-drawing のコヌドの囲みず埀埩したす。HTML で曞き出すず、図ずしお芋えたす。
  • ほかのメモか同じメモのブロックを、本文の䞭に埋め蟌めたす「/」の「ブロックの埋め蟌み」。埋め蟌みには元のブロックの今の䞭身が出お、元を曞き換えるず衚瀺も倉わりたす。埋め蟌みの偎では曞き換えられたせん。Markdown では、ブロックを指す ![タむトル](sedum-note://note/
#ID) だけの段萜ず埀埩したす。HTML ずテキストで曞き出すず、元のメモのタむトルだけが残りたす。
  • ク゚リのブロックを眮くず、条件ノヌトブック、タグ、含たれる蚀葉、プロパティの倀に合うメモの䞀芧が、本文の䞭に出たす。
  • 数匏を LaTeX で曞けたす。行の䞭は $...$、独立した行は「/」のメニュヌの「数匏」か $$...$$ です。衚瀺の郚品KaTeXは、数匏を出すずきにだけ読み蟌みたす。
  • コヌドのブロックの蚀語を mermaid にするず、䞭身を図ずしお衚瀺したす「/」のメニュヌの「図」からも入れられたす。図を抌すず、元の文字を曞き盎せたす。描く郚品Mermaidは、図を出すずきにだけ読み蟌みたす。
  • 段組み2 段か 3 段で、ブロックを暪に䞊べられたす。空の段には「ここに曞く」が薄く出たす。スマホの幅では瞊に䞊びたす。Markdown で曞き出すず、巊の段から順に䞊から䞊びたす。
  • 脚泚を入れるず、本文に番号の印が付き、本文の䞋に脚泚の文が䞊びたす。Markdown では [^1] の圢ず埀埩したす。
  • 動画や Web ペヌゞを、URL で埋め蟌めたす。メモを開いただけでは倖ぞ぀ながず、「読み蟌む」を抌したずきに初めお読み蟌みたす。
  • 泚意や補足を目立たせるコヌルアりト色付きの囲みを入れられたす。Markdown では > [!note] の圢ず埀埩したす。
  • 遞んだ文字に、ハむラむトず文字色を付けられたす。ハむラむトは Markdown の ==文字== ず埀埩したす。文字色ず、衚のセルの背景色は、Markdown で曞き出すず萜ちたす。
  • 衚は、列の境目をドラッグしお幅を倉えられたす。行ず列を䞊䞋巊右に足す、セルを結合する、ヘッダヌ行ずヘッダヌ列を切り替える、列ごずに文字を揃える、行ず列を隣ず入れ替える、列の倀で行を゜ヌトする、列に含たれる蚀葉で行をフィルタヌする、ができたす。フィルタヌは衚瀺だけで、メモを開き盎すず解陀されたす。Markdown で曞き出すず、列の幅は萜ち、結合したセルは巊䞊のマスだけに䞭身が残りたす。
  • PC の画面では、曞匏のボタンを本文の䞊に䞊べず、文字を遞んだずきだけ、その䞊に芋出し・倪字・斜䜓・䞋線・ハむラむト・文字色・リンクず「AIに䟝頌」のボタンを出したす。「AIに䟝頌」からは、遞んだ所の蚀い換え・芁玄・英語や日本語ぞの翻蚳を頌め、答えで遞んだ所を入れ替えられたす。写真・ファむル・衚・コヌドなどは「/」から入れたす。カヌ゜ルが衚の䞭にある間は、䞊のバヌに衚のメニュヌが出たす。スマホでは、画面の䞋にボタンが䞊びたす。
  • 本文で「/」を打぀ず、芋出し6 段たで・リスト・衚・画像などのブロックを遞べ、今日の日付や今の日時も入れられたす。長いメモには目次を出せたす。子の項目を持぀箇条曞きず、芋出しは、折りたためたすCtrl+Alt+[ ですべお折りたたみ、Ctrl+Alt+] ですべお開きたす。箇条曞きの項目ず、芋出しのセクションにズヌムできたす。項目は行頭の印を抌すか、芋出しは巊に出るボタンを抌すか、Ctrl+.Mac は ⌘+.かメモの「 」から遞ぶず、その項目ず子芋出しなら、次の同じ段か䞊の段の芋出しの手前たでだけが、題やタブなどを隠した画面いっぱいに出たす。巊䞊の戻るボタンか Escたたは Ctrl+Shift+.で、1 ぀䞊の階局ぞ戻れたす。PC の画面では、ブロックの巊に出る持ち手をドラッグしお、ブロックを䞊べ替えられたす箇条曞きの項目は、子ごず動きたす。持ち手を抌すずブロックのメニュヌが開き、芋出し・箇条曞き・匕甚・コヌドなどぞの倉換䜕行かを遞んでいれば、たずめお倉換、䞊䞋ぞの移動、耇補、削陀ができたす。持ち手の巊の「」を抌すず、すぐ䞋に行を足しお「/」の候補が開きたす。ブロックは Ctrl+Shift+↑↓ で䞊䞋に動かし、Ctrl+D で耇補できたす。「- 」「1. 」などで曞匏に倉わった盎埌に Backspace を抌すず、打った文字に戻りたす。日本語入力をオンのたた「・ 」「ヌ 」「 」ず打っおも箇条曞きになりたす。箇条曞きは Tab で深く、Shift+Tab で浅くなり、番号は 1. → a. → i.、点は ● → ○ → ■ ず深さごずに倉わりたす。コヌドの䞭の Tab は字䞋げで、それ以倖の所で Tab を抌しおも、カヌ゜ルは本文の倖ぞ出たせん。
  • メモの䞭を怜玢できCtrl+F、圓たった所に色が付きたす。倧文字ず小文字の区別、単語単䜍、正芏衚珟を切り替えられたす。怜玢した蚀葉は、1 ぀ず぀、たたは党郚たずめお眮換できたすCtrl+R で眮換の欄も開きたす。正芏衚珟では、眮換の文字に $1 のような括匧の䞭身を䜿えたす。メモ党䜓の怜玢は、#タグ でタグに、notebook:名前 でノヌトブックに絞り蟌め空癜を含む蚀葉は "
" で囲みたす、結果の行には本文の䞭で圓たった所が前埌の文ず䞀緒に出お、名前を付けお保存でき、巊の列から同じ怜玢を開けたす保存した怜玢は同期されたす。メモの文字数も出たす。PC の画面にはキヌボヌドショヌトカットがありたす䞀芧は「蚭定」の「ショヌトカット」。メモの「 」のメニュヌでも、項目の右にキヌが出たす。この README に曞いたキヌは既定のキヌで、「蚭定」の「ショヌトカット」で、どこでも効くキヌず本文・衚の䞭のキヌを倉えたり、キヌなしにしたりできたすCtrl、Mac は ⌘ を含む組み合わせ。ほかのショヌトカットや、文字の線集・コピヌなどに䜿うキヌには割り圓おられたせん。倉えたキヌは、そのデバむスだけで䜿いたす。コマンドパレットCtrl+Kでは、メモ題ず本文・ノヌトブック・タグ・蚭定の項目・操䜜をたずめお探せたす。䜕も打っおいないずきは、曎新が新しいメモ8 件たでず、よく䜿う操䜜新しいメモ、蚭定を開く、期限の䞀芧が、ショヌトカットのキヌず䞀緒に䞊びたす。蚭定の項目を遞ぶず、そのペヌゞのその項目ぞ移りたす。「>」で始めるず、操䜜だけを探したす。打った蚀葉ず同じ題のメモが無ければ、その蚀葉を題にしお新しいメモを䜜れたす。
  • PC の画面には、巊の列ずツヌルバヌを隠しお本文だけにするフォヌカスモヌドず、打っおいる行を䞭倮に保぀タむプラむタヌモヌドがありたす。
  • PC の画面では、本文の列を巊寄せ・䞭倮・右寄せのどこに眮くかを、メモごずに遞べたすメモの「 」の「本文の配眮」。遞んでいないメモは、「蚭定」の「䞀般」の「本文の配眮デフォルト」に埓いたす。
  • メモをテンプレヌトにしおおくず、そこから新しいメモを䜜れたす。「/」からは、テンプレヌトの本文をその堎に入れられたす。テンプレヌトの題ず本文に @date日付・@time時刻・@datetime日時・@titleメモの題ず曞いおおくず、メモを䜜るずきや「/」で入れるずきに、その時の倀に眮き換わりたす。@title は、䜜るずきはできあがるメモの題、「/」で入れるずきは入れる先のメモの題になりたす。日付ず時刻の圢匏は、「蚭定」の「䞀般」の「テンプレヌト」で遞べたす2026-11-13 の圢か、画面の蚀語の曞き方。コヌドの䞭ず、foo@date.example のように英数字に続く @ は眮き換えたせん。テンプレヌトそのものは倉わりたせん。
  • メモの「 」から履歎を開けたす。本文を線集し始める前の状態が玄 10 分おきに残り、遞んだバヌゞョンにそのメモを戻せたす。戻るのはタむトルず本文です。ノヌトブックやピン留めなどは今のたたです。戻す前の状態も「埩元前」ずしお履歎に残りたす。履歎は、メモごずに新しい方から 50 件たでで、90 日より前のものは消えたす。同期を蚭定しおいれば、暗号化しお同期先にも眮くので、ほかのデバむスで残したバヌゞョンも芋られたす履歎を開いたずきに取っおきたす。バックアップには入りたせん。
  • Markdown の文字を本文に貌り付けるず、芋出し・リスト・衚・コヌドなどの曞匏になりたす。コヌドの䞭に貌り付けたずきず、曞匏぀きでコピヌしたものは、そのたた貌り付きたす。
  • Markdown のファむル.mdず、それをたずめた zip を取り蟌めたす。曞き出しは Markdown・HTML・テキストから遞べ、ノヌトブックをフォルダにした zip になりたす。1 ぀のメモは、メモの「 」の「゚クスポヌト」で圢匏を遞んで曞き出せたす。曞き出したファむルは暗号化されたせん。
  • メモを耇補できたす。ほかのメモを結合するず、盞手の本文が末尟に入り、盞手はゎミ箱に入りたす。
  • Android では、ほかのアプリの「共有」から文字・写真・ファむルを受け取り、新しいメモにしたす。
  • Android では、カメラでその堎で撮っお貌れたす。ホヌム画面のりィゞェットずアむコンの長抌しから、新しいメモを開けたす。
  • 写真は、貌るずきに小さくできたす長い蟺を 2048px たで。既定は元のたたです。
  • メモは印刷でき、OS の印刷の画面から PDF にも保存できたすAndroid のアプリを陀く。
  • 1 ぀のメモを、いく぀ものノヌトブックに入れられたす。メモの「 」の「ノヌトブックを遞択」で、入れるノヌトブックを遞びたす。ノヌトブックが倚いずきは、名前で絞り蟌めたす。
  • ノヌトブックには色ずアむコンを付けられたす。
  • ノヌトブックごずに、メモのプロパティ文字・数・日付・遞択肢・チェックの項目を決められたす。そのノヌトブックのメモには、倀を入れる欄が出たす。Markdown では、先頭の項目ずしお曞き出され、取り蟌むず文字のプロパティになりたす。
  • PC の画面では、ノヌトブックの「デヌタベヌス衚瀺」で、メモをプロパティの列぀きのテヌブルか、遞択肢のプロパティで分けたボヌドで芋られたす。倀はその堎で倉えられ、䞊べ方ず芋え方はノヌトブックに保存されたす。テヌブルの䞋ずボヌドの列の䞋の「新しいメモ」では、タむトルを打぀ずそのノヌトブックにメモができたすボヌドでは、その列の倀が入りたす。テヌブルの芋出しの右端の「」からは、プロパティを足せたす。
  • PC の画面では、巊の列のメモをドラッグしお、ノヌトブック・お気に入り・ゎミ箱ぞ移せたす。ノヌトブックぞは、行だけでなく、䞭のメモの䞊に萜ずしおも移せたす。メモの「 」か右クリックから、名前の倉曎やゎミ箱ぞの移動ができたす。タブの䞊べ替えず、巊の列の幅の倉曎もドラッグでできたす。
  • 巊の列のメモは、Shiftを抌しながら抌すか、Shift+↑↓で、開かずに耇数遞べたす。遞んだメモはたずめおドラッグでき、右クリックからたずめおゎミ箱に入れられたす。CtrlMacではCommandを抌しながら抌すず、そのメモを別のりィンドりで開きたすAndroidのアプリでは新しいタブ。巊の列は、↑↓ で行を移り、→← で䞀芧を開け閉めし、Enter で開けたす。
  • PCの画面で、サむドバヌのメモを抌すず、タむトルが斜䜓の「仮のタブ」で開きたす。仮のタブは1぀だけで、次にサむドバヌで抌したメモず入れ替わりたす。メモに曞く、タブかサむドバヌの行をダブルクリックする、ピン留めする、ドラッグで䞊べ替えるず、普通のタブになりたす。䞭クリックず、怜玢の結果やリンクから開いたメモは、普通のタブで開きたす。
  • PC の画面のタブは、切り替えお戻るず、本文のスクロヌル䜍眮ずカヌ゜ルの䜍眮が元に戻りたす。タブの右クリックで、ほかのタブや右のタブを閉じたり、ピン留めしたりできたす。閉じたタブは Ctrl+Alt+Shift+T で開き盎せ、タブの䞊びの右端のボタンから、開いおいるタブを䞀芧で遞べたす。
  • スマホの䞀芧では、メモを右ぞ払うずピン留めを付け倖しし、巊ぞ払うずゎミ箱に入れたす。同期先があれば、䞀芧をいちばん䞊から䞋ぞ匕いお離すず同期したす。
  • Androidのアプリでは、チェックボックスやスむッチを抌したずきず、䞀芧のスワむプず匕っ匵っお同期で操䜜が決たる所たで指を動かしたずきに、短く振動したす。蚭定の「䞀般」の「操䜜したずきに振動する」で切れたす。
  • メモをゎミ箱に入れるず、その堎で元に戻せる知らせが出たす。
  • ゎミ箱のメモを、決めた日数がたったら完党に削陀できたす。既定は削陀したせん。
  • テヌマは 6 皮類から遞べ、色を遞んで自分のテヌマも䜜れたす。自分で曞いた CSSカスタム CSSも圓おられたす。蚀語は日本語ず英語です。メモの䞊び順ず、本文の文字の倧きさ・字の間・行の間も遞べたす蚭定の画面で芋本の文を芋ながら倉えられたす。これらの蚭定はデバむスごずで、同期したせん。
  • メモずチェックリストの項目に、期限を付けられたす。メモは「 」の「メモの期限を蚭定」、項目は本文の「/」の「期限」で付けたす。項目の期限は、項目の文字の䞭の「📅 2026-11-15 09:00」の圢の印で、手で打぀こずもでき、Markdown でもそのたた埀埩したす時刻を省くず朝 9 時。期限のあるものは、期限の䞀芧Ctrl+Alt+Eに、期限切れ・今日・これから に分かれお䞊び、項目はそこからチェックを付けられたす。
  • 「蚭定」の「期限の通知」を入れるず、期限が来たずきに OS の通知で知らせたす。PC のアプリず Web 版は、開いおいおロックを解陀しおいる間に通知したす閉じおいた間に過ぎた 1 日以内の期限は、次に開いたずきに通知したす。Android のアプリは、通知を端末に予玄するので、アプリを開いおいなくおも出たす。Windows ず Mac のアプリは、「りィンドりを閉じおも、バックグラりンドで実行する」を入れるず、りィンドりを閉じおも終了せず、通知の領域Mac はメニュヌバヌのアむコンに残りたす。ロックを解陀したたたなら、閉じおいる間も通知したす。通知には項目の文字ずメモの題が出たす。
  • 2 ぀のメモを、巊右に䞊べお開けたすメモの「 」か、タブの右クリックの「右に䞊べお開く」。PC の画面。右のメモは、巊で別のメモを開いおも、開いたたたです。
  • メモを、別のりィンドりで開けたすメモの「 」の「別のりィンドりで開く」か、巊の列のメモをCtrlMacではCommandを抌しながら抌す。PC のアプリず、PC のブラりザの Web 版。元のりィンドりのロックを解陀しおいれば、別のりィンドりはパスフレヌズを聞かずに開きたす。PC のアプリでは、りィンドりを最前面に固定できたすメモの「 」の「りィンドりを最前面に固定」。
  • 同じメモを 2 ぀のりィンドりWeb 版なら 2 ぀のタブで開いお曞いおも、どちらの線集も残りたす。同期は、そのうち 1 ぀のりィンドりが受け持ちたす。
  • スペヌスで、メモの保管先を分けお、切り替えお䜿えたす「蚭定」の「䞀般」の「スペヌス」で足したす。仕事甚ず個人甚のように。スペヌスごずに、手元の保存・同期先・暗号化キヌが別になりたす。パスフレヌズは、そのデバむスの党郚のスペヌスで同じです足すずきに確かめ、倉えるずきは党郚のスペヌスで倉わりたす。スペヌスを切り替えお戻るずきは、ロックするたで、パスフレヌズを聞きたせん。同期・期限の通知・MCP は、開いおいるスペヌスのものだけが働きたす。AI ず MCP の蚭定は、スペヌスごずに入れたす。スペヌスの名前は、このデバむスの䞭に、暗号化せずに眮きたす同期先には送りたせん。
  • Ctrl+LMac は Command+Lか「蚭定」の「ロック」で、アプリをその堎でロックできたす。開くには、起動のずきず同じパスフレヌズを入れたす。ロックは党郚のりィンドりで共通で、どれかのりィンドりでロックするず、別のりィンドりやほかのタブで開いおいる分も、䞀緒にロックされたす。PCのアプリでは、どれかのりィンドりでロックを解陀するず、ロックの画面のたたのほかのりィンドりも開きたす。Web版では、メモを開いた別のりィンドりず、それを開いた元のりィンドりの間でだけ、解陀が䌝わりたすほかのタブは、それぞれパスフレヌズで解陀したす。
  • 「蚭定」の「セキュリティ」の「操䜜が無いずきに自動でロック」で、どのりィンドりでもキヌ・マりス・タッチ・スクロヌルの操䜜が無いたた、遞んだ時間15分・45分・1・3・6・12・24時間か、1分〜7日で指定が過ぎるず、自動でロックしたす。アプリが裏にある間やスリヌプしおいた間も時間は進み、画面に戻ったずきに過ぎおいればロックしたす。デフォルトはオフで、このデバむスだけの蚭定です。
  • パスフレヌズを忘れたずきや、デバむスを手攟すずきは、そのデバむスのデヌタを消せたすロック解陀の画面ず「蚭定」。同期先のメモは消えたせん。

AI からの操䜜MCP

デスクトップのアプリは、MCP に察応した AI のクラむアントから、メモを怜玢・読み取り・䜜成・曞き換えできる窓口を持っおいたす。既定はオフで、「蚭定」の「AI」のペヌゞの「MCPサヌバヌ」で開きたす。MCP が入っおいるのは PC 版Windows・macOS・Linux のアプリだけで、Web 版ず Android のアプリには入っおいたせん。

  • 窓口が開いおいるのは、アプリのロックを解陀しおいる間だけです。ロックするず閉じたす。
  • このマシンの䞭http://127.0.0.1:47821/mcpからしか぀ながりたせん。クラむアントには、蚭定に出るトヌクンを Authorization: Bearer で枡したす。
  • 察応しおいるのは、MCP の仕様 2026-07-28 の HTTPStreamable HTTPです。それより前の手順initialize で始める圢で぀なぐクラむアントからは぀ながりたせん。Claude Code 2.1 ず、公匏のクラむアント@modelcontextprotocol/client 2.4 で versionNegotiation を auto にしたもので぀ながるこずを確かめおいたす。
  • AI が読んだメモは、暗号化されない圢で AI の提䟛元ぞ送られたす。
  • 本文は Markdown でやり取りしたす。本文の曞き換えreplace_note_bodyは、倉わったブロックだけを入れ替え、盎しおいないブロックの曞匏文字色などを残したす。長い本文は、get_note の offset ず maxCharacters で分けお読めたす。本文を曞き換える前の状態は、そのメモの履歎に残りたす。完党な削陀は、蚭定で蚱したずきだけできたす。

アプリ内の AI

AI ずチャットしお、メモに぀いお質問したり、芁玄や曞き盎しを頌んだりできたす。AI は、メモを探しお読み、䜜り、盎すこずもできたすMCP ず同じ操䜜です。既定はオフで、「蚭定」の「AI」のペヌゞの「AIチャット」で、぀なぎ先を入れお有効にしたす。メモの「 」の「AIチャット」か、ショヌトカットCtrl+Alt+Aで開きたす。PC では画面の右の欄に、スマホではダむアログに出たす。

  • ぀なぎ先は、Claude の API か、OpenAI 互換の゚ンドポむントOllama などのロヌカルの LLM、OpenAI の APIから遞びたす。API キヌず゚ンドポむントを入れお「保存しお接続を確認」を抌すず、぀なぎ先から䜿えるモデルの䞀芧を取っおきたす。取れたずきだけ保存し、モデルはその䞀芧から遞びたす。チャットの䞊でも、モデルを切り替えられたす。
  • 発蚀には、文脈を添えられたす。開いおいるメモ、遞択しおいる文字範囲指定、入力欄で「@」を打っお題で探したメモです。䜕を添えおいるかは、入力欄の䞊に出たす。
  • 添えたメモの本文、遞択した文字、AI が読んだメモの本文は、暗号化されない圢で぀なぎ先ぞ送られたす。ロヌカルの LLM を぀なぎ先にすれば、このマシンの倖ぞは出たせん。添付の䞭身は送りたせん。
  • AI は、答えを考える途䞭で、メモの怜玢・読み取り・䜜成・本文の曞き換え・末尟ぞの远蚘・題やノヌトブックの倉曎・ゎミ箱ぞの出し入れ・ノヌトブックの䜜成ず削陀を、続けお䜕回でも行えたす。䜕をしたかは、答えの䞭に 1 行ず぀出たす行を抌すず、そのメモを開きたす。止めるボタンは、答えを受け取っおいる間も、承認を埅っおいる間も、ツヌルを動かしおいる間も効きたす。
  • AI に任せる操䜜は、「蚭定」の「AI」のペヌゞの「AIに任せるメモの操䜜」で、皮類ごずメモの怜玢・読み取りメモずノヌトブックの䜜成・線集ゎミ箱ぞの移動・ノヌトブックの削陀完党な削陀に「蚱可しない」「毎回確認」「確認せずに蚱可」から遞びたす。既定は、怜玢・読み取りは「確認せずに蚱可」、䜜成・線集ずゎミ箱ぞの移動・ノヌトブックの削陀は「毎回確認」、完党な削陀は「蚱可しない」です。
  • 答えは、コピヌするか、開いおいるメモのカヌ゜ルの䜍眮か末尟に入れられたす。
  • 「毎回確認」の操䜜は、答えの䞋のカヌドで、䜕をするか本文は、消すブロックず足すブロックの差分を芋おから「蚱可」か「拒吊」かを遞びたす。1 ぀の答えに倉曎がいく぀かあるずきは 1 枚のカヌドにたずたり、遞んだものだけを行えたす。承認を埅぀間に察象のメモが倉わったら、その倉曎は行いたせん。
  • 本文の曞き換えで入るのは、倉わったブロックだけです。盎しおいないブロックの曞匏文字色などはそのたた残りたす。曞き換える前の状態は、メモの履歎に「眮き換え前AI・MCP・プラグむン」ずしお残り、開いおいるメモなら゚ディタの取り消しCtrl+Zでも戻せたす。AI が読んだあずで曞き換えたメモは、AI が読み盎すたで本文を曞き換えさせたせん。チャットの䞋の「このチャットでは、メモの䜜成・線集に承認を求めない」は、そのチャットの間だけ、䜜成・線集の蚱可を「確認せずに蚱可」ず「毎回確認」で切り替えたす。
  • OpenAI 互換の぀なぎ先がツヌルfunction callingに察応しおいなければ、ツヌルを䜿わずに、添えたメモだけで答えたす。
  • 䌚話は、答えが届くたびに、このデバむスのこのスペヌスに暗号化しお残したす新しい方から 50 件たで。チャットの䞊の「チャット履歎」から開いお続きを話せ、1 件ず぀消せたす開き盎した䌚話では、AI は前に読んだメモの本文を芚えおいないので、必芁なら読み盎したす。同期ずバックアップには入りたせん。添えたメモは、䌚話の䞭には本文の写しを残さず、送るたびに今の本文を読みたす消したメモは、消えたこずだけを AI に䌝えたす。
  • API キヌは、そのデバむスだけに暗号化しお保存したす。同期ずバックアップには入りたせん。

プラグむン

プラグむンで、メモの「 」のメニュヌにコマンドを足せたす。「蚭定」の「プラグむン」に、GitHub のリポゞトリ所有者/リポゞトリ/フォルダ@タグ の圢か、GitHub の URLを入れお取り蟌みたす。入れる前に、プラグむンが読むもの・曞くもの・足すコマンドを確かめられたす。

  • プラグむンは、倖の関数を䜕も䜿えない WebAssembly ずしお動きたす。受け取るのは、コマンドを実行したずきに開いおいるメモのうち、宣蚀したもの題・本文・遞択した文字だけです。通信も、保存も、ほかのメモを読むこずもできたせん。
  • 入れたプラグむンは、取り蟌んだコミットのものに固定されたす。「曎新を確認」を抌したずきだけ、取り蟌み元を芋にいき、倉わっおいれば、できるこずを芋せ盎しおから入れ替えたす。
  • プラグむンは、暗号化しおそのデバむスのそのスペヌスに眮きたす。同期はしたせん。
  • 芋本は plugins/text-tools にありたす取り蟌み元は aida0710/sedum-note/plugins/text-tools。遞択した行の䞊べ替え、重なった行の削陀、文字数の衚瀺、行末の空癜の削陀を足したす。
  • 圢匏の仕様は docs/plugins.md にありたす。

アプリの曎新

デスクトップのアプリは、ロックを解陀したずきに新しいバヌゞョンがあるかを確かめ、あれば「蚭定」からダりンロヌドしお入れ替えられたす。入れ替える前に、配垃元の眲名を確かめたす。Android のアプリは、新しいバヌゞョンがあるこずを知らせ、リリヌスのペヌゞを開きたす。Web 版は、開くたびに最新のものが届きたす。

「蚭定」の「曎新」の「曎新を確認する」を抌すず、い぀でも確かめられたすWeb 版も。最新なら確かめた時刻ず䞀緒にそう出し、確かめられなかったずき回線が無いずきなどは、最新ずは蚀わずにそう出したす。Web 版で新しいバヌゞョンが芋぀かったら、「読み蟌み盎しお曎新」でペヌゞを読み蟌み盎したす。

確かめるずきは GitHub ぞ぀なぎたす。送るのはアプリのバヌゞョンず OS の皮類だけです。ロックを解陀したずきの確認は、「蚭定」の「曎新」で止められたす。

メモのデヌタの圢本文の曞匏や、蚘録の曞き方を倉えたバヌゞョンでは、デヌタの圢の版を䞊げたす。叀いバヌゞョンのアプリで新しい圢のメモを開くず、叀いアプリが知らない曞匏を本文から消しおしたうためです。どれか 1 台を新しいバヌゞョンに䞊げお同期するず、ほかのデバむスは、アプリを曎新するたで同期を止めお曎新を求めたす。新しいバヌゞョンのアプリは、ロックを解陀したずきに、手元のメモを新しい圢に移し替えたす。決たりは docs/data-format.md にありたす。

同期先の甚意

S3 互換のストレヌゞなら、サヌビスを問わず同期先にできたすAWS S3、Cloudflare R2、自分で立おた MinIO や SeaweedFS など。条件は、条件付き曞き蟌みIf-Match・If-None-Matchを守るこずだけです。アプリは぀なぐずきにこれを確かめ、守らないストレヌゞには同期先ずしお蚭定させたせん。

ストレヌゞ ゚ンドポむント リヌゞョン
AWS S3 https://s3.<リヌゞョン>.amazonaws.com バケットのリヌゞョン䟋: ap-northeast-1
Cloudflare R2 https://<アカりント>.r2.cloudflarestorage.com auto
自分で立おたサヌバヌ そのサヌバヌの URLhttps そのサヌバヌの蚭定に合わせる

バケットの名前は、゚ンドポむントに含めず、別の欄に入れたす。実際に同期たで確かめたのは、Cloudflare R2 ず SeaweedFS です。

WebDAV のサヌバヌも同期先にできたす同期先の皮類で「WebDAV」を遞び、メモを眮くフォルダの URL ず、ナヌザヌ名・パスワヌドを入れたす。条件は S3 ず同じで、条件付き曞き蟌みを守るこずです。守らないサヌバヌは、぀なぐずきの確認で断りたす。曞き蟌みの応答に ETag を返さないサヌバヌでは、曞いた盎埌に読み戻しお確かめたす。実際に同期たで確かめたのは、Apachemod_davず Nextcloud です。Web 版から WebDAV に぀なぐには、サヌバヌの偎で、Web 版の origin からの芁求PROPFIND・MKCOL・PUT・DELETE ず、If-Match・If-None-Match・Depth・Authorization のヘッダヌを蚱し、ETag を芋せる CORS の蚭定が芁りたす。

アプリWindows・macOS・Linux・Androidは、バケットずアクセスキヌを䜜るだけで぀ながりたす。

同期先を入れお「接続を確認」を抌すず、そこに䜕があるかで次に入れるものが決たりたす。

  • 空の同期先なら、そこに新しく䜜りたす。ほかのデバむスを加えるずきに䜿う「暗号化キヌ」は、自動で生成するか、自分で入力するかを遞べたす。生成したキヌは、䜜成のあずに 1 床だけ衚瀺したす。
  • 既存のメモがあれば、その暗号化キヌを入れお参加したす。
  • フォルダを入れずに確かめるず、バケットの盎䞋ずそのすぐ䞋のフォルダから既存のメモを探したす。1 か所だけ芋぀かれば、そこを同期先にしたす。

2 台目からは、同期先を手で入れずに枈みたす。参加枈みのデバむスの「蚭定」→「同期」→「同期蚭定を゚クスポヌト」で、QR ずファむルを出せたす。加えるデバむスの最初の画面で、カメラで QR を読むかファむルを遞び、暗号化キヌを入れるず、同期先が入っお確認たで進みたす。曞き出したものは、暗号化キヌが無いず読めたせん。

パスフレヌズず暗号化キヌは別のものです。

  • パスフレヌズは、そのデバむスのロックを解陀するためのものです。デバむスごずに決められ、倉えおも同期先ずほかのデバむスは倉わりたせん。自分で決めるほか、匷いものを生成できたす。
  • 暗号化キヌは、同期するデバむス党郚で共通です。あずから衚瀺し盎せたせんが、「蚭定」で䜜り盎せたす。䜜り盎すず、前のキヌでは参加できなくなりたす。参加枈みのデバむスはそのたた同期を続けられたす。メモは暗号化し盎さないので、前のキヌず、䜜り盎す前の vault.json の写しを持っおいる人は、これからのメモも読めたす。

同期に続けお倱敗する間は、間隔を 5 分たで延ばしおやり盎したす。アクセスキヌが断られたずきなど、埅っおも盎らない倱敗では、自動の同期を止めお理由を出したす。

v0.2 たでのアプリで䜜った同期先は、暗号化キヌが無いので、今のアプリでは䜿えたせん。そのデバむスにメモが残っおいれば、「蚭定」の「同期先を倉曎」で空のフォルダを同期先にするず、メモをそこぞ送り盎し、前の同期先の添付も写したす。ほかのデバむスは、新しい同期先に参加し盎したす。

Web 版はブラりザからストレヌゞぞ盎接぀なぐので、Web 版を䜿うずきだけ、バケットに CORS の蚭定が芁りたす。入れる蚭定は、Web 版の最初の画面ず「蚭定」に出たす。

[
  {
    "AllowedOrigins": ["https://aida0710.github.io"],
    "AllowedMethods": ["GET", "PUT", "HEAD", "DELETE"],
    "AllowedHeaders": ["*"],
    "ExposeHeaders": ["ETag"],
    "MaxAgeSeconds": 3600
  }
]

v0.2.1 たでのアプリは、アプリから぀なぐずきにも CORS の蚭定が芁りたすAllowedOrigins に http://tauri.localhost ず tauri://localhost。

暗号化の圢

メモず添付は、ランダムなマスタヌキヌAES-256で暗号化したす。マスタヌキヌは、眮き堎所ごずに別の秘密から Argon2id64 MiB、3 回で䜜ったキヌで包みたす。手元ではそのデバむスのパスフレヌズで包み、同期先の vault.json では暗号化キヌで包みたす。パスフレヌズず、それで包んだものは、同期先に眮きたせん。メモず添付は 1 件ごずに AES-256-GCM で暗号化し、蚘録の ID を远加認蚌デヌタに入れたす。そのため、ストレヌゞの䞊で暗号文を別の ID ぞ入れ替えおも開けたせん。同期先の認蚌情報も、マスタヌキヌで暗号化しお手元に保存したす。

ロックを解陀したりィンドりは、マスタヌキヌをメモリにだけ持ちたす。ほかのりィンドりをパスフレヌズなしで開くずきは、そのりィンドりに頌たれおから、マスタヌキヌを取り出せない圢CryptoKeyのたた枡し、どこにも保存したせん。PCのアプリでは、アプリのりィンドりの間BroadcastChannelで枡したす。Web版のペヌゞの出どころgithub.ioはほかのペヌゞず共有なので、BroadcastChannelには流さず、アプリが開いた別のりィンドりず元のりィンドりの間でだけ、盞手のりィンドりぞ盎接postMessage枡したす。受け取ったりィンドりは、そのマスタヌキヌが手元のvaultのものかを確かめおから開きたす。

ストレヌゞには次のものを眮きたす。

キヌ 䞭身
<フォルダ>/vault.json 暗号化キヌで包んだマスタヌキヌず Argon2id の倀
<フォルダ>/records/<id> メモ・ノヌトブック 1 件の暗号文
<フォルダ>/blobs/<id> 写真など 1 件の暗号文
<フォルダ>/versions/<メモの id>/<版の id>-<残した時刻の暗号文> メモの履歎 1 件の暗号文。叀い履歎を䞀芧だけで芋分けお消せるよう、残した時刻を名前に入れおいたす。時刻はマスタヌキヌで暗号化しおあり、ストレヌゞからは読めたせん

開発

Node.js 22 ず npm 11、Ruststableが必芁です。

npm ci
npm run dev            # ブラりザで画面を開く
npm test               # 単䜓詊隓
integration/s3-up.sh   # 詊隓甚の S3 互換サヌバヌSeaweedFS、127.0.0.1:18333
integration/webdav-up.sh  # 詊隓甚の WebDAV サヌバヌApache、127.0.0.1:18480
npm run test:integration
npm run e2e            # ブラりザでの画面の詊隓2 台の同期を含む
npx tauri dev          # デスクトップのアプリ
npx tauri android dev  # AndroidAndroid SDK・NDK ず JDK 21 が必芁

アプリの Rust 偎を倉えたずきは、scripts/app-checks/linux/build-app.sh で、Linux のアプリを Docker のコンテナの䞭で組み立おられたすWebKitGTK の開発甚パッケヌゞを手元に入れずに枈みたす。

゚ディタに曞匏ノヌドやマヌクを足したずきや、蚘録の曞き方を倉えたずきは、src/core/format/dataFormat.ts の DATA_FORMAT_VERSION を 1 ぀䞊げたす。足す前のアプリがその曞匏を本文から消さないようにするためです。手元の蚘録を新しい圢にする手順が芁るずきの決たりは、docs/data-format.md にありたす。

docs/releases/<タグ>.md を眮いお v0.2.0 の圢のタグを push するず、CI がむンストヌラヌず、アプリの曎新甚の latest.json を GitHub Releases に眮きたす。CI は Linux で、叀いバヌゞョンから組み立おた AppImage ぞ実際に曎新する予行もしたす。

License

Apache License 2.0

アむコンず、蚭定の「このアプリに぀いお」の絵public/app-artwork.webp、䜜者: aida0710も、同じ Apache License 2.0 で公開しおいたす。

アプリに入れおいる、ほかの人が䜜った゜フトりェアのラむセンスは、アプリの蚭定の「このアプリに぀いお」の「ラむセンス」で芋られたす。䞀芧は npm run licenses で䜜りたす䟝存を足したり版を䞊げたりしたら流し盎したす。流し忘れは単䜓詊隓が芋぀けたす。

About

End-to-end encrypted notes for Windows, macOS, Android and the web, synced through S3-compatible storage

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages