片側にMarkdownソース、もう片側に表・数式・図のプレビューを描いたコンセプトイラスト。Flo Stateの実画面ではありません。

Flo State Native:TextKit 2でMarkdownを編集するmacOSアプリ

Flo State Nativeは、ライブMarkdown表示、ファイル中心のワークスペース、TextKit 2によるネイティブ編集を備えたmacOSアプリです。現行版v0.1.1はZIPで配布されています。

要点
  • Flo State Nativeは、カスタマイズ版writer.computerをSwift、AppKit、TextKit 2で作り直したmacOSアプリです。
  • Markdownソースを編集しながら、表・数式・Mermaid図・画像・対応HTMLを文書内で表示できます。
  • macOS 14以降向けの公式v0.1.1 ZIPをGitHub Releasesから直接入手できます。未公証のため、初回起動は右クリックして「開く」を選びます。
  • ライセンスはGPL-3.0-or-later。まだ初期リリースなので、インストール前に変更点と制限を確認してください。

Markdownエディターには、記号をすべて表示するか、別のプレビュー画面を使うかという選択がよくあります。Flo State Nativeは、その中間を目指します。Markdown文書を編集できる状態に保ちながら、読み進めるときには構文の一部を目立たなくします。

これはwriter.computerのカスタマイズ版をSwift、AppKit、TextKit 2で作り直したmacOSアプリです。公式v0.1.1はv0.1.0の初回公開版に続くリリースで、編集面をブラウザーに載せず、ライブ編集の感覚をMacアプリに持ち込むことを目指しています。

構文が前に出すぎないMarkdownエディター

カーソルを行から離すと、強調やインラインコード、リンク、コードフェンスなどのMarkdown記号を隠し、読みやすい見た目に整えます。リンクも、生のURLと角括弧が並ぶ形ではなく、リンクとして認識しやすく表示されます。

文書そのものはMarkdownソースです。行を選択・編集すると必要な記号が再び見えるため、別のビジュアルエディターに固定されません。普段は読みやすく、変更するときには直接Markdownを触れるというバランスです。

表・数式・図を文書内に表示

対応するMarkdownブロックは文書内のウィジェットとして描画されます。表は表として、数式はKaTeXで、Mermaidのコードフェンスは図として表示されます。Markdown画像や対応するHTMLブロックにも専用の描画経路があります。別ペインでプレビューするより、構造を見ながら文書を編集する感覚に近い仕組みです。

ソースが消えるわけではなく、多くのブロックは選択するとMarkdownに戻ります。Mermaidだけはキャンバス表示を保ち、コード編集の操作を用意しています。表や数式の描画には同梱リソースが使われます。すべてのMarkdown拡張が完全なブラウザーと同じように動く、という意味ではありません。

ファイルを軸にしたワークスペース

アプリにはサイドバー、タブ、コマンドパレット、アウトライン、設定、検索・置換が用意されています。ノートを一つずつ開くのではなく、フォルダーをワークスペースとして扱い、編集画面を離れずにファイルや見出しを行き来できます。

ワークスペースのインデックスはローカルのプロジェクトフォルダーを想定し、.gitignoreなどの除外ルールを参照します。隠しファイルやnode_modulesも対象外です。技術文書やノートをまとめたリポジトリに向いています。READMEが説明しているのはファイル中心の使い方で、アカウント型のノートサービスではありません。

公式ReleaseからFlo State 0.1.1を入手

現在の公式パッケージはFloState-0.1.1.zipです。v0.1.1のリリースノートにもMac用ダウンロードとして記載されています。macOS 14以降が対象です。ZIPをダウンロードして展開し、Flo State.appをApplicationsへ移動してください。

open https://github.com/Altimor/flo-state/releases/download/v0.1.1/FloState-0.1.1.zip

このリリースはまだ公証されていません。初回起動では、通常のダブルクリックではなく、プロジェクトが案内する右クリック→「開く」の手順を使ってください。以降のバージョンはアプリ内から更新する想定ですが、v0.1.1を入手する入口はこの公式Releaseです。

編集はネイティブ、描画にはWeb技術も

主な編集経路はAppKitとTextKit 2で、FloCoreにはMarkdownパーサーと編集状態のSwift実装があります。デスクトップ画面の中にWebエディターを丸ごと載せる方式とは異なり、入力、選択、レイアウト、アプリの多くの部分をMacネイティブのコードで処理します。

一方、描画アーキテクチャにはWebKitも含まれます。READMEとソースではKaTeX、Mermaid、HTMLブロック向けのWebリソースが示され、一部ウィジェットの描画にWebKitを使います。「ネイティブ」とはエディターとアプリの枠組みを指し、アプリ内にWeb技術が一切ないという意味ではありません。

アップデートと初期リリースの注意点

v0.1.0が初回公開版で、v0.1.1ではタブ切り替え後すぐエディターにカーソルを置く修正や、リストの箇条書き位置の調整など、小さいながら実用的な改善が入りました。変更履歴はまだ控えめなので、成熟したMarkdown統合環境ではなく初期リリースとして見るのが妥当です。

アップデートにはSparkle 2を組み込み、毎日の更新確認とアプリ内の「アップデートを確認」操作を説明しています。更新フィードもリポジトリで公開されています。便利な仕組みですが、導入するバージョンを判断するときは公式Release一覧の変更点も確認しましょう。

ソースを変更するときだけビルドとテスト

配布ZIPを使うだけならXcodeは不要です。コントリビューター向けのREADMEはmacOS 14以降、Swift 6、Xcode 16または互換ツールチェーンを案内しています。FloCoreの共通モデル、FloKitのエディター、ネイティブアプリのターゲットに分かれており、パーサーから画面まで追いやすい構成です。

swift build --product FloStateNative
swift test

ローカルファイル中心、ただし完全オフラインとは限らない

説明されている基本の使い方はローカルのワークスペースを開くことです。ソースにもローカルファイルのインデックス、監視、セッション保存があり、アカウント型のノート同期サービスは案内されていません。Macにすでに保存しているファイルを編集するアプリと考えるのが自然です。

ただし、これだけでネットワーク通信がないとは言えません。Flo Stateは更新用の外部Sparkleフィードを使い、Markdown文書には外部リソースを含められます。リポジトリも包括的なプライバシー保証を掲げていないため、ローカルファイル中心という説明からゼロ通信を推測しないでください。

GPL-3.0-or-laterと上流プロジェクト

アプリのライセンスはGPL-3.0-or-laterです。Flo Stateは、同じくGPL-3.0のwriter.computerを基にした派生作品と説明し、挙動、設定スキーマ、テーマ、ソースの一部を引き継いでいます。

また、同梱コンポーネントにはMIT、EPL-2.0、BSD-2-Clause、MPL-2.0/Apache-2.0など複数の条件が記載されています。改変版を再配布する場合は、アプリ全体を単一の緩いライセンスだと考えず、プロジェクトの説明と個々のライセンスを確認してください。

Flo Stateが向いている人

Markdownでノートを管理し、別のプレビュー画面ではなく、読みやすい表示を備えたMacネイティブのワークスペースで編集したい人には試す価値があります。表、数式、Mermaid図、タブ、フォルダー移動が揃い、単なるテキスト欄より意欲的なプロジェクトです。

その一方で、v0.1.1はまだ初期版で、現在のZIPは未公証、ウィジェットによって描画方式も異なります。これらを許容できるなら、公式のv0.1.1ダウンロードから始められます。成熟した署名・公証済みの執筆環境が必要なら、日常利用を決める前に最新状況を再確認してください。

プロジェクト情報

ライセンス
GPL-3.0-or-later
対応環境
macOS 14以降
実装言語
Swift、AppKit、TextKit 2
確認したバージョン
v0.1.1(2026-09-27に確認した最新の公式GitHub Release)

インストール

open https://github.com/Altimor/flo-state/releases/download/v0.1.1/FloState-0.1.1.zip

ライセンスの概要

Flo State NativeはGPL-3.0-or-laterのコピーレフトソフトウェアで、GPL-3.0のwriter.computerを基にした派生作品と説明されています。変更版を再配布する場合は適用されるGPL条件を守る必要があります。バンドルされた第三者コンポーネントには個別のライセンスがあるため、すべてが同一条件だと考えないでください。