Hyades について
Hyadesは、標準LaTeXの数式を、選択可能なUnicodeまたはASCIIテキストに変換します。ターミナルやコードコメント、プレーンテキスト文書向けの、依存関係のないC製コマンドラインツールで、AIアシスタント向けのローカル・リモートMCPサーバーも備えています。
主な機能
- 01LaTeX数式をUnicodeテキストに変換
- 02ASCII出力モード
- 03表、リスト、テキストレイアウト
- 04マクロと計算構造
- 05HelixとNeovimのエディター対応
- 06ローカル・リモートMCPサーバー
活用シーン
- 01ターミナル出力で数式を表示
- 02コードコメントやメールに数式を追加
- 03ラベル付きプレーンテキスト文書の処理
- 04AIアシスタントによる数式のレンダリング
MCP 対応
Hyadesは、AIアシスタントが数式をレンダリングできるローカルおよびリモートのMCPサーバーを提供します。リモート版はCloudflare Workerを使用し、ローカル版はネイティブバイナリとして動作します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://hyades-mcp.apg.workers.dev/mcpclaude mcp add --transport http apology-is-policy-hyades https://hyades-mcp.apg.workers.dev/mcp{"mcpServers":{"apology-is-policy-hyades":{"type":"http","url":"https://hyades-mcp.apg.workers.dev/mcp"}}}Cursor で開く{"servers":{"apology-is-policy-hyades":{"type":"http","url":"https://hyades-mcp.apg.workers.dev/mcp"}}}VS Code で開く{"mcpServers":{"apology-is-policy-hyades":{"type":"http","url":"https://hyades-mcp.apg.workers.dev/mcp"}}}{"mcpServers":{"apology-is-policy-hyades":{"serverUrl":"https://hyades-mcp.apg.workers.dev/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
1| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| ascii | boolean | いいえ | Unicode ではなく ASCII のみで出力します(デフォルト:false) |
| width | integer | いいえ | 出力幅(文字数、デフォルト:80)。標準的なターミナル幅には 80 を使用してください。複雑な数式では 60 未満にしないでください。 |
| source | string | はい | Hyades ドキュメントの完全なソースです。ディスプレイ数式には $$...$$、インライン数式には $...$ を使用します。数式外のプレーンテキストは本文としてレンダリングされます。 |
詳細
Hyades
純粋な Unicode テキストとしての LaTeX 数式。 ターミナル、コードコメント、メールなど、リッチな書式設定が使えないあらゆるところで。
上のすべての数式は純粋なテキストです -- 選択してどこにでもコピー&ペーストできます。ソースは標準的な LaTeX です。
これは何?
Hyades は次のような標準的な LaTeX 数式を受け取り、
$$
f(x) = \overbrace{\sum_{k=0}^{n} \frac{f^{(k)}(a)}{k!}
(x-a)^k}^{\mathit{Taylor polynomial}}
+ \underbrace{R_n(x)}_{\mathit{Remainder}}
$$
複数行の Unicode テキストとしてレンダリングします:
𝑇𝑎𝑦𝑙𝑜𝑟 𝑝𝑜𝑙𝑦𝑛𝑜𝑚𝑖𝑎𝑙
╭───────────┴───────────╮
𝑛 (𝑘)
─── 𝑓 (𝑎) 𝑘
𝑓(𝑥) = ╲ ───────── (𝑥 − 𝑎) + 𝑅 (𝑥)
╱⎽⎽ 𝑘! 𝑛
𝑘 = 0 ╰───┬───╯
𝑅𝑒𝑚𝑎𝑖𝑛𝑑𝑒𝑟
あるいは、指定すればプレーンな ASCII としても:
n (k)
--- f (a) k
f(x) = \ --------- (x - a) + R (x)
/__ k! n
k = 0
これは純粋な C で書かれたネイティブな CLI バイナリです。そのため非常に高速で、追加の依存関係を一切必要としません。 Linux、MacOS、Windows、そして Web(WASM)がすべてすぐに利用できます。
ブラウザで試す → -- チュートリアルと完全な構文リファレンスを備えたインタラクティブな WASM プレイグラウンドです。インストールは不要です。
機能
数式 -- LaTeX と 95% 互換
分数、根号、積分、総和、総積、極限、行列、区分関数、整列した方程式、ギリシャ文字、自動スケーリングする区切り記号、overbrace/underbrace、アクセント、プライム、二項係数、伸長可能な矢印、方程式タグなど、あらゆるものが揃っています... 既存の LaTeX を貼り付けるだけでレンダリングされます。
数式機能の全リスト
| カテゴリ | コマンド |
|---|---|
| 分数 | \frac、\dfrac、\tfrac -- 無限に入れ子にできます |
| 根号 | \sqrt{x}、\sqrt[n]{x} |
| 大型演算子 | \sum、\prod、\int、\iint、\iiint、\oint、\oiint(上下限付き) |
| 極限 | \lim、\limsup、\liminf、\max、\min、\argmax、\argmin |
| 行列 | \pmatrix、\bmatrix、\Bmatrix、\vmatrix、\Vmatrix -- \begin{pmatrix} 構文も使用できます |
| 場合分け | \cases{...} -- 区分関数 |
| 整列 | \aligned{...}(\intertext と \tag に対応) |
| ギリシャ文字 | 小文字(\alpha–\omega)と大文字(\Gamma–\Omega)の完全版 |
| 区切り記号 | \left/\right の自動スケーリング、\middle、不可視の \left.\right|、\big–\Bigg のサイズ指定 |
| アクセント | \hat、\bar、\tilde、\vec、\dot、\ddot、\acute、\grave、\breve、\check |
| 幅広の装飾 | \overline、\underline、\overbrace、\underbrace、\overrightarrow、\widehat、\widetilde |
| 注釈 | \overset、\underset、\stackrel、\boxed、\tag、\substack |
| 数式フォント | \mathbf、\mathbb(ℕℤℚℝℂ)、\mathcal、\mathfrak(𝔄𝔅ℭ)、\mathsf(𝖠𝖡𝖢)、\mathscr、\boldsymbol(太字のギリシャ文字 𝛂𝛃、太字の ∇ → 𝛁) |
| 関係 | \leq、\geq、\neq、\ll、\gg、\prec、\succ、\approx、\equiv、\sim、\propto、\coloneqq、:=、\not 接頭辞 |
| 集合論 | \in、\notin、\subset、\subseteq、\cup、\cap、\setminus、\emptyset |
| 論理 | \forall、\exists、\neg、\land、\lor、\implies、\iff、\therefore、\because |
| 矢印 | \rightarrow、\Rightarrow、\mapsto、\hookrightarrow、\xrightarrow{f}、\xleftarrow{g} |
| 整数論 | \pmod、\bmod、\mid、\binom |
| 演算子 | \oplus、\otimes、\odot、\circ、\bullet、\star、\dagger、\ddagger |
| 関数 | \sin、\cos、\log、\ln、\exp、\det、\ker、\gcd、\operatorname{...} |
| レイアウト | \phantom、\smash、\mathord、\mathbin、\mathrel |
| 互換 | \displaystyle、\textstyle、\notag は何もしないものとして受け入れられます -- LaTeX をそのまま貼り付けられます |
- テーブル --
\tableと\row/\col、6 種類の枠線スタイル(single、double、bold、rounded、dotted、none)、パディング、配置、列結合 - リスト --
\fancylistは Markdown 構文を使ってリストを構築します - レイアウト -- Flex ライクな
hbox/vboxコンテナ。自動・固有・固定幅の子要素、水平・垂直配置に対応 - テキスト整形 --
\textbf、\textit、\texttt、\verb|...| - 段落レイアウト -- 等幅フォントに最適化された改行を伴う両端揃え、または通常の左揃え。ハイフネーションにも対応
- 罫線 --
\hrule/\vrule。自動サイズ調整とスマートな自動接合部の交差に対応 - マクロ -- パラメータと変数スコープを備えたユーザー定義が可能
- 計算 -- 変数、配列、ループ、条件分岐、ラムダ -- スタックベースの命令マシンを備えた完全なプログラミング言語
- ASCII モード -- Unicode 非対応環境向けの完全な ASCII フォールバック
- シンタックスハイライト -- vscode、Helix、Neovim 向け
- インラインエラー診断 -- vscode、Helix、Neovim 向け
インストール
ビルド済みバイナリ
Releases からダウンロードし(macOS、Linux、Windows)、インストールスクリプトを実行します:
# Linux / macOS
chmod a+x install.sh
./install.sh
# Windows (PowerShell)
.\install.ps1
スクリプトは以下を実行します:
- hyades、cassilda、hyades-cmp をインストールし、PATH に追加
- Unix:
$HOME/.local/bin - Windows:
$env:USERPROFILE\bin
- Unix:
- インストールされていれば Helix と Neovim に統合
- 以下の場所にドキュメントファイルをレンダリング
- Unix:
$HOME/.local/share/hyades/docs - Windows:
$env:USERPROFILE\AppData\Local\hyades
- Unix:
- インストールを検証するために何かを組版
これにより hyades、cassilda、hyades-mcp が PATH に追加され、インストールされていれば tree-sitter グラマーと LSP サーバーが Helix や Neovim に統合されます。
ソースからビルド
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
# → build/hyades, build/cassilda
使い方
# Render LaTeX from stdin
echo '$$\sum_{i=1}^n i^2$$' | hyades
# Render a source file
hyades equations.hy
# ASCII-only output
echo '$$\int_0^1 f(x) dx$$' | hyades --ascii
# Run an interactive-mode Hyades program
hyades -c matrix_rain.hy
2 つのバイナリ
| hyades | .hy ソース(または標準入力)を標準出力にレンダリングします。手早い数式、パイプ、コードコメントに使用します。 |
| cassilda | .cld ファイル用のドキュメントプロセッサです。ラベル付きセクションをその場で、コードコメントに、または標準出力にレンダリングします -- プレーンテキスト版の Jupyter ノートブックのようなものです。 |
# Render a labeled section to stdout
cassilda render notebook.cld section_name
# Process all sections in-place
cassilda process notebook.cld
MCP サーバー
MCP サーバーを使うと、AI アシスタントが数学式をその場でレンダリングできます。
リモート -- インストール不要、Cloudflare Worker:
# Claude Code
claude mcp add hyades --transport http https://hyades-mcp.apg.workers.dev/mcp
# Claude Desktop / Cursor / Windsurf -- add to config:
{ "mcpServers": { "hyades": { "url": "https://hyades-mcp.apg.workers.dev/mcp" } } }
ローカル -- オフライン、ネイティブバイナリ(リリースに含まれています):
# Claude Code
claude mcp add hyades /path/to/hyades-mcp
# Claude Desktop / Cursor / Windsurf -- add to config:
{ "mcpServers": { "hyades": { "command": "/path/to/hyades-mcp" } } }
例: ターミナルで Claude と数学について推論する
インストールスクリプトは、インストールされているエディターを自動的に設定します。手動でのセットアップも可能です -- 設定ファイルはリリース内の editor-configs/ にあります。
Helix と Neovim は、すぐに完全な統合が利用できます:
- tree-sitter によるシンタックスハイライト (
.hyおよび.cldファイル) - エラー診断 -- インラインおよびガター表示
- 定義へ移動 -- マクロとラベルの定義へジャンプ
- ホバー -- コマンドとマクロのドキュメントポップアップ
- 補完 -- コンテキストを考慮した候補の提案
- 参照 -- シンボルのすべての使用箇所を検索
Hyades in Helix on MacOS (GhosTTY, font: PragmataPro Mono)
Hyades in Helix on Windows (font: JuliaMono)
VS Code 拡張機能も利用可能です。(まだ仕上げと公開ができていませんが、数日のうちにできるはずです。)
さらにその先へ
Hyades にはバイトコードコンパイラーとスタックベースの VM (Subnivean と呼ばれます) があり、マクロやレンダリングを支えるためのほぼあらゆる計算コードを書くことができます。リリースパッケージには 2 つの楽しい例が含まれています。1 つ目はターミナル向けの Matrix コードエフェクトです
そして 2 つ目はインタラクティブなライフゲームです
これはまた、Hyades がチューリング完全であることの直接的な証明でもあります。
AI に関する開示
私はこのプロジェクトを AI 時代より前に始めたので、その約半分は AI なしで作られました。その後、Claude は、私だけでは何週間もかかったであろう機能の実装、特に小さな赤ちゃんの世話をしながらでも、このプロジェクトを完成させるために大いに助けてくれました。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。