世界を動かす技術を、日本語で。

Show HN: Files.md – 「Obsidian」のオープンソース代替品

2026年5月18日原文(github.com)

概要

  • files.md は、ローカルファーストで .mdファイル を管理するシンプルなアプリケーション
  • ブラウザだけで動作し、 インストール不要・オフライン対応
  • ノート、ドキュメント、タスク管理、ジャーナルなど 様々な用途 に対応
  • LLM(大規模言語モデル)フレンドリー な設計
  • 完全オープンソース で、自由にカスタマイズ可能

files.md:シンプルなMarkdownライフ管理アプリ

  • ノート、ドキュメント、プロジェクト、ジャーナル、習慣、チェックリスト、タスク など、日常の全てを.mdファイルで一元管理
  • ローカルファースト 設計、クラウド同期も可能(iCloud/Dropbox/Google Drive対応)
  • インストール不要、ブラウザ(Chrome推奨)だけで利用
  • オフライン対応、ファイルは全て自分の手元に保存
  • 無料・オープンソース、コードがシンプルで誰でも把握しやすい
  • PWA対応 で、アドレスバーから「files.mdをインストール」可能
  • Telegramチャットボット で外出先からのアクセスも簡単

最小限の機能で創造性を引き出す設計思想

  • 必要最小限の機能 のみ搭載、制約が創造性を刺激
  • 複雑なテンプレートやAIワークフロー不要
  • フォルダ構造は自由、最初は0フォルダ・1ノートから始めるのが推奨
  • 一つのノートに一つのアイデア、文脈なしで理解できる粒度
  • 関連ノートはリンクで接続、知識をネットワーク化

チャット機能・同期・知識管理の流れ

  • チャット画面 で思考やアイデアを即座に記録
    • メッセージ送信後、保存先を選択(後からでも可能)
  • 全デバイス間で自動同期、どこからでもアクセス
  • Telegram Bot連携、他メッセンジャーも順次対応予定

セカンドブレイン(Second Brain)批判とfiles.mdの哲学

  • Obsidian等の高度なPKMは「知識の先送り」問題を生みやすい
    • 複雑な構造やテンプレートで「分かったつもり」になりやすい
    • 本当に必要なのは「自分の頭で考える」こと
  • ノートは目的が明確な場合のみ有効
    • 深い理解、リサーチ、執筆など
  • 読書やノートだけでは経験値は得られない
    • 感情的な癒しには読書やノートよりも「体験」や「セラピー」が重要

ファイル構造例・命名規則

  • chat: Chat.md
  • ノート: brain/Note.md, <category>/*.md
  • チェックリスト: Read.md, Watch.md, Shop.md, MyChecklist_.md
  • ジャーナル: journal/2024.08 August.md
  • タスク: Later.md
  • 習慣: habits/Ate consciously.md, habits/*.md
  • 画像: media/*(png, jpg, webp, gif)
  • アーカイブ: archive/*.md
  • 設定: config.json
  • スキーマ: files.md/llms.txt(AIエージェント用)

ホットキー一覧

  • [ :ファイルへのリンク挿入
  • Cmd+P / Ctrl+P :ファイル検索
  • Cmd+N / Ctrl+N :新規ファイル作成
  • Cmd+M / Ctrl+M :ファイル移動
  • Cmd+D / Ctrl+D :ファイル削除
  • Cmd+Enter / Ctrl+Enter :チャット画面を開く
  • Cmd+Shift+Enter / Ctrl+Shift+Enter :チャットダイアログ切替
  • Cmd+[ / Ctrl+[ :前のファイルへ
  • Cmd+] / Ctrl+] :次のファイルへ
  • Cmd+~ / Ctrl+~ :サイドバー切替
  • Cmd+B / Ctrl+B :太字切替
  • Cmd+I / Ctrl+I :斜体切替
  • Cmd+Y / Ctrl+Y :チェックボックス挿入
  • Cmd/Ctrl + クリック :インラインテキストコピー/リンクオープン
  • Ctrl+Cmd+Space :絵文字挿入(macOS)

便利なスクリプト

  • Whoopメトリクス追加 :go run /abs/path/to/files.md/cmd/whoop/whoop.go
  • wikilink→Markdownリンク変換 :go run /abs/path/to/files.md/cmd/tomdlinks/tomdlinks.go
  • バックリンク挿入 :go run /abs/path/to/files.md/cmd/backlink/backlink.go
  • ジャーナルのタイムスタンプ調整 :go run /abs/path/to/files.md/cmd/shifttime/shifttime.go

開発・コントリビューションガイド

  • コードはシンプル・自己完結型、依存関係は極力排除
  • PRはコード削減・単純化が理想
  • 全ての依存物はリポジトリ内管理
  • 本当に必要な機能か常に問い直す
  • バックエンドはテスト必須、get*メソッド名禁止、エラー処理は明示的にWHYコメント
  • フロントエンドはビルド不要、10年後もindex.htmlだけで動作する設計

用語集

  • filename :拡張子付きファイル名(例:note.md、IDとして使用)
  • header :拡張子を除き大文字化したファイル名(例:Note)
  • body :ファイルの内容
  • dir :カテゴリごとのノート格納ディレクトリ(例:happiness)
  • userID :chatID(主にbotとのやり取りで使用)
  • ctime :ファイルの所有権・場所・タイプ・権限変更時刻、移動やリネームで変化
  • mtime :内容変更時刻、同期処理に利用
  • 一意なファイル指定 :filename+dir
  • サポートするフォルダ階層は1段のみ

パフォーマンス

  • 極めて高速 な動作
  • Mutexロック/アンロック:25ns
  • SSDから4Kランダムリード:150,000ns
  • 1ms = 1,000,000ns

ADRs(アーキテクチャ決定記録)抜粋

  • 2026/06/05 :「Today.md」から「Chat.md」へ移行、ユーザー理解向上のため
  • 2026/05/06 :「Inbox.md」と「Today.md」を統合、シンプルさと使いやすさ重視
  • 2026/04/23 :「API_HOST/APP_HOST」から「API_URL/APP_URL」へ変更、環境ごとの柔軟性向上
  • 2026/04/22 :BotのInboxエントリは安定したコンテンツハッシュで識別、同期精度向上
  • 2026/04/11 :Markdownリンクを標準化、GitHub等クロスプラットフォーム運用を重視

files.md は「自分の脳で考える」ことを重視し、 シンプルさ・柔軟性・高速性 を追求した 次世代のMarkdown知識管理アプリあなたの生活・思考・学び を、 自由自在に.mdファイルで記録・整理 できます。

Hackerたちの意見

データはプレーンファイルで持つべきだし、そのファイルを開くソフトウェアも自分のものにすべきだと思うんだ。そうすれば、ファイルとツールが一緒に成長して、時代を超えて完全に自分の所有物になるからね。アプリはLLMを使って簡単にカスタマイズできるし、コードもそのために最適化されてるよ。P.S. Golangはこういうソフトウェアにぴったりだと思う。

Golangが素晴らしい選択肢だと思う理由は何?

自分用に作ったもの、気に入るかもよ。 https://github.com/pratikdeoghare/brashtag

これで気づいたんだけど、Obsidianはオープンソースじゃないんだよね。でも、どこかオープンソースっぽい感じがあった。調べてみたら、確かにオープンソースじゃないのは明らかだけど、なんか「オープンソースであるべき」って感じがするんだよね。

それが数年前にこのプロジェクトを始めた理由なんだ。AI時代のソフトウェアはオープンソースで配布されるべきだと思う。誰でも好きなようにカスタマイズできるようにね。ゴチャゴチャしたプラグインシステムじゃなくて。

理由はオープンスタンダードだからだよ。Obsidianはマークダウンを使ってる、それだけ。専用のデータベースも、特別なアルゴリズムも、ロックインされたプラットフォームもない。ただ便利にメモを管理する方法があるだけ。ああ、なんかAIっぽいこと言っちゃった。自分でやることもできるけど、オンライン同期のサブスクリプションで手伝ってくれるから、安く済むんだよね。だからこそ、オープンスタンダードとフェデレーションをずっと推していくつもり。

まあ、ObsidianはElectronアプリで、難読化もされてないから、コードを取得するのは結構簡単だよ。確か公式のObsidianチームが、アプリを信用できない人にはサポートフォーラムでそうするように言ってたのを覚えてる。

ずっとそう思ってたよ!

それが私の印象ではなかったと思うけど、プラグインを作るためのAPIはかなりオープンだよ。Obsidianモデルを支持する形で、専用のエンジニアリングチームがいて、無料のツールで、メモは.md形式で保存されていて、専有のものじゃないし、もし必要なら同期ツールにお金を払うこともできる。それはかなり妥当だし、彼らの努力を支えるいい方法だと思う。さらに、製品を面白い方法で改善し続けてるし、新しいプラグインマーケットプレイスの検証ポリシーもすごくよくできてるし、目指すべきものだよね。でも、どちらにしても、これは素敵なプロジェクトだけど、私もObsidianのエバンジェリストなんだよね。

なんでオープンソースにする必要があるの?Obsidianはデータをオープンな標準で保存して、完全にコントロールできるんだよ。開発者が貧乏僧みたいに振る舞う理由を教えてほしいな。開発者たちは価値のあるものを作ったんだから、それに対して利益を得るべきだよ。

データはオープンで、Markdown形式で保存されてる。プラグインはオープンソースだよ。コア製品はオープンソースじゃないけど、結局はElectronアプリだしね。Obsidianはオープンコア製品の逆だとずっと思ってる。

でも、Obsidianの代替としては紹介しないかな。MDファイルを共有してるし、どちらもノートを取るためのものだけど(「どちらも」はObsidianのこと、Files.mdはまだ試してない)、Files.mdはユーザーが自分の考えやノート、知識を一緒に扱う独自の方法があるみたい。私が「代替」と聞いたときは、機能が同じでAPI互換性があると思ったけど、実際に見つけたのは全然違って、もっと面白かった。試してみるよ、1年前の作品をシェアしてくれてありがとう!

Hacker Newsで議論の続きを見る