
2026/07/22 2:12
Show HN: CodeAlmanac – あなたの対話から生成される Karpathy スタイルのコードベースウィキ
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
CodeAlmanac は、クラウドへのログインやデータアップロードを必要とせずに、システム履歴、破損したコンポーネント、およびクロスファイルのワークフローについて深い洞察を提供する専用エージェントによって管理される、ローカルコードベースのための AI 搭載型ライビングウィキとして機能します。macOS 向けに設計されており、Codex または Claude Code と連携し動作します。Python 3.12 以上が必要であり、インストールコマンドは
uv tool install codealmanac@latest です(従来の npm パッケージは廃止済み)。プライバシーを最優先とし、ユーザーが匿名テレメトリーを完全に無効化できるため、コード、パス、認証情報などは外部へ送信されません。ただし、ingest、garden、build などのコマンドを実行する信頼されたローカルエージェントは、almanac/ ディレクトリで定義されたポリシー境界内における広範なファイルシステム権限を持って動作することに注意してください。セットアップは codealmanac init コマンドによる構造化初期化から始まり、その後、データを最新状態に保つために 3 つの自動化されたバックグラウンドジョブが実行されます:5 時間ごとの同期(Sync)、そして毎日実行される Garden と Update です。これらは CLI を介して手動でもトリガー可能です。アプリケーションはセキュリティを強化するため、ランタイム状態を Git の履歴から除外される独立したディレクトリ(~/.codealmac/)に保存し、ウィキコンテンツはリポジトリ内の almanac/ フォルダ下に配置します。ユーザーは ~/.codealmanac/config.toml で設定を構成でき、略称「ca」を使用できます。また、特定のフラグを用いたり再インストールしたりすることで、ランナーやハーネスエラー(例:ENOENT)を切り替えたりトラブルシューティングしたりできます。最終的に、依存関係とシステム状態を即座に可視化する包括的なローカル Web ビューア(codealmanac serve)を提供し、Git の差分、GitHub の PR/Issues、URL、エージェントのトランスクリプトなど多様な入力をインGEST することが可能です。本文
CodeAlmanac リビング・ウィキガイド
CodeAlmanac は AI コーディング エージェントによって維持・管理されるリビング・ウィキです。システムの状態、以前に壊れた部分、重要不変条件、ワークフローのサービス間横断といった、コードには保持できないコンテキストを AI エージェントへ提供します。
リポジトリ内のプレーンな Markdown ファイルで構成され、ローカライズされたインデックスを持ち、Git でレビュー可能です。
環境要件
- プラットフォーム: macOS (Codex または Claude Code 使用)
- Python バージョン: Python 3.12 以上が必要です
クイックスタート
# インストールと設定 uv tool install codealmanac@latest codealmanac setup
詳細な設定オプションについては 設定 (Setup) を参照してください。
基本的なコマンド
cd your-repo # ウィキが存在しない場合に作成する codealmanac init # 検索してウィキページを表示する codealmanac search "getting started" # ターミナルで単一のページを開く codealmanac show getting-started # ローカルの Web ビューア上でウィキを表示する codealmanac serve
設定 (Setup)
使用するローカルツール向けのグローバルなエージェント指示書(インストラクション)をインストールします。
インストールオプション
以下のコマンドのいずれかを実行してください:
-
インタラクティブな設定:
codealmanac setup -
推奨デフォルト値での高速インストール (Codex):
codealmanac setup --yes -
Claude を AI ランナーとして使用する高速インストール:
codealmanac setup --yes --runner claude
インストールされるバックグラウンドジョブ
以下の 3 つの
launchd ジョブ(タスク)がローカルで実行されます。
| ジョブ | デフォルトスケジュール | 役割 |
|---|---|---|
| Sync | 5 時間ごと | 最新の Codex および Claude の対話をスキャンし、ウィキに有用な知識を登録します。 |
| Garden | 24 時間ごと | 陳腐化や重複を検出し、ウィキグラフを改善・レビューします。 |
| Update | 24 時間ごと | 安全なタイミングで CodeAlmanac CLI を更新します。 |
自動化状態の確認は
codealmanac automation status で可能です。
テレメトリ(遥測)について
設定時に匿名テレメトリの導入を問われます。**「Yes」**を選ぶことを推奨します。
- 送信されるのはコマンドの実行結果、ライフサイクルの状態、およびサンタイズされたクラッシュ情報のみです。
- コード、パス、引数、クエリ、プロンプト、スクリプト、認証情報は絶対に送信されません。
テレメトリの無効化
以下のいずれかを実行することでテレメトリを無効にできます:
- 設定画面で「No」を選択する
- コマンドに
を指定する--no-telemetry
を設定ファイルに記述するtelemetry.enabled = false- 環境変数
を設定するDO_NOT_TRACK=1
注意:
オプションは、インストールするエージェント指示書ファイル(Codex か Claude)のみを選択します。実行環境自体を変更しない点にご注意ください。--targetcodealmanac setup --yes --target codex # または codealmanac setup --yes --target claude
自動処理のカスタマイズ
# スキャン間隔の変更(例:5 時間ごと) codealmanac setup --yes --sync-every 5h # 自動対話転記(シンク)のインストールをスキップ codealmanac setup --yes --sync-off # 自動ウィキクリーンアップ(ガーデニング)のインストールをスキップ codealmanac setup --yes --garden-off # 自動アップデートのインストールをスキップ codealmanac setup --yes --no-auto-update
アンインストール
ローカルアーティファクトを完全に削除するには:
codealmanac uninstall --yes
日常使用 (Daily Read Surface)
エージェントと人間は同一のローカルコマンドを使用します。
# 検索 codealmanac search "checkout timeout" codealmanac search --mentions src/checkout/ # 表示とトピック codealmanac show checkout-flow codealmanac topics codealmanac health codealmanac validate
別のローカルウィキを読み込むには
--wiki <name> オプションを使用します。デフォルトは現在ディレクトリをターゲットにします。
ウィキの更新 (Updating The Wiki)
ライフサイクルコマンドは、Yoke SDK を介して明示的なエージェント(ビルド、インゲスト、ガーデン)を起動します。
- ingest: 選択された素材(ファイル、Git の差分、PR/Issue、URL など)をウィキに統合します。
- garden: 既存のウィキグラフ(陳腐化ページ、弱いリンクなど)の改善を行います。
信頼モデル: ライフサイクルコマンドは OS サンドボックスではなく、「指示およびコミットポリシー」によって保護されたローカルコーディングエージェントとして機能します。自動コミットが無効な場合は、生成された Git の差分を必ずレビューしてください。
# 例:README のインGEST codealmanac ingest README.md --using codex # 例:GitHub PR のインGEST codealmanac ingest github:pr:123 --using claude # 例:ガーデニング実行 codealmanac garden --using codex
進捗の監視
init, ingest, garden はキューイングされた実行を開始します。
- Web ビューアでの追跡:
codealmanac serve # サイドバーの「Jobs」タブを選択して監視 - ターミナルでの追跡:
codealmanac jobs attach <run-id>
シンクと自動化 (Sync And Automation)
ホステドサービスではなく、ローカルの
launchd ジョブによって管理されます。
- Sync: 完了した対話をスキャンし、関連ジョブにキューイングします。知識がない対話はウィキを更新しません。
- Garden: 定期的なメンテナンスを自動実行します。
- Update: ローカル CLI のバージョン更新を管理します(安全でないタイミングではスキップされます)。
スケジュールの管理
# インストール済みスケジュールの確認 codealmanac automation status # スケジュールの変更 (TOML 設定への反映) codealmanac config set automation.sync.every 5h codealmanac config set automation.garden.every 24h codealmanac config set automation.update.every 24h # 有効/無効の切り替え codealmanac config set automation.sync.enabled false
設定変更後、ファイルの編集場合は
codealmanac config apply を実行してください。
ジョブ (Jobs)
ライフサイクル実行は
~/.codealmanac/ 下に記録され、以下のコマンドで制御できます。
| コマンド | 説明 |
|---|---|
| ID、ステータス、経過時間の最近のジョブを一覧表示します。 |
| 詳細なサマリー(エラー、タイムスタンプなど)を表示します。 |
| イベント履歴のスナップショットを出力します。 |
| ライブ監視を開始し、イベントが到着するまで続けます。 |
| 実行中のジョブを終了させます。 |
スクリプトからの出力には
フラグを追加してください。ターミナルが閉じても永続的なローカルコードにより動作を継続できます。--json
プロバイダー (Providers)
CodeAlmanac は
almanac-yoke を境界として使用します。
- Codex: アプリサーバー経由で実行(OAuth セッションの再利用)。
- Claude: Yoke のデフォルトサーフェース(Python Agent SDK)を使用。
# 認証の確認と準備 codex login claude auth login codealmanac doctor
読み込みコマンドは認証情報不要ですが、書き込みコマンドにはハルネスの認証が必要です。
エージェント構成は
src/codealmanac/agents/ 下にあり、Yoke のネイティブ契約に従っています(agent.yaml, instructions.md)。
Init で生成される構造
デフォルトルートでは以下のディレクトリが作成されます:
your-repo/ |-- almanac/ # ウィキの根元 | |-- README.md # ランディングページ | |-- topics.yaml # ファイル間の整理 | |-- architecture/ # アーキテクチャ情報 | | |-- indexer.md # インデックス定義 | |-- decisions/ # 意思決定記録 | | `-- local-first.md | `-- guides/ # ガイダンス | `-- setup.md |-- src/ # ソースコード `-- ... # 他のファイル
CodeAlmanac ウィキとして認識される条件は、
almanac/topics.yaml と almanac/README.md の存在です。
ランタイムステート (Runtime State)
ローカルデータは
~/.codealmanac/ 下に保存されます:
- Global:
~/.codealmanac/codealmanac.db - Per-Repo:
~/.codealmanac/repos/<repo-id>/index.db
これらのデータベースはリポジトリ、イベント、ロック状態などを記録しますが、コミットされる
almanac/ フォルダには含まれません。
設定 (Configuration)
ユーザー設定は
~/.codealmanac/config.toml にあります。
# デフォルト値 auto_commit = true [harness] default = "codex" model = "gpt-5.5" [automation.sync] enabled = true every = "5h" [automation.garden] enabled = true every = "24h" [automation.update] enabled = true every = "24h"
CLI からの設定変更
通常は以下のコマンドで即座に変更を適用できます:
codealmanac config set <key> <value>
auto_commit
の注意
auto_commitライフサイクルエージェントは Git コマンドを使って直接変更を行う可能性があります。CodeAlmanac は自動的にステージングやコミットを行いません。
手動で管理したい場合は、設定を変更する必要があります:
codealmanac config set auto_commit false
ローカルビューア (Local Viewer)
- モード: 読み取り専用。ページ、検索結果、トピック、バックリンクを表示します。
- 自動起動:
コマンドはサーバー起動時にブラウザを自動的に開きます。serve - ヘッドレス/スクリプト用途:
codealmanac serve --no-open
特定のウィキに絞り込むには:
codealmanac serve --wiki <name>
npm CLI から移行 (Migrating From The npm CLI)
レガシーな
codealmanac npm パッケージは廃止されました。PyPI でのみサポートされています。古いインストールが残留している場合は以下の手順でクリーンアップしてください。
# 1. npm グローバルパッケージの削除 npm uninstall -g codealmanac # 2. 新しい Python CLI のインストール uv tool install codealmanac@latest # 3. セットアップと確認 codealmanac setup --yes codealmanac doctor
,bun
,pnpm
や PATH 上のレガシーバイナリも削除してください。yarn- リポジトリ内のコミット済み
フォルダには手を入れず、CLI の設定部分のみを交換します。almanac/
トラブルシューティング
エラー: spawn ... codex ENOENT
spawn ... codex ENOENTCodex CLI にバイナリが存在しないか、バージョン不一致が発生しています(Node バージョンの切り替えなどが原因)。
確認方法:
codex --version codex login status
解決策:
-
再インストール:
npm install -g @openai/codex(注意:ログイン状態は維持されます)
-
または、ハルネスを切り替え (Claude へ):
codealmanac config set harness.default claude
同様のエラーが発生する場合は
codealmanac doctor で状態を確認してください。
現在の契約 (Current Contract)
- スコープ: ローカル限定(ホステドログイン・アップロード機能なし)。
- 公開コマンド:
(短縮:codealmanac
)。ca - リポジトリルート:
のみ。almanac/ - ユーザーステート:
。~/.codealmanac/ - ランタイム: Python 3.12+。
- ストレージ: ローカル Markdown テキスト + ローカルの派生ステートファイル。
- 公開 SDK/MCP: なし。
- アップロードパスなし: ウィキ、ソースコード、プロンプト、転記などのアップロードは行いません。
ホステド統合は将来的な可能性がありますが、現在のリリーススコープには含まれません。