gpt.el & mcp.el で整う emacs llm環境

はじめに Emacs内での大規模言語モデル(LLM)との連携は、ここ数年で劇的な進化を遂げてきました。 私の最初のEmacs 内LLMとの出会いは2022年11月、copilot.el によるAI 自動補完でした。このときの感動は鮮明に覚えています。 その後間もなくChatGPT が登場し、ChatGPT.el 等でEmacs内でのAIとの対話ができるようになりましたが、当時は機能も少なく、EmacsでLLMを使うメリットはあまり感じられませんでした。 自分的ブレークスルーは、東京Emacs勉強会 サマーフェスティバル2024 のTomoya さんの発表で ellama を知ったことでした。 ellamaでは従来の対話形式だけでなく、様々な関数を通じてLLMを利用でき、Emacs が何倍も強力な開発環境へと変貌しました。 そして最近では gptel が llm module として doom emacs に正式に組み込まれ、ツール連携やプロンプト/コンテクストエンジニアリング1が非常にスムーズになりました。 これとmcp.el と組み合わせることで、LLM in emacs がある種のplateau に達したのではと感じている今、これを知らないEmacser (同胞) がもしいたら非常に勿体ないと思うので、この記事を書くことにしました。 gptel, mcp.el の設定方法や使う理由、ユースケースなどを紹介します。 gantt title 私のEmacs 内LLM 遍歴 todayMarker off dateFormat YYYY-MM axisFormat %Y-%m section 自動補完 copilot.el :2022-11, 32M section 黎明期 ChatGPT.el :2023-03, 17M org-ai :2023-12, 8M section 革命 ellama/llm :2024-08, 9M section 開拓期 ai-org-chat :2024-11, 2M ob-llm :2025-01, 2M elisa :2025-03, 1M copilot-chat.el :2025-03, 2M section 成熟期 gptel+mcp.el :2025-05, 2M claude-code.el :2025-06, 1M copilot-emacs/copilot.el: An unofficial Copilot plugin for Emacs. joshcho/ChatGPT.el: ChatGPT in Emacs rksm/org-ai: Emacs as your personal AI assistant s-kostyaev/ellama: Ellama is a tool for interacting with large language models from Emacs. ahyatt/llm: A package abstracting llm capabilities for emacs. ultronozm/ai-org-chat.el jiyans/ob-llm s-kostyaev/elisa: ELISA (Emacs Lisp Information System Assistant) is a system designed to provide informative answers to user queries by leveraging a Retrieval Augmented Generation (RAG) approach. chep/copilot-chat.el: Chat with Github copilot in Emacs ! karthink/gptel: A simple LLM client for Emacs lizqwerscott/mcp.el: An Mcp client inside Emacs stevemolitor/claude-code.el: Claude Code Emacs integration gptel とは gptelは、Emacsのためのシンプルかつ強力な大規模言語モデル(LLM)クライアントです。 Emacs内のあらゆる場所から自由な形式でLLMと対話できる環境を提供します。 このデモを見ると使用イメージが分かりやすいです。 ...

7月 2, 2025 · 4 分 · Kaoru Babasaki

NixOSのエラー: Could not start dynamically linked executable の対処法についてのメモ

別記事 gpt.el & mcp.el で整う emacs llm環境 -> mcp.el の設定例 にあるようにmcp.el で使ういくつかの mcp server の起動で uvx を使用しているのですが、nixOS で最初に起動したときにエラーが出てしまいました。 解決方法と原因を Gemini に調べさせたので、メモしておきます。 症状とエラーメッセージ *Mcp-Hub* buffer で mcp-hub-view-log を確認すると、以下のエラーが出ていました: [stderr] Could not start dynamically linked executable: /home/bk/.cache/uv/archive-v0/unI5q9QapqXHm9fPXna4G/bin/python [stderr] NixOS cannot run dynamically linked executables intended for generic [stderr] linux environments out of the box. For more information, see: [stderr] https://nix.dev/permalink/stub-ld [jsonrpc] D[14:56:49.461] Connection state change: `exited abnormally with code 127 解決策:nix-ld を有効にする nix conifguration で、以下を足したら直りました。 ...

7月 2, 2025 · 1 分 · Kaoru Babasaki

ox-hugo で mermaid.js を使う方法

はじめに このブログは、以下のワークフローで運用されています。 graph LR org-mode -- <a href="https://ox-hugo.scripter.co/">ox-hugo</a> --> markdown -- <a href="https://gohugo.io/">Hugo</a> --> HTML 上のようなフローチャートなどのダイアグラムを載せようとすると、どのような方法が思い浮かぶでしょうか? まさか、パワポ等で作ったダイアグラムを画像としてエクスポートして…なんて方法は考えていませんよね? それ、Dティアです 図1: パワポはまじでDティア それはさておき、私はダイアグラムを作る方法について詳しくなかったので、ox-hugo を使うという前提で Gemini 2.5 Pro に、Deep research してもらいました。 結果、以下のようなTier Listができました。1 表 1: ox-hugo でのダイアグラム作成方法のTier List by Gemini 2.5 Pro & me S HugoレンダーフックによるMermaid.js A Org Babel + Hugo Kroki 純粋なOrg Babel実行 (PlantUML/Ditaa) B GUIツール (Excalidraw等) で作成し、SVG/PNG画像として挿入 レガシーなHugoショートコード C iFrame埋め込み アスキーアート (ditaa, GoAT) D 🤮 M社製品 (PowerPoint, Visio)で作成+バイナリ挿入 🤮 表で示しているように、個人的にはmermaid.js を使うのがベストです。 しかし、方法がそれほどシンプルではなく、 少し面倒だったので、書き残しておきます。 ...

6月 21, 2025 · 2 分 · Kaoru Babasaki

ox-hugoのreferenceがうまく表示されない問題

問題 Org Cite Citationsを使って #+print_bibliography: でreferenceを表示しようとしたが、“References"というヘッダのみが表示され、referenceのリストが表示されなかった。 content/ の中のmdファイルを見ると、htmlとして、referenceのリストが書き出されていたが、 public/ の中のhtmlファイルを見ると、referenceのリストが表示されていなかった。 よって、 org -> md -> html という変換の md -> html の部分で問題があると考え、調べてみると、同じ問題についてのissueが立っており、以下の解決策にたどり着いた。 解決策 config.tomlに [markup.goldmark.renderer] unsafe = true を追加することで解決できる 自分の場合はymlを使っていたので、以下のように設定した。 markup: goldmark: renderer: unsafe: true 解説 Goldmark — ox-hugo - Org to Hugo exporter で書かれているように、 Hugo v0.60.0以降、デフォルトのMarkdownパーサーはCommonMark準拠のGoldmarkに変更された。 以前のデフォルトパーサーであるBlackfridayは、仕様に準拠しておらず、多くのバグを抱えていたらしく、ox-hugoを使い続ける場合は、特別な理由がない限り、Goldmarkに移行することが推奨されている。 ただし、Goldmark/Hugoには、Blackfridayと比較してMarkdownのパース方法にいくつかの問題があり、 その一つが、今回の問題である、インラインHTMLがうまく表示されないというものっぽい。 この解決策によって、Markdown内でインラインHTML を使用できるようになるということらしい。

11月 12, 2024 · 1 分 · Kaoru Babasaki