MarsDawn

コマンドライン

無料の marsdawn コマンドラインツール:シェルや LLM エージェントから Markdown を PDF に書き出せます。MarsDawn アプリがインストールされていれば、そのアプリでファイルを開くこともできます。

marsdawn は無料で、Mac App Store とは別に配布されています。Homebrew でインストールすると、Apple シリコンの Mac では、すぐに実行できる状態でインストールされます。export は単独で動作し、open には MarsDawn アプリが必要です。

AI エージェントやスクリプトから marsdawn を呼び出しますか?JSON 出力とそのスキーマ、すべての終了コードについてはAI エージェント向け marsdawnをご覧ください。

インストール

Homebrew を使う場合:

brew tap redtear1115/tap && brew install marsdawn

コーディングエージェントを使っていますか?marsdawn skill --install を実行してmarsdawn スキルを追加してください。自分が書いたものを MarsDawn で開いてあなたに確認してもらう方法と、PDF の書き出しを教える、1つのファイルです。

Apple シリコンの Mac では、Homebrew がビルド済みのコピーを数秒でインストールし、他に何もインストールする必要はありません。Intel Mac では代わりにソースから marsdawn をビルドするため数分かかり、Xcode 26 以降(Swift 6.2)が必要です。このツールは macOS 15 以降で動作します。

または、Swift Package Manager でソースからビルドします。

git clone https://github.com/redtear1115/mars-dawn-kit.git
cd mars-dawn-kit
swift build -c release --product marsdawn

インストールされているバージョンは marsdawn --version で確認できます。

コマンド

marsdawn open

1つ以上の Markdown ファイルを MarsDawn アプリで開いて確認できます。アプリのインストールが必要です。インストールされていない場合、marsdawn open はコード 3 で終了し、MarsDawn がインストールされていないことを知らせます。export にはアプリは不要です。アプリは Mac App Store で配信中です。

marsdawn open notes.md
marsdawn open notes.md:120
marsdawn open notes.md --line 120
marsdawn open .
marsdawn open notes.md --folder .

行の指定は marsdawn 0.3.0 で、フォルダと --background は 0.5.1 で、--wait とフォルダの状態は 0.5.3 で追加されました。

marsdawn export

Markdown ファイルを、MarsDawn 自身の PDF 書き出しと同じ書き出しエンジンで、ページ分割された PDF にレンダリングします。MarsDawn アプリは不要です。相対パスの画像は、入力ファイルのあるフォルダを基準に解決されます。

marsdawn export notes.md -o notes.pdf --theme classic --paper a4

--breaks は marsdawn 0.7.0 で、--layout と --toc-title は 0.7.1 で、handbook という名前は 0.7.2 で追加されました。0.7.1 の名前 manual も使えます。

marsdawn theme

テーマファイル(theme.json)を共有する前に、チェックして見た目を確かめます。MarsDawn アプリは不要です。テーマの項目は エージェントとテーマを作る を参照してください。

marsdawn theme validate my-theme.json
marsdawn theme css my-theme.json
marsdawn theme preview my-theme.json --appearance dark -o preview.png

theme コマンドは marsdawn 0.6.1 で追加されました。

$MARSDAWN_THEME 環境変数

--theme が指定されない場合、export は $MARSDAWN_THEME 環境変数を読み取ります。値は dawn、classic、modern、vivid のいずれかである必要があり、それ以外は dawn にフォールバックします。CLI はアプリ自身のテーマ設定を読み取りません。他のアプリのコンテナを読み取ると、macOS のプライバシープロンプトが表示されることがあるためです。

ファイルの上書き

export は、--force を指定しない限り、既存の出力ファイルを置き換えません。

終了コード

コード意味対処
0成功。--json を付けた場合は、stdout の1行の JSON を読む
2入力が見つからない。パスとファイル名を確認する
3MarsDawn がインストールされていない(open のみ)。アプリをインストールするか、アプリが不要な export を使う
4出力先がすでに存在する(--force を指定してください)。--force で上書きするか、-o で別の場所に書き出す
5書き出しに失敗。JSON の結果の message を読む
6この MarsDawn はまだフォルダを表示できないため、何も開かなかった(open のみ)。
64使用方法のエラー。範囲外の行、複数ファイルやフォルダに対する --line の指定、複数のフォルダの指定などを含みます。オプションや値を直す。このエラーは --json を付けても stderr にテキストで出力される

--json 出力

成功時、marsdawn open --json は ok、opened(各ファイルの path、行が指定されていれば line も含む)、app(アプリのパス)、フォルダが指定されていれば folder を出力します。marsdawn export --json は ok、output、pages、theme、paper、diagramErrors を出力します。失敗時はどちらも ok、error、message を出力します。