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

Unixの哲学とファイルシステムアクセスがクロード・コードを素晴らしくする

概要

  • Claude Code は、AIによるコード支援を超えた エージェント型OS として活用可能
  • Obsidian との連携で、AIによるノート管理や知識蓄積が実現
  • Unix哲学ファイルシステムアクセス が、Claude Codeの強み
  • シンプルで拡張性の高いツール設計が、AIエージェント構築の鍵
  • 今後のAI活用のテンプレートとして、 Claude Code の設計思想が有効

Claude Codeがもたらす新しいAIワークフロー

  • Claude Code は、単なるコーディング補助ツールから、日常業務を支える エージェント型OS へ進化
  • Obsidian との連携で、ノートやリサーチをAIで効率管理
    • Obsidianの特徴: Markdownファイル としてローカル保存、柔軟な同期・編集
  • ファイルがテキスト形式であることから、AIによる自動処理や知識蓄積が容易
  • 自宅サーバーにClaude Code + Obsidian環境を構築し、 SSH経由でどこでもノート管理 を実現

Claude Codeの特別さとUnix哲学

  • Claude Codeの最大の特徴は ターミナルベース であること
  • Unixコマンドとのネイティブ連携 が強力
  • Unix哲学(Doug McIlroy、Peter H. Salusによる要約)
    • ひとつのプログラムはひとつのことをうまくやる
    • プログラム同士を連携させる
    • テキストストリームを扱うことで普遍的なインターフェースを実現
  • LLM(大規模言語モデル)は、 シンプルかつ文書化されたコマンド を活用するのに最適
  • ツールが複雑すぎるとAIの力を十分に引き出せない

ファイルシステムアクセスの重要性

  • Claude Codeは ファイルシステムにアクセス 可能
  • ChatGPTやClaude(Web版)の問題点
    • 会話間での メモリがない
    • コンテキストウィンドウ が狭い
  • ファイルシステムにより、AIが 状態や知識を蓄積 し続けられる
  • ノートやタスクリストをAIが自分で管理・更新できるため、 長期的な思考や作業 が可能

Product OverhangとAIの進化

  • Product overhang :AIモデルができることに対し、活用する製品が追いついていない現象
  • Claude Codeは、モデルの持つ力を 製品として引き出す設計 に成功
  • ファイルシステム + Unixコマンド の組み合わせが、AIの潜在能力を解放

Claude Codeを超えて—ClaudesidianとInbox Magic

  • 独自に Claudesidian を公開
    • Claude Code + Obsidian環境のツールやコマンドをオープンソース化
    • 中央でのアップデートを自動マージする仕組みを実装
    • Unix哲学に基づく「小さくシンプルなツールの連携」
  • Inbox Magic (開発中)
    • Claude CodeからGmailを操作し、 メールの自動整理やプロファイリング を実現
    • 旅行関連メールを抽出し、AIがユーザーの好みに合わせたリサーチをサポート
    • ファイルシステム活用で、 複雑なタスクも自動化 可能

まとめと今後の指針

  • ファイルシステム は、LLMの「記憶・状態管理」の突破口
  • ツール連携は Unix哲学 (シンプル・連携・テキスト中心)を徹底
  • Claude Code は、今後のAIエージェント設計の「青写真」
  • 複雑なマルチエージェントよりも、 単純なツールのパイプ処理 が重要
  • AIの活用例を見つけられない人は、 もっと工夫すべき

Hackerたちの意見

これやろうぜ。完全にローカルで。ローカルの黒曜石、ローカルのLLM、全部オープンソースで。これが俺が望む未来だ。

アップルってことね。

ローカルのOrg mode、ローカルのLLM、全部Emacsでオーケストレーション。全部フリーソフトウェア。もし俺が引退して無限の時間があればなぁ!

オープンウェイトだけじゃ足りないよ。データセットとトレーニングパイプラインのコントロールも必要だ。俺みたいな普通のユーザーは、真剣なインフラがないとパイプラインを動かせないけど、データの使われ方やモデルのトレーニング方法を理解することはすごく大事なんだ。そうすれば、モデルを所有できて、そのバイアスをオープンに評価できるから。

これ、opencodeでできるかも?あんまり遊んでないけど。

LLMのおかげでオープンソースプログラムがより実現可能で価値のあるものになってる。俺が使ってるプログラムの中には、もうちょっと違ったらいいのにって思うものがたくさんあるけど、たとえオープンソースでも、ソースコードの構成に慣れるのに時間がかかるんだ。一方で、LLMは小さな調整や新しいマイナー機能みたいな自己完結的な変更には結構得意なんだ。これによってオープンソースプログラムの修正が楽になるけど、オープンソースじゃないプログラムには全く変更できないってことにもなる。前は変更するつもりもなかったけど、今は実際にできるから、変更できる能力(つまりプログラムがオープンソースであること)がすごく重要になってきた。

有用なサイズのモデルをローカルで使うのは、(少なくとも64GB RAMと1つのGPUの典型的な開発マシンでは)不可能ではないんじゃない?

これ、興味あるかもね。 https://laurentcazanove.com/blog/obsidian-rag-api

LM Studio + aider

Claude Codeが取ってるUnixアプローチ、めっちゃ好きだわ。これのおかげで、他のUnixライクなツールを簡単に作れるし、基本的に統合のオーバーヘッドなしでClaudeが使える。ツールのマニュアルページを渡すだけで、MCPやカスタムツール定義の面倒なしに上手く使ってくれる。俺はClaudeがブラウザを使えるツールを作ったけど、Claudeはそれを使うのに全く問題ないんだ。

僕にとっての「ライトスイッチ」な瞬間は、Claudeに問題を自分で探させるんじゃなくて、リンターを使うように指示できるって気づいた時だね。後者もまあまあ機能するけど、ツールを呼び出させる方がずっと効率的なんだ。リンターが何かは教えなかったけど、提案を求めたら、約12個の提案をくれたから、それをインストールしたら、特に指示しなくても使い始めた。1年くらい前にChatGPTでコーディングを試みた時は、役に立つものを得るための労力がメリットを大きく上回ってたから、CCに対してはあまり期待してなかったんだけど、すごく驚いてるよ。

俺はまさにこれをMCPでやったよ。{ "name": "unshare_exec", "description": "Run a binary in isolated Linux namespaces using unshare", "inputSchema": { "type": "object", "properties": { "binary": {"type": "string"}, "args": {"type": "array", "items": {"type": "string"}} }, "required": ["binary"], "additionalProperties": false } } 最初はunshareから始まって、結局ちょっとした手間がかかったけど、ローカルでgemma3を使って、任意のDebianベースのユーティリティを実行できるようにしたら、意外といい結果が出たんだ。

セーターを共有してくれる?それとも今は裸のヤク?君が考えたものを見てみたいな。僕のローカルLLMの経験は…ほとんどの場合、イマイチだったよ。

昔はCLIは死んだって言われてたよね?でも今は、Claude Codeみたいなツールのおかげで、CLIが実際に優れたインターフェースだってことがはっきりしてきた。(少なくとも今のところはね)もちろん、これは「私たち対彼ら」の炎上戦争にするつもりはないけど、こういう逆転を見るのは楽しいね!

高度なコンピュータユーザー、開発者を含めて、CLIが死んだなんて言ってた人は思い出せないな。CLIは、コンピュータがGUIに十分な性能を持つようになってから、エンドユーザーにとっては死んでたけど、CLIは常に裏で存在してた。最も「CLIは死んだ」って考えが広まったのは、90年代後半のOSX以前のMacOSやWindowsの頃かもしれないけど、その後OSXが本格的なUnixシェルを提供して、WindowsはPowerShellを出して、Linuxとそのシェルがサーバーマーケットを支配するようになった。

すぐに戻ってくるかもしれないね。僕はカスタムGUIインターフェースを書いて、コンピュータの使い方を効率化するために使ってるんだ。自分の変わった好みに合わせたデスクトップ環境を作るために、少しずつ進めてる。昔は基本的なことをするためにターミナルを頻繁に使ってたのは、主流のGUIツールを使うのが一般的にイライラしたからだけど、それが急速に変わってきてるよ。

すべてのGUIアプリはそれぞれ違ってて、各々が独自の不満を抱えてる。彼らは、オペレーティングシステムの境界内に散らばった封建領地みたいなものだね。CLIは共通の場で、仲間が集まり、流れがあり、信号が交換される統合広場なんだ。この情報バザールに入るのに、特に約束をする必要はない。GUIの世界で最も近いアナロジーはSmalltalkだけど、やっぱり入る前に忠誠を誓わないといけないね。

Codexは今、Claudeコードと比べてどうなの?特に、gpt 5がプランニングに強くて、Codexがコーディング部分を担当してるって感じ?

特に良いとは言えないかな、少なくとも私の限られた経験ではね。ある人たちはかなり良くなったって言ってるけど、私はClaudeより明らかに遅いと感じてる。タスクを完了するのに2~3倍の時間がかかることが多いし。ただ、もう少し時間ができたら再挑戦してみるつもり。今はスケジュールがタイトすぎて、その遅さに合わせる余裕がないんだ。

Claudeより遅いと思ったけど、 - かなりお世辞が少ない(Claudeが毎回吐き出す「あなたは絶対に正しい」ってのがほとんどない) - 文脈やAGENTS.mdの指示を忘れたり無視したりする可能性が低い - 最初の30~50%の文脈で「今すべてが修正された」と主張するランダムな変更が少ない - 使用ルールの理解が良い(下のリンク参照)、Claudeが見逃すことを一発でやってのけることもある 言語 + フレームワーク:Elixir, Phoenix LiveView, Ash, Oban, Reactor SLoC:22k行 AGENTS.md:いくつかのシンプルな指示、2つのMCP(TidewaveとStripe)への指示、次のファイルに進む前にコンパイルする必要がある、使用ルール https://hexdocs.pm/usage_rules/readme.html

Codex CLIはここ数ヶ月で大きなアップグレードがあったよ。GPT-5のリリース前は、個人的にはひどい模倣だったと思う。macOSのターミナルでは、コピー&ペーストすら無効にしちゃったりして!今のCodexは、そのバージョンと比べるとほとんど別物だよ。本当に良くなった。今はCodexとClaude Codeをほぼ同じように使ってるけど、どちらが特に優れているって感じはしないな。

GPT-5-Codex(OpenAI Codex CLIでデフォルトで使われているモデル)が優れていると思うけど、他の人が言ってるように遅いね。注意点として、Linux環境、OSX、またはWSLが必要だよ。一般的に、賢いコードを書いてくれるし、賢いリファクタリングもしてくれるから、コードベースに混乱をもたらすことが少ないんだ。おもちゃのコードベースの話じゃなくて、大規模なコードベースで、何十もの相互接続されたツールやプロジェクトを使ってる。Claudeはちょっと厄介なところがあって、視野が狭いんだよね。みんな絶賛してるけど、それは彼らが実際には小さくて範囲の狭いツールやウェブサイトを作ってるからだと思う。大きなプロジェクトでは、既存のパターンを見たり、何かがすでにやられているかどうかを気にかけるモデルが必要なんだ。Claudeはすごく早いけど、冗長なコードやおかしなコードを生成しがち(「この関数を7通りのやり方で試してみよう、その中の1つが通るはず」みたいな)。これはジュニアコーダーのやることだよ。GPT-5-Codexは完璧じゃないけど、そういうのはずっと少ない。時間は5倍くらいかかるけど、もっと信頼できるものができるよ。それに、Codexはツールを賢く使うことが多いね。リファクタリングの時は、コードを再記述するんじゃなくて、コードをコピーするためにツールを使うことが多い。再記述はLLMによって多くのバグが導入される原因なんだ。Sonnet 4.5はまだ触ってないから、もしかしたら改善されてるかもね!

人気の新しいツールがターミナルで動くからって、それが「Unix哲学」の素晴らしい例になるわけじゃないよね、笑。5秒以上考えればその比較は意味がないってわかるし、ハッカーニュースの釣りタイトルに引っかかっちゃったね :(

  1. 一つのことをする小さなプログラムで、理解しやすいこと。 2. それらのプログラムが互いに統合されて、より複雑なタスクを達成すること。 3. テキストストリームが普遍的なインターフェースで、状態はディスク上のテキストファイルとして表現される。UNIX哲学は、テキストストリームをインターフェースとして使うLLMにぴったりだね。もうそれが当たり前すぎて、私たちは「見えなく」なってるけど。すべてのツールがファイルで動いて、exec()のテキストベースのインターフェースで他のプログラムから簡単に呼び出せて、テキストを出力するから、LLMが使いやすくて消費可能なんだよね。これがソフトウェアの作り方である必要はなかったはず。

ここでのUnix哲学は、ターミナルアプリであることよりも(すごくリッチなターミナルアプリで、画面全体を再描画することも多いし)、現代のLLMにシェルコマンドを実行する能力を与えることで、信じられないほど便利な新しい機能が解放されるってことだね。今やLLMは、人間がシェルにコマンドを入力することでできることはほぼ何でもできるようになったんだ。

自分のローカルデータやファイルがどれくらいネットワークに送信されるのか、よくわからないから、いくつかの設定では使えないかも。

これ、すごく共感できた。ターミナルでClaudeコードを使うことの良さを実感してるから。よく使うトリックの一例はこういう感じ:「シェルコマンドを実行できるよ。tmuxを使って、'bingo'という名前のセッションを見つけて、そのペインを表示してね。tmuxを使って、そのペインにキーストロークを送ることもできるよ。シェルコマンドを実行する時は、そのtmuxペインで実行してくれると、こっちで見られるから。今、そのペインは私のCiscoルーターにログインしてるよ…」

ClaudeとObsidianの組み合わせは最高だね。ワークフローの難しい部分をロボットに任せられるから。毎日のメモを分析するようになったんだ—意識の流れをそのまま書き出したものから、新しいZettelノートやプロジェクト、アイデアを見つけるために。Geminiもなかなかいい感じだよ。