LNAI入門|AIコーディングツール設定を1ファイルで統一する方法

LNAI入門|AIコーディングツール設定を1ファイルで統一する方法

この記事の結論

Claude Code・Cursor・Codex・Gemini CLIなど7ツールの設定ファイル乱立を解決するCLI「LNAI」の導入ガイド。lnai init/syncの3コマンドで全ツールに設定を自動同期できます。

「また設定ファイルがズレてる…」

AIコーディングツールを複数使い始めたある日、こんな状況に気づきました。Claude CodeのCLAUDE.mdにはコーディング規約を細かく書いたのに、Cursorの.cursor/rules/には古いルールが残ったまま。そしてCodexに切り替えたら、どちらの設定も反映されていない。チームメンバーが「Gemini CLI使いたい」と言い出したら、また別ファイルを用意しなければならない——。

2026年現在、AIコーディングツールは7種類以上が乱立し、それぞれが独自の設定ファイル形式を持っています。この「設定ファイル疲れ」は、多くの開発者が共感する問題です。HackerNewsに投稿されたLNAIのスレッドが70ポイント・30コメントを集めたのも、この共感が背景にあります。

この記事では、その問題をシンプルに解決するOSSのCLIツール「LNAI」を、インストールから実際の設定例まで順を追って解説します。5分で試せるセットアップから始めますので、ぜひ今日から使ってみてください。


難しい概念は後にして、まず動かしてみましょう。以下の手順でLNAIが起動し、設定の同期が体感できます。

ステップ1:インストール

LNAIはnpmでグローバルインストールします。Node.js 18以上が必要です。

# グローバルインストール
npm install -g lnai

# インストール確認
lnai --version

動作環境: Node.js 18以上、npm 9以上

ステップ2:プロジェクトで初期化

既存プロジェクトのルートで以下を実行します。

cd your-project
lnai init

実行すると、以下の構造が自動生成されます。

.ai/
├── AGENTS.md        ← 全ツール共通の指示書
├── config.json      ← 対応ツールの選択
└── settings.json    ← 権限・MCP設定(オプション)

ステップ3:共通設定を書く

生成された.ai/AGENTS.mdを開いてプロジェクトのガイドラインを記述します。

# プロジェクト概要

Next.js + TypeScriptで構築したSaaSアプリケーション。

## コーディング規約

- TypeScriptのstrictモードを使用すること
- ESM import形式を使用(require禁止)
- 関数はconstで定義(function宣言は避ける)
- コメントは日本語で記述

## テスト方針

- 新機能には必ずJestのユニットテストを追加
- テストファイルは `*.test.ts` の命名規則に従う

## 禁止事項

- `any`型の使用禁止(やむを得ない場合は`unknown`を使用)
- console.logの本番コードへの混入禁止

ステップ4:全ツールに同期

lnai sync

このコマンド1つで、設定が各ツールのネイティブフォーマットに自動変換されます。Claude CodeにはCLAUDE.mdが、Cursorには.cursor/rules/が、CodexにはAGENTS.mdが生成されます。

注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。特に既存の設定ファイルが上書きされる可能性があるため、初回実行前にバックアップを推奨します。


LNAIが解決する「設定ファイル問題」の全体像

AIコーディングツールの設定ファイルを確認しましょう。AIエージェント構築の基本を押さえた上で、ツール間の設定管理がいかに複雑かを理解しておくことが重要です。

各ツールの設定ファイル対応表

AIコーディングツール 設定ファイル / ディレクトリ 形式 備考
Claude Code CLAUDE.md / .claude/ Markdown プロジェクトルート・ホームディレクトリ対応
Codex CLI AGENTS.md Markdown 最も汎用性の高い共通フォーマット
Cursor .cursor/rules/*.mdc Markdown(mdc拡張) .cursorrulesから移行中
Gemini CLI GEMINI.md / .gemini/ Markdown ~/.gemini/でグローバル設定も可
GitHub Copilot .github/copilot-instructions.md Markdown リポジトリ共有に適したパス
Windsurf .windsurf/rules/ Markdown .windsurfrulesから移行中
OpenCode .opencode/ TOML/Markdown 新興ツール、急速に採用拡大中

7つのツールがそれぞれ異なるパスと形式を使っています。1つの規約変更を全ツールに反映するだけで、7ファイルを手動で更新しなければならない——これがLNAIが解決しようとしている問題です。


LNAIの設定ファイル詳細解説

ディレクトリ構造

LNAIを初期化すると、プロジェクトルートに.ai/ディレクトリが作成されます。

your-project/
├── .ai/                        ← LNAIの管理ディレクトリ(Gitコミット対象)
│   ├── AGENTS.md               ← 全ツール共通の指示書(メインファイル)
│   ├── config.json             ← 対応ツールの選択と設定
│   └── settings.json           ← 権限・MCP設定
├── .gitignore                  ← LNAI syncが自動追記
├── CLAUDE.md                   ← sync後に自動生成(Claude Code用)
├── AGENTS.md                   ← sync後に自動生成(Codex用)
├── GEMINI.md                   ← sync後に自動生成(Gemini CLI用)
└── .cursor/
    └── rules/
        └── project.mdc         ← sync後に自動生成(Cursor用)

ポイントは.ai/だけをGitコミットすれば良いことです。生成された各ツールの設定ファイルは.gitignoreに自動追記されるため、チームメンバーはlnai syncを実行するだけでローカルに設定が展開されます。

config.json:対応ツールの選択

使用するツールを明示的に指定します。

{
  "tools": [
    "claude-code",
    "codex",
    "cursor",
    "gemini-cli",
    "github-copilot",
    "windsurf",
    "opencode"
  ]
}

不要なツールはリストから外すことで、そのツール用の設定ファイルは生成されません。チームでCursorしか使わないなら"cursor"だけ残せばOKです。

settings.json:権限とMCP設定

Claude Codeのパーミッション設定やMCPサーバーの設定もここで一元管理できます。

{
  "permissions": {
    "allow": [
      "Bash(git:*)",
      "Bash(npm:*)",
      "Read",
      "Write"
    ],
    "ask": [
      "Bash(curl:*)",
      "Bash(ssh:*)"
    ],
    "deny": [
      "Bash(rm -rf:*)"
    ]
  },
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"]
    }
  }
}

動作環境: LNAI v0.x系(2026年3月時点)。設定スキーマはバージョンにより変わる可能性があります。


実際の設定例:TypeScript + Next.jsプロジェクト

実際によく使われる設定パターンを示します。以下は.ai/AGENTS.mdの実践的な記述例です。

# プロジェクト概要

## アーキテクチャ

Next.js 15 App Router + TypeScript 5.x + Prisma + PostgreSQL。
フロントエンドはTailwind CSS。APIはNext.js Route Handlers。

## コーディング規約

### TypeScript
- strictモードを必ず有効にすること
- `any`型の使用禁止。不明な型は`unknown`を使う
- 型ガードを活用してランタイムエラーを防ぐ

### ファイル構造
- コンポーネントは `components/` に配置
- ページは `app/` のApp Router規約に従う
- ユーティリティ関数は `lib/utils/` に集約

### 命名規則
- コンポーネント: PascalCase(例: UserCard.tsx)
- ユーティリティ関数: camelCase(例: formatDate.ts)
- 定数: UPPER_SNAKE_CASE(例: MAX_RETRY_COUNT)

## テスト

- Vitest + Testing Libraryを使用
- コンポーネントテストは `*.test.tsx`
- ユニットテストは `*.test.ts`
- テストカバレッジ目標: 80%以上

## Git規約

- コミットメッセージはConventional Commits形式
  - feat: 新機能
  - fix: バグ修正
  - docs: ドキュメント
  - chore: その他
- PRは1機能1PR

## 禁止事項

- console.logの本番コードへの混入
- ハードコードされたAPIキーや認証情報
- `// @ts-ignore` の乱用(コメントで理由を必ず記載)

このAGENTS.mdを起点にlnai syncを実行すると、Claude Code用のCLAUDE.md、Cursor用の.cursor/rules/project.mdc、GitHub Copilot用の.github/copilot-instructions.mdが同時に生成されます。


チーム開発でのワークフロー

LNAIをチームで活用する際の推奨ワークフローを紹介します。

初期セットアップ

# リポジトリをクローンした後
git clone your-repo
cd your-repo

# LNAIをインストールして設定を展開
npm install -g lnai
lnai sync

チームメンバーはlnai syncの1コマンドで、自分が使うツール向けの設定ファイルがローカルに展開されます。

設定変更のフロー

# 1. .ai/AGENTS.md を編集して規約を追加
vim .ai/AGENTS.md

# 2. バリデーション
lnai validate

# 3. 全ツールに同期
lnai sync

# 4. .ai/ ディレクトリをコミット(生成ファイルは.gitignoreにより除外)
git add .ai/
git commit -m "docs: AIコーディングツール設定にunit test規約を追加"

CIでの自動同期

GitHub Actionsでlnai syncをCIに組み込むことも可能です。

# .github/workflows/lnai-sync.yml
name: Sync AI Config

on:
  push:
    paths:
      - '.ai/**'

jobs:
  sync:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - name: Install LNAI
        run: npm install -g lnai
      - name: Sync configs
        run: lnai sync
      - name: Commit generated files
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"
          git add -A
          git diff --staged --quiet || git commit -m "chore: auto-sync AI tool configs"
          git push

動作環境: GitHub Actions ubuntu-latest, Node.js 20
注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。


LNAI vs 代替アプローチの比較

LNAIと代替手段を正直に比較します。全員がLNAIを使うべきとは言いません。

アプローチ メリット デメリット おすすめの状況
LNAI 完全自動化、チーム標準化しやすい npm依存、学習コスト 3ツール以上を常用するチーム
AGENTS.md 単体 ツール不要、最も汎用的 ツール固有設定が書けない Codex/Cursor中心で1-2ツール
シンボリックリンク シンプル、依存なし 形式が違うと使えない、手動管理 個人開発・同形式のツール間
dotfiles管理(chezmoi等) 環境全体を管理できる プロジェクト単位の管理が難しい 個人のグローバル設定管理
手動管理 完全にコントロールできる ツールが増えると維持困難 1-2ツールのみ使用

HackerNewsのコメントにあったように、「AGENTS.mdのシンボリックリンクで十分」というケースも確かに存在します。ただしClaude CodeはAGENTS.mdを標準ではCLAUDE.mdの代替として読まないため、Claude Codeを使うチームではLNAIか手動管理が現実的な選択肢です。

正直にお伝えすると、LNAIはまだ開発初期段階(v0.x系)です。設定スキーマが変わる可能性があり、アップデート時に設定ファイルの見直しが必要になることもあります。


【要注意】よくある失敗パターンと回避策

失敗1:既存の設定ファイルを確認せずにsyncを実行する

❌ プロジェクトにCLAUDE.md.cursor/rules/が既にある状態でいきなりlnai syncを実行

⭕ 実行前に既存の設定ファイルを.ai/AGENTS.mdにマイグレーションしてからlnai sync

なぜ重要か: LNAIは孤立した設定ファイルを削除するため、既存の設定が消える場合があります。初回は必ずバックアップを取ること。

失敗2:ツール固有の設定をAGENTS.mdに書いてしまう

❌ Claude Code固有のMCP設定やCursor固有のスコープ設定をAGENTS.mdに混在させる

⭕ 共通ルールはAGENTS.mdに、ツール固有設定はsettings.jsonまたは別ファイルに分離する

なぜ重要か: AGENTS.mdは全ツールに配布されます。Claude Code固有の設定をCursorに配布すると、混乱の原因になります。

失敗3:生成ファイルを直接編集してしまう

❌ 生成されたCLAUDE.md.cursor/rules/project.mdcを直接編集する

⭕ 必ず.ai/AGENTS.mdを編集してからlnai syncを実行

なぜ重要か: 次のlnai syncで直接編集した内容が上書きされます。

失敗4:npmのグローバルインストールをチームで強制する

npm install -g lnaiをオンボーディングドキュメントに記載するだけ

package.jsondevDependenciesに追加してnpxで実行する形にする

{
  "devDependencies": {
    "lnai": "latest"
  },
  "scripts": {
    "ai:sync": "lnai sync",
    "ai:validate": "lnai validate"
  }
}

なぜ重要か: グローバルインストールはバージョン管理が難しく、チームメンバーによってバージョンが異なるとトラブルの原因になります。


AIツール設定の今後:AGENTS.md標準化の動き

LNAIが注目される背景には、AGENTS.mdの標準化という業界トレンドがあります。

AGENTS.mdは元々OpenAIのCodex CLIが採用したフォーマットですが、現在はGitHub Copilot、Cursor、Windsurf、Ampなど60,000以上のOSSプロジェクトに採用されています。Claude CodeはまだAGENTS.mdを直接読まず(CLAUDE.mdが優先)、Gemini CLIはGEMINI.mdを持ちますが、業界全体では「ひとつの共通標準に収束する」方向性が見えています。

LNAIが採用している.ai/ディレクトリという設計は、将来の標準化に備えた合理的なアプローチです。仮にAGENTS.mdが業界標準になったとしても、.ai/AGENTS.mdをそのまま使い続けられます。

ツール比較全般については、AIエージェント構築ツール比較2026もあわせて参照してください。


あわせて読みたい

参考・出典


まとめ:今日から始める3つのアクション

  1. 今日やること: npm install -g lnailnai init.ai/AGENTS.md に既存のコーディング規約をコピー → lnai sync。所要時間10分で全ツールに反映されます。
  2. 今週中: チームメンバーに共有してpackage.jsonlnaidevDependencyとして追加。lnai validateをpre-commitフックに追加してみましょう。
  3. 今月中: GitHub ActionsでCI自動同期を設定。.ai/の変更がpushされたら自動でsyncが走る仕組みにすれば、メンテナンスコストはほぼゼロになります。

あわせて読みたい:


この記事はAIgent Lab編集部がお届けしました。

あわせて読みたい: Windsurf Wave 13の新機能 / JetBrains Junie解説

Need help moving from reading to rollout?

この記事を読んで導入イメージが固まってきた方へ

Uravationでは、AIエージェントの要件整理、PoC設計、社内導入、研修まで一気通貫で支援しています。

この記事をシェア

X Facebook LINE

※ 本記事の情報は2026年3月時点のものです。サービスの料金・仕様は変更される可能性があります。最新情報は各サービスの公式サイトをご確認ください。

関連記事