Omni Dev について
Omni Devは、Gitのコミット改善やプルリクエスト作成に使えるRust製コマンドラインツールキットで、AtlassianとDatadogにも対応します。MCPサーバーではGit、Jira、Confluence、Datadogの機能を公開します。
主な機能
- 01AIによるコミットメッセージの書き換え
- 02AI生成のプルリクエスト説明
- 03JiraとConfluenceの操作
- 04読み取り専用のDatadogクエリ
- 05ブラウザブリッジとworktreesビュー
- 06Rust製コマンドラインバイナリ
活用シーン
- 01ブランチ内のコミットメッセージを書き換え
- 02プルリクエスト作成時に説明文を生成
- 03Jira課題やConfluenceページの閲覧・管理
- 04Datadogのメトリクス、ログ、ダッシュボードを照会
MCP 対応
MCPサーバーはGit分析・コミットツール、プルリクエスト作成、JiraとConfluenceの操作、Datadogツール、ai_chatプロキシを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e ANTHROPIC_API_KEY -e ATLASSIAN_INSTANCE_URL -e ATLASSIAN_EMAIL -e ATLASSIAN_API_TOKEN ghcr.io/rust-works/omni-dev-mcp:latestANTHROPIC_API_KEYシークレットATLASSIAN_INSTANCE_URLATLASSIAN_EMAILATLASSIAN_API_TOKENシークレットローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/rust-works/omni-dev-mcp:lateststdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
omni-dev
AI によるコンテキスト認識機能を備えた、インテリジェントな Git コミットメッセージツールキットです。散らかったコミット履歴を、プロジェクトに合わせた提案を用いて、プロフェッショナルな Conventional Commits 形式に変換します。
🎬 動作を見る
AI による分析で、omni-dev が散らかったコミットをプロフェッショナルなコミットに変換する様子をご覧ください
30 秒デモ
AI のインテリジェンスを活用して、コミットメッセージを整え、プロフェッショナルな PR を作成できます。
# Analyze and improve commit messages in your current branch
omni-dev git commit message twiddle 'origin/main..HEAD' --use-context
# Before: "fix stuff", "wip", "update files"
# After: "feat(auth): implement OAuth2 authentication system"
# "docs(api): add comprehensive endpoint documentation"
# "fix(ui): resolve mobile responsive layout issues"
# Create a professional PR with AI-generated description
omni-dev git branch create pr
# 🎉 Generates comprehensive PR with detailed description, testing info, and more
✨ 主な機能
- 🤖 AI によるインテリジェンス:Claude AI がコードの変更を分析し、意味のあるコミットメッセージと PR の説明を提案します
- 🧠 コンテキストの認識:プロジェクトの構造、規約、作業パターンを理解します
- 🔍 包括的な分析:コミット、ブランチ、ファイルの変更を詳細に分析します
- ✏️ スマートな修正:単一または複数のコミットメッセージを安全に改善します
- 🚀 PR の作成:AI による説明を含むプロフェッショナルなプルリクエストを生成します
- 📦 自動バッチ処理:大量のコミット範囲をインテリジェントに処理します
- 🎯 Conventional Commits:自動で検出し、フォーマットします
- 🌐 ブラウザーブリッジ:Cookie やトークンを外部に送信せず、認証済みのブラウザータブを通じて HTTP リクエストを実行します
- 🗂️ ワークツリー表示:すべての VS Code ウィンドウで開いている、すべてのリポジトリと Git ワークツリーをリアルタイムに一覧表示します
- 🛡️ 安全性を最優先:作業ディレクトリの検証、リモートのメインブランチにすでにあるコミットの修正防止、エラーからの復旧に対応します
- ⚡ 高速かつ信頼性の高い動作:メモリ安全性とパフォーマンスを実現する Rust で構築されています
🚀 クイックスタート
インストール
# Install from crates.io
cargo install omni-dev
# Install with Nix
nix profile install github:rust-works/omni-dev
# Install with Nix flakes (development)
nix run github:rust-works/omni-dev
ビルド済みバイナリは各
リリースに添付されています。Linux 版
(omni-dev-linux.tar.gz、omni-dev-linux-arm64.tar.gz)は動的リンクされており、
glibc 2.35 以降が必要です(Ubuntu 22.04 と Debian 12 は該当します)。RHEL 9 や Amazon Linux 2023(glibc 2.34)などの古いホストでは、ローダーで
version `GLIBC_2.xx' not foundというエラーが発生します。その場合は、代わりに
ソースから cargo install omni-dev でビルドしてください。リリースワークフローでは、
この下限を超えるバイナリが必要となる場合、処理が失敗します
(docs/RELEASE.md)。
次のステップ: Getting Startedをご覧ください。認証から、AI で改善した最初のコミットまでを 10 分で解説します。(API キーのリファレンスだけを確認する場合は、 Authenticationをご覧ください。)
シェル補完
omni-dev completions <shell>は、bash、zsh、fish、powershell、またはelvish向けの補完スクリプトを stdout に出力します。最も手早く使えるのは、ユーザーごとの bash 用設定です。
# Add to ~/.bashrc:
eval "$(omni-dev completions bash)"
シェルごとのインストール手順、zsh で必要となる$fpath/compinitの設定、トラブルシューティングについては、docs/shell-completion.mdをご覧ください。
🆚 omni-devとの比較
omni-devは、隣接する2つの分野、すなわちAIコミットメッセージツールとAtlassian/開発ワークフロー向けMCPサーバーを扱います。以下の表では、初めて読む方が比較検討しやすいと思われる観点で、既存ツールと対比しています。各セルでは、✅は完全またはネイティブでサポート、⚠は部分的なサポート、または制約付きで利用可能、❌は非対応を意味します。omni-dev自身の制約も同じように正直に示しています(omni-devの列にある⚠がその印です)。
この2つのニッチな分野に加え、omni-devには、監視下で動作するデーモンも付属します。このデーモンは、ブラウザーブリッジ(ログイン済みのブラウザータブ経由でリクエストを実行する認証済みプロキシ。GrafanaやLokiなど、SSOが必要なダッシュボード向け)、Snowflake SQLサービス(外部ブラウザーでのSSOセッション1つを並行クエリで再利用)、worktreesレジストリ(すべてのVS Codeウィンドウで開いているリポジトリを一元的に確認できるビュー)、そしてローカルの追記専用リクエストログ(omni-dev log)を提供します。これらに直接相当する既存ツールは以下のどちらの表にもないため、これらを対象としていないツールとの比較評価ではなく、ここで紹介しています。
AIコミットツールとの比較
| omni-dev | opencommit | aicommits | |
|---|---|---|---|
| 範囲内の既存コミットを書き換える | ✅ twiddle | ❌ pre-commitのみ | ❌ pre-commitのみ |
| 並列バッチ処理(長い範囲) | ✅ --concurrency N | ❌ | ❌ |
| AIが作成するPRの説明 | ✅ git branch create pr | ⚠ GitHub Actionのみ | ❌ |
| プロジェクトコンテキストの認識 | ✅ --use-context | ❌ | ❌ |
サンドボックス化されたclaude-cliバックエンド | ✅ ADR-0028 | ❌ | ❌ |
| マルチバックエンド(Anthropic / Bedrock / OpenAI / Ollama) | ✅ | ✅ | ✅ |
| Conventional Commits | ✅ | ✅ | ⚠ 設定が必要 |
| 言語/ランタイム | Rust(静的バイナリ) | Node.js | Node.js |
Atlassianワークフロー向けMCPサーバーとの比較
omni-devのMCPサーバーは、Gitツール(コミット分析、twiddling、PR作成)、Datadogツール、およびai_chatプロキシも提供します。これらはAtlassianに特化したサーバーが対象としていない機能です。以下の表では、Atlassian関連機能の対応範囲のみを比較します。
| omni-dev MCP | sooperset/mcp-atlassian | Atlassian official (Rovo) | |
|---|---|---|---|
| Jira REST の対応範囲 | ✅ 36 個のツール(アジャイル、フィールド、開発パネル、リンク、ウォッチャー、作業ログ、バージョン、変更履歴) | ✅ 49 個のツール(上記に加えて、JSM、ProForma フォーム、SLA、一括操作) | ⚠ 14 個のツール(基本的な CRUD、検索、トランジション、作業ログのみ) |
| Confluence REST の対応範囲 | ✅ 25 個のツール(履歴、差分、添付ファイル、ラベル、スペース、インラインコメントとフッターコメント) | ✅ 24 個のツール(履歴、差分、添付ファイル、ラベル。インラインコメント/スペースには非対応) | ⚠ 12 個のツール(インラインコメントとフッターコメント、スペース。削除/移動/履歴/差分/添付ファイル/ラベルには非対応) |
| ロスレスな JFM ↔ ADF の往復変換 | ✅ ADF の全ノードセット(スキーマ v56.1.18)+未対応ノードのエスケープ | ❌ | ⚠ 生の ADF。モデルに依存 |
| アンカー付きレビューコメントの保持 | ✅ アノテーションマークが往復変換後も保持されます | ❌ アンカーが削除され、コメントが孤立します | ⚠ ADF がアンカーを保持します。モデルに依存 |
| ADF スキーマの事前検証 | ✅ 書き込み前にネストと要素数を検証 | ❌ | ❌ |
| オフラインでの JFM ↔ ADF 変換(認証情報不要) | ✅ atlassian_convert | ❌ | ❌ |
| Cloud、Server、Data Center の対応 | ⚠ Cloud で検証済み | ✅ Cloud + Server(v6 以降)+ DC(Jira v8.14 以降) | ❌ Cloud のみ |
| 認証 | ⚠ API トークンのみ | ✅ API トークン/PAT/OAuth 2.0 | ✅ OAuth 2.1/API トークン |
最終検証日:2026-06-23。omni-dev と sooperset の行は、tools/list による列挙(omni-dev のブランチビルドと
ghcr.io/sooperset/mcp-atlassian:latest の比較)に加え、複雑なページでの読み取り→書き込み→読み取りのライブ忠実性サイクルによって実機検証済みです。Atlassian Rovo のサーバーは API トークンを受け付けますが、ツールの実行には組織管理者の許可が必要です。そのため、該当行は Atlassian の
サポート対象ツール
のドキュメントと、ADF パススルーに関する推論(生の ADF は往復変換できますが、モデルが忠実にそのまま返す場合に限られ、決定論的な保証はありません)を組み合わせたものであり、ライブ実行によるものではありません。比較対象のリリースノートを検索して関連する変更が見つかった場合、または四半期ごとに更新してください。
📋 主なコマンド
🤖 AI を活用したコミットの改善(twiddle)
目玉機能です。リアルタイムでモデル情報を表示しながら、コミットメッセージをインテリジェントに改善します。
# Improve commits with contextual intelligence
omni-dev git commit message twiddle 'origin/main..HEAD' --use-context
# Process large commit ranges with parallel processing
omni-dev git commit message twiddle 'HEAD~20..HEAD' --concurrency 5
# Save suggestions to file for review
omni-dev git commit message twiddle 'HEAD~5..HEAD' \
--save-only suggestions.yaml
# Auto-apply improvements without confirmation
omni-dev git commit message twiddle 'HEAD~3..HEAD' --auto-apply
🔍 分析コマンド
# Analyze commits in detail (YAML output)
omni-dev git commit message view 'HEAD~3..HEAD'
# Analyze current branch vs main
omni-dev git branch info main
# Get comprehensive help
omni-dev help-all
🚀 AI を活用した PR の作成
AI が生成した説明文で、プロフェッショナルなプルリクエストを作成します。
# Generate and create PR with AI-powered description
omni-dev git branch create pr
# Create PR with specific base branch
omni-dev git branch create pr main
# Save PR details to file without creating
omni-dev git branch create pr --save-only pr-description.yaml
# Auto-create without confirmation
omni-dev git branch create pr --auto-apply
📝 Atlassian との連携
コマンドラインから JIRA の課題や Confluence のページを読み取り、作成、管理できます。
# Authenticate with Atlassian Cloud
omni-dev atlassian auth login
# Check authentication status
omni-dev atlassian auth status
# Fetch a JIRA issue as markdown
omni-dev atlassian jira read PROJ-123
# Fetch as raw ADF JSON
omni-dev atlassian jira read PROJ-123 --format adf
# Push markdown changes back to JIRA
omni-dev atlassian jira write PROJ-123 issue.md
# Interactive edit: fetch, edit in $EDITOR, push
omni-dev atlassian jira edit PROJ-123
# Search issues with JQL
omni-dev atlassian jira search --project PROJ --status Open
# Create an issue
omni-dev atlassian jira create issue.md --project PROJ --summary "Fix bug"
# Transition an issue
omni-dev atlassian jira transition PROJ-123 "In Progress"
# Confluence: read, search, create pages
omni-dev atlassian confluence read 12345
omni-dev atlassian confluence search --space ENG --title auth
omni-dev atlassian confluence create page.md --space ENG --title "New Page"
# Convert markdown to ADF JSON (offline)
omni-dev atlassian convert to-adf input.md
セルフホストの PAT では、メールアドレスを指定せずに atlassian auth login --auth-mode bearer を使用します。
「PAT 認証と互換性の制限」をご覧ください。
ほとんどのサービス操作は引き続き Cloud API を対象とします。
📊 Datadog との連携(読み取り専用)
Datadog API で認証し、メトリクス、モニター、ダッシュボード、 ログ、イベント、SLO、ホスト、ダウンタイムを照会できます。サブコマンドの 完全なリファレンス、認証の設定、レート制限の動作、トラブルシューティングについては、 Datadog 連携ガイドをご覧ください。
# Configure Datadog API credentials (prompts for API key, APP key, and site)
omni-dev datadog auth login
# Verify the credentials by calling /api/v1/validate
omni-dev datadog auth status
# Query metrics, monitors, dashboards, logs, and SLOs
omni-dev datadog metrics query --query 'avg:system.cpu.user{*}' --from 15m
omni-dev datadog monitor list --tags env:prod
omni-dev datadog dashboard list
omni-dev datadog logs search --filter 'service:api status:error' --from 1h
omni-dev datadog slo list --tags team:platform
DATADOG_SITE のデフォルト値は datadoghq.com です。その他のリージョン(datadoghq.eu、
us3.datadoghq.com、us5.datadoghq.com、ap1.datadoghq.com、ddog-gov.com)
も警告なしで認識されます。環境変数 DATADOG_API_KEY、
DATADOG_APP_KEY、DATADOG_SITE は、保存済みの設定より優先されます。オンプレミス環境や
プロキシ経由のインストールでは、DATADOG_API_URL を設定して、サイトから導出される URL を上書きしてください。
すべての Datadog サブコマンドは MCP ツール(datadog_*)としても公開されています。docs/mcp.mdをご覧ください。
各カテゴリーの実例を含む完全なガイドについては、docs/datadog.mdをご覧ください。
📧 Gmail と 📁 Drive(gwi に移行)
gmail と drive のコマンドツリー(Drive には Docs、Sheets、Slides が含まれます)、23 個の MCP ツール、および
omni_dev::{gmail,drive} ライブラリモジュールは、スタンドアロン
プロジェクトのgwi(Google Workspace Interface)に移行しました。独自のバイナリ(gwi、gwi-mcp)、設定(~/.gwi/)、リリース
サイクルを備えています(#2203、
ADR-0095)。gwi import は、既存の Gmail アカウントと Drive
アカウント、リース設定、Drive リース台帳を ~/.omni-dev からコピーします。元のデータが変更されたり
削除されたりすることはありません。移行したコードが読み取る環境変数のプレフィックスは
OMNI_DEV_ から GWI_ に変わります。プレフィックスのない GMAIL_* と DRIVE_* の認証情報名は
変更されません。
1 回のリリースの間、omni-dev gmail ... と omni-dev drive ... は、任意の引数を受け付けて
gwi を案内するメッセージとともに非ゼロで終了する非表示のスタブとして残ります。次のマイナー
リリースで削除されます。
🎙️ トランスクリプトの取得
外部メディアプラットフォームから字幕とトランスクリプトを取得します。最初に対応するソースは YouTube です。CLI の名前空間とライブラリは、構造を変更せずに 追加のソース(Vimeo、ポッドキャストの RSS、汎用 VTT/SRT URL)を追加できるように 設計されています。完全なリファレンスと新しいソースを追加する手順については、docs/transcript.md をご覧ください。
# Fetch captions for a YouTube video as SubRip (default).
omni-dev transcript youtube fetch https://www.youtube.com/watch?v=jNQXAC9IVRw
# WebVTT to a file, falling through to auto-generated captions if needed.
omni-dev transcript youtube fetch jNQXAC9IVRw \
--format vtt --auto --output me-at-the-zoo.vtt
# Synthesise a translated track when no native French track exists.
omni-dev transcript youtube fetch <url> --lang fr --translate fr
# List available caption tracks (manual + auto-generated).
omni-dev transcript youtube list-langs <url>
# Show video metadata (title, channel, duration, languages).
omni-dev transcript youtube info <url> --output json
--format は srt、vtt、txt、json を受け付けます。ロケーターには、
watch?v= URL、youtu.be/ の短縮 URL、/shorts/ または /embed/ URL、
あるいは 11 文字の動画 ID を指定できます。年齢制限付きまたはログインが必要な動画では、
一般的な HTTP エラーではなく、YouTube のステータスコードを含む型付きエラー
PlayabilityRefused が返されます。
🌐 ブラウザーブリッジ
認証済みのブラウザータブを通じて HTTP リクエストを送信します。内部サービス(Grafana/Loki、内部ダッシュボード、SSO で保護された管理パネル)を調査する場合、ブラウザーにはすでに SSO、OAuth、Cookie などのセッションが保持されており、これらをプログラムで再現するのは困難です。このブリッジは、Cookie やトークンを外部に持ち出すことなく、ブラウザーの認証済みコンテキスト内でリクエストを発行します(設計上の「混乱した代理人」です)。両方のプレーンが認証され、デフォルトで閉じた状態になっています。詳しくはdocs/browser-bridge.mdのガイドと、セキュリティ上の根拠を説明するADR-0036をご覧ください。
# Start the bridge; it prints the bound ports, a session token, and a JS
# snippet to paste into the DevTools console of the authenticated tab.
omni-dev browser bridge serve
# Drive requests through the tab (token from the bridge's stdout).
export OMNI_BRIDGE_TOKEN=<token printed by the bridge>
omni-dev browser bridge request --url /loki/api/v1/labels
# POST a JSON payload from a file, with a custom header.
omni-dev browser bridge request --url /api/foo --method POST \
--body @payload.json --header "Accept: application/json"
# Stream a long-lived endpoint (SSE / chunked) instead of buffering.
omni-dev browser bridge request --url /api/events --stream
# Route to a specific tab when several are connected (by id or origin).
omni-dev browser bridge request --url /api/foo --target https://grafana.internal
バイナリおよびストリーミングのレスポンスボディ、X-Omni-Bridge-Target による複数タブへのルーティング、リクエストごとの --credentials と --allow-origin の上書き、プレーンな HTTP を使用するツール向けの透過プロキシに対応しています。
🛰️ デーモン
ユーザーごとのプライベートな Unix ドメイン制御ソケットを介し、監視下の単一プロセスで長時間稼働するサービスをホストします。最初に移行したサービスはブラウザーブリッジです(続いて Snowflake と worktrees レジストリも移行されました)。macOS では、オプションのメニューバーアプリでリアルタイムに制御できます。daemon start はログイン時の自動起動用に launchd LaunchAgent をインストールし、status はホストしているすべてのサービスの状態を表示します。詳しくはデーモンでの実行とアーキテクチャを説明するADR-0039をご覧ください。
# Start the background daemon (installs a launchd LaunchAgent on macOS)
omni-dev daemon start
# Per-service status (add --json for machines)
omni-dev daemon status
# Restart or stop it
omni-dev daemon restart
omni-dev daemon stop
デーモンは Unix 専用です。制御プレーンに Unix ドメインソケットを使用します。一方、omni-dev のその他の部分はあらゆる環境で動作します。
❄️ Snowflake
外部ブラウザー SSO で Snowflake セッションを一度認証すれば、クエリごとに SSO ポップアップを表示することなく、任意のアカウントに対して任意の SQL を並行実行できます。デーモンはセッションをメモリ上に保持し、上限付きのプールで多重化するため、各クエリで個別にウェアハウス、ロール、データベース、スキーマを指定できます。詳しくはdocs/snowflake-service.mdをご覧ください。
# Run SQL (from an argument or stdin); the first query opens the SSO browser
omni-dev snowflake query "select current_version()"
# Per-query context overrides and JSON output
omni-dev snowflake query "select * from t limit 10" \
--warehouse WH --role ANALYST --database DB --schema PUBLIC --format json
# Inspect or evict live sessions
omni-dev snowflake sessions
omni-dev snowflake disconnect --account <ACCOUNT> --user <USER>
アカウント/ユーザー/コンテキストのデフォルト値は、まず SNOWFLAKE_* 環境変数から、次に ~/.omni-dev/settings.json から取得されます。アカウントがハードコードされることはありません。デーモン上で動作するため、Unix 専用です。
📓 リクエストログ
すべての呼び出しと、それによって発行された HTTP リクエストが、検索や末尾の確認が可能なローカルの追記専用ログに記録されます。ベストエフォートで、デフォルトで有効です。秘密情報が書き込まれることはありません(認証ヘッダーはマスキングされ、ボディの記録はオプトインです)。詳しくはdocs/log.mdをご覧ください。
# Recent activity (one line each)
omni-dev log
# Filter by service and status class, or a query expression; follow live
omni-dev log --service jira --status 5xx
omni-dev log --query 'method:POST AND status:4xx' --follow
# Full records as JSON (byte-identical to the on-disk lines)
omni-dev log --format json -n 20
無効にするには OMNI_DEV_LOG_DISABLE=1 を設定します。ボディ/ヘッダーの記録をオプトインするには、OMNI_DEV_LOG_BODIES=1 / OMNI_DEV_LOG_HEADERS=1 を設定します。
🗂️ Worktrees
すべての VS Code ウィンドウで開いている、すべてのリポジトリと Git worktree をリアルタイムのビューで確認できます。VS Code の拡張機能ホストはウィンドウごとにサンドボックス化されているため、拡張機能だけでは別のウィンドウのフォルダーを確認できません。そのため、ファーストパーティの小さなコンパニオン拡張機能が各ウィンドウをデーモンに登録し、デーモンがそれらを単一のレジストリに集約して CLI、トレイ、拡張機能 UI に提供します。レジストリはメモリ上にのみ保存され、登録解除せずにクラッシュしたウィンドウの情報は自動的に期限切れになります。詳しくはdocs/worktrees-service.mdとADR-0040をご覧ください。
# One line per open window and its folders (add --json for machines)
omni-dev worktrees list
デーモン上で動作するため、Unix 専用です。
🤖 エージェントセッション
すべてのターミナルと VS Code ウィンドウで実行中の Claude Code、Codex、pi.dev のセッションを追跡し、「作業中」「アイドル」「応答待ち」の大まかなリアルタイム状態を確認できます。オプトインのフック、claude-wrap/codex-wrap ラッパー、pi.dev 拡張機能、トランスクリプト監視ツールからデーモンに情報が送られます。デーモンはセッションをメモリ上に保持し、CLI、トレイ、worktrees ui、VS Code の worktrees ビューに提供します。詳しくはdocs/sessions-service.mdをご覧ください。
# Install the Claude Code (and, when present, Codex and pi.dev) hooks
omni-dev sessions install-hooks
# One line per live session
omni-dev sessions list
デーモン上で動作するため、Unix 専用です。
⚖️ Jev の判断
omni-dev ai jev は、生成テキストではなく、型付きの確率的判断を返す TypeSafe AI の Jev API 用クライアントです。基本の choice/score/noul/ask プリミティブに加え、route は各 GitHub イシューの設計、実装、レビューにどのモデルティアが必要かを尋ね、verify-decision は判断コメント内の各主張を、引用された情報源と照合して検証します。docs/jev.md を参照してください。
# Which model tier should handle these issues?
omni-dev ai jev route '#1779' '#1820' -o text
✏️ 手動修正
# Apply specific amendments from YAML file
omni-dev git commit message amend amendments.yaml
🧩 Claude Code スラッシュコマンド
すぐに使える Claude Code スラッシュコマンドのテンプレートを、プロジェクトの .claude/commands/ ディレクトリに生成します。各テンプレートは、Claude Code セッション内から複数ステップの omni-dev 操作を実行する、自己完結型のワークフローです。
# Generate all templates: commit-twiddle, pr-create, pr-update
omni-dev commands generate all
# Or individually
omni-dev commands generate commit-twiddle
omni-dev commands generate pr-create
omni-dev commands generate pr-update
各サブコマンドは .claude/commands/<name>.md にファイルを書き込みます。ワークフローを共同作業者と共有するには、ファイルをコミットしてください。Claude Code が自動的に読み込むため、リポジトリ内の誰でも Claude Code セッション内で /commit-twiddle、/pr-create、/pr-update を実行できます。詳しくはユーザーガイドを参照してください。
🗒️ Claude の会話履歴
Claude Code のチャット履歴を .jsonl ファイルのディレクトリにエクスポートし、行動分析、作業ログの生成、または後続のツールで活用できます。再実行すると冪等な同期として動作し、新しいチャットは追加され、変更されたチャットは上書きされ、変更のないチャットはスキップされます。
# Mirror ~/.claude/projects to ./history/ (one .jsonl per chat, grouped by project slug)
omni-dev ai claude history sync --target ./history
# Limit to one project (encoded slug or decoded cwd path)
omni-dev ai claude history sync --target ./history --project /Users/me/work/repo
# Only sessions touched in the last week
omni-dev ai claude history sync --target ./history --since 7d
# Preview without writing, then prune target files for sessions removed upstream
omni-dev ai claude history sync --target ./history --dry-run --prune
# Render LLM-friendly markdown alongside the raw jsonl (one .md per session)
omni-dev ai claude history sync --target ./history --output-format jsonl,markdown
# Markdown only — suitable for piping into a coaching LLM
omni-dev ai claude history sync --target ./history --output-format markdown
このエクスポートは行動分析用の会話記録であり、忠実なアーカイブではありません。最上位のセッション jsonl には、分析に必要な情報として、すべてのプロンプト、応答、思考ブロック、ツール呼び出し、ツール結果のメタデータが記録されます。サブエージェントの内部ターン、大容量のツール出力サイドカー、PDF のページ画像、Claude の自動メモリは意図的に除外されます。これらは、やり取りのパターンを示す情報を増やすことなく、LLM に取り込ませるコーパスを肥大化させるためです。
進行中のチャットは有効な jsonl のプレフィックスを出力します(コピー開始時にソースのサイズを一度だけ取得します)。そのため、チャットを開いたまま安全に同期できます。出力先の構成はソースを反映し、<target>/<slug>/<uuid>.jsonl となります。また、各出力先ファイルにはソースの mtime が保持されるため、後続のツールではすべてのファイルを解析しなくても、セッションを時系列順に並べ替えられます。
--output-format markdown を指定すると、jsonl と並べて、または jsonl の代わりに、派生ファイル <target>/<slug>/<uuid>.md が出力されます。各 markdown ファイルには、セッションのメタデータを含む YAML フロントマターに続いて、## User / ## Assistant のターンが記録されます。ツール呼び出しは ### Tool call: <name> ブロックとして、思考ブロックは <details> に折りたたんで表示され、サブエージェント(Agent)の呼び出しはプロンプト引数のみが表示されます。
エージェントとユーザーのやり取りは、分析用 LLM が実際に尋ねられたこととユーザーの応答を確認できるよう、第一級の構造化イベントとして表示されます。
AskUserQuestionの呼び出しは、質問文と説明付きの選択肢の箇条書きを含む### Agent question: <header>として表示されます。対応するユーザーの返信は## User responseとして表示されます。- ツールの拒否は
**Tool result (<tool>, denied by user):**として表示されます。これは、Claude Code が次のtool_resultに挿入する正規の「The user doesn't want to proceed with this tool use」というセンチネルを検出して判定されます。 - ツールの中断(実行中にエスケープキーを押した場合)は、
**Tool result (<tool>, interrupted by user):**として表示されます。 - エラー(ユーザーによる拒否とは異なる、実際のツール実行失敗)には
errorラベルが付きます。成功した場合はokが付きます。
システムからのリマインダー、添付ファイル、権限モードのイベントはデフォルトで含まれます。除外するには --exclude-system を指定してください。Markdown の冪等性はソースの mtime のみを基準とします(レンダリング後の長さはソースの長さと異なります)。また、--prune は --output-format で指定された形式のいずれかと拡張子が一致する成果物のみを削除します。
詳しい説明については、docs/user-guide.md#ai-claude-history-sync--export-conversation-history を参照してください。関連コマンド(ai chat、ai claude skills)については、より広範な Claude Code Integration セクションをご覧ください。
🔌 MCP サーバー
omni-dev には、AI アシスタント(Claude Desktop、Claude Code、MCP Inspector、カスタムエージェント)がシェルから CLI を実行する代わりに、stdio 経由で omni-dev を呼び出せる、オプションの Model Context Protocol サーバーが含まれています。このサーバーは 2 つ目のバイナリ omni-dev-mcp として提供され、mcp Cargo feature を有効にすると利用できます(ADR-0021 を参照)。
ツールは 6 つのドメインをカバーします。
| ドメイン | 例 |
|---|---|
| Git(5) | git_view_commits、git_branch_info、git_check_commits、git_twiddle_commits、git_create_pr |
| JIRA(28) | コア機能の読み取り/書き込み/検索/トランジション/コメント/リンク/開発/削除、スプリント、ボード、ウォッチャー、作業ログ、フィールド、添付ファイル、プロジェクト、変更履歴 |
| Confluence(13) | 読み取り/書き込み/検索/作成/削除/ダウンロード/子ページ、コメント、ラベル、ユーザー検索 |
| Atlassian 共通(2) | atlassian_auth_status、atlassian_convert(オフラインでの JFM ↔ ADF 変換) |
| Datadog(14) | メトリクス、モニター、ダッシュボード、ログ、イベント、SLO、ホスト、ダウンタイム、メトリクスカタログ |
| AI/設定(5) | ai_chat(1 回限りのチャット)、claude_skills_*(.claude/skills/ 配布用の同期/クリーンアップ/ステータス)、config_models_show |
URI テンプレートを介して公開されるリソース:
| URI テンプレート | 返される内容 |
|---|---|
git://repo/commits/{range} | YAML コミット分析 |
jira://issue/{key} | JFM 形式の JIRA 課題 |
jira://issue/{key}.adf | ADF 形式の JIRA 課題本文 |
confluence://page/{id} | JFM 形式の Confluence ページ |
confluence://page/{id}.adf | ADF 形式の Confluence ページ本文 |
omni-dev://specs/{name} | 埋め込みのリファレンス仕様(例:jfm) |
ツールの全カタログ、リソースのリファレンス、共通パラメーター(output_file、confirm)、トラブルシューティングについては、docs/mcp.md を参照してください。
インストール
cargo install omni-dev --features mcp
これにより、通常の omni-dev CLI とともに、2 つ目のバイナリ omni-dev-mcp が追加されます。デフォルトの cargo install omni-dev ビルドに変更はありません。mcp feature を有効にしない限り、MCP 依存関係は追加されません。
Claude Desktop
macOS では ~/Library/Application Support/Claude/claude_desktop_config.json(Windows では %APPDATA%\Claude\claude_desktop_config.json)を編集します。
{
"mcpServers": {
"omni-dev": {
"command": "omni-dev-mcp"
}
}
}
Claude Code
プロジェクト単位の場合は、リポジトリのルートに .mcp.json を作成します。
{
"mcpServers": {
"omni-dev": {
"command": "omni-dev-mcp"
}
}
}
または、Claude Code CLI でグローバルに登録します。
claude mcp add omni-dev omni-dev-mcp
MCP Inspector でスモークテストする
npx @modelcontextprotocol/inspector omni-dev-mcp
Inspector ではブラウザー UI が開き、ツールとリソースの一覧表示、任意のツールの対話的な呼び出し、現在の作業ディレクトリを基準にしたリソースの取得ができます。
設定(settings.json)
サーバーのデフォルト値 3 つは、呼び出しごとの環境変数やフラグの代わりに、~/.omni-dev/settings.json の mcp セクションで一度だけ設定できます。3 つのフィールドはいずれも省略可能です。mcp ブロックがない場合は、組み込みの動作がそのまま使われます。
{
"mcp": {
"default_model": "claude-sonnet-4-6",
"log_level": "info",
"max_response_bytes": 102400
}
}
| フィールド | 効果 | フォールバック |
|---|---|---|
default_model | model パラメーターが省略された場合に ai_chat が使用するモデル | モデルレジストリのデフォルト |
log_level | サーバーのトレーシングフィルターディレクティブ | warn(環境変数 RUST_LOG で上書き可能) |
max_response_bytes | 切り詰め前のツール応答の上限(0 で無効) | 100 KB |
トラブルシューティング(stderr ログ、RUST_LOG=debug、「failed to open git repository」)については、docs/mcp.md#troubleshooting を参照してください。
⚙️ 設定コマンド
# Show supported AI models and their specifications
omni-dev config models show
# View model information with token limits and capabilities
omni-dev config models show | grep -A5 "claude-opus-4.1"
🧠 コンテキストインテリジェンス
omni-dev はプロジェクトのコンテキストを理解し、より適切な提案を行います。
プロジェクト設定
リポジトリのルートに .omni-dev/ ディレクトリを作成します。
mkdir .omni-dev
スコープ定義(.omni-dev/scopes.yaml)
scopes:
- name: "auth"
description: "Authentication and authorization systems"
examples: ["auth: add OAuth2 support", "auth: fix token validation"]
file_patterns: ["src/auth/**", "auth.rs"]
- name: "api"
description: "REST API endpoints and handlers"
examples: ["api: add user endpoints", "api: improve error responses"]
file_patterns: ["src/api/**", "handlers/**"]
コミットガイドライン(.omni-dev/commit-guidelines.md)
# Project Commit Guidelines
## Format
- Use conventional commits: `type(scope): description`
- Keep subject line under 50 characters
- Use imperative mood: "Add feature" not "Added feature"
## Our Scopes
- `auth` - Authentication systems
- `api` - REST API changes
- `ui` - Frontend/UI components
🎯 高度な機能
インテリジェントなコンテキスト検出
omni-dev は以下を自動的に検出します。
- プロジェクトの規約:
.omni-dev/、CONTRIBUTING.mdから検出します - 作業パターン:機能開発、バグ修正、ドキュメント作成、リファクタリング
- ブランチのコンテキスト:ブランチ名から作業の種類を抽出します
(
feature/auth-system) - ファイルアーキテクチャ:UI、API、コアロジック、設定の変更を理解します
- 変更の重要度:影響に応じて詳細度を調整します
自動バッチ処理
大きなコミット範囲は、自動的に扱いやすいバッチに分割されます。
# Processes 50 commits in batches of 4 (default)
omni-dev git commit message twiddle 'HEAD~50..HEAD' --use-context
# Custom concurrency for very large ranges
omni-dev git commit message twiddle 'main..HEAD' --concurrency 2
コマンドオプション
| オプション | 説明 | 例 |
|---|---|---|
--fresh | 差分のみを基に、新しいメッセージを生成します(デフォルト。--refine と併用できません) | --fresh |
--refine | 新しく作成する代わりに、既存のメッセージを修正します(--fresh と併用できません) | --refine |
--use-context | コンテキストインテリジェンスを有効にします | --use-context |
--work-context TEXT | 提案の指針となる作業内容を説明します | --work-context "feature: user auth" |
--branch-context TEXT | ブランチ名から検出されたコンテキストを上書きします | --branch-context "bugfix: login flow" |
--context-dir PATH | カスタムコンテキストディレクトリを指定します | --context-dir ./config |
--model MODEL | 使用する Claude API モデルを指定します(デフォルトは設定から取得します) | --model claude-sonnet-4-5 |
--beta-header KEY:VALUE | API リクエストのベータヘッダーを指定します(モデルによって制限されます) | --beta-header key:value |
--concurrency N | 並列で処理するコミット数を指定します(デフォルト:4) | --concurrency 3 |
--no-coherence | コミット間の一貫性を調整する工程を省略します | --no-coherence |
--no-ai | AI を省略し、決定的な type/scope の提案に修正します。規約に準拠したコミットはそのままにします | --no-ai |
--auto-apply | 確認なしで適用します | --auto-apply |
--allow-pushed | リモートのメインブランチにすでにプッシュ済みのコミットの修正を許可します | --allow-pushed |
--check | 適用後にメッセージを検証します | --check |
--save-only FILE | 適用せずにファイルへ保存します | --save-only fixes.yaml |
--quiet | エラーと警告のみを表示します | --quiet |
全オプションについては、ユーザーガイドの主要オプションの表
を参照してください。omni-dev git commit message twiddle --help が
正確な情報源です。
📖 実際の使用例
修正前と修正後
修正前:乱雑なコミット履歴
e4b2c1a fix stuff
a8d9f3e wip
c7e1b4f update files
9f2a6d8 more changes
修正後:プロフェッショナルなコミットメッセージ
e4b2c1a feat(auth): implement JWT token validation system
a8d9f3e docs(api): add comprehensive OpenAPI documentation
c7e1b4f fix(ui): resolve mobile responsive layout issues
9f2a6d8 refactor(core): optimize database query performance
ワークフローへの統合
# 1. Work on your feature branch
git checkout -b feature/user-dashboard
# 2. Make commits (don't worry about perfect messages)
git commit -m "wip"
git commit -m "fix stuff"
git commit -m "add more features"
# 3. Before merging, improve all commit messages
omni-dev git commit message twiddle 'main..HEAD' --use-context
# 4. Create professional PR with AI-generated description
omni-dev git branch create pr
# ✅ Professional commit history + comprehensive PR description ready for review
貢献
皆さまからの貢献を歓迎します。詳細については、貢献ガイドラインをご覧ください。
開発環境のセットアップ
-
リポジトリをクローンします。
git clone https://github.com/rust-works/omni-dev.git cd omni-dev -
Rust をインストールします(まだインストールしていない場合)。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -
プロジェクトをビルドします。
cargo build -
ビルドスクリプトを実行します(テスト、リンティング、フォーマットを含みます)。
./scripts/build.shまたは、個別に実行します。
cargo test # Run tests cargo clippy # Run linting cargo fmt # Format code
📚 ドキュメント
- はじめに - インストールから AI で改善した最初のコミットまでの 10 分間のガイド(まずはこちらをご覧ください)
- ユーザーガイド - 例を含む包括的な使用ガイド
- 設定ガイド - コンテキストインテリジェンスの 設定方法
- なぜ JFM なのか? - omni-dev が Atlassian のコンテンツを生の ADF ではなく Markdown として編集する理由
- API ドキュメント - Rust API リファレンス
- トラブルシューティング - よくある問題と 解決方法
- 例 - 実際の使用例
- リリースプロセス - 貢献者向け
🔧 要件
- Rust:1.88+(ソースからインストールする場合)
- Claude API Key:AI 機能を利用するには必須です
- 設定方法(環境変数、
.env、CI/CD シークレット)については、認証を参照してください
- 設定方法(環境変数、
- AI モデルの選択:特定のモデルを使用する場合は、任意で設定できます
- 利用可能なモデルを確認:
omni-dev config models show - AI コマンドの実行時に
--modelで選択するか、OMNI_DEV_MODEL、バックエンドごとの環境変数チェーン(Claude 系バックエンドではCLAUDE_MODEL、CLAUDE_CODE_MODEL、ANTHROPIC_MODEL、OPENAI_MODEL、OLLAMA_MODEL)、または~/.omni-dev/settings.jsonで設定できます - 標準的な識別子と Bedrock 形式に対応しています
- 利用可能なモデルを確認:
- Atlassian の認証情報(JIRA/Confluence 機能用):インスタンス URL、メールアドレス、API トークン
- 設定方法:
omni-dev atlassian auth login
- 設定方法:
- Datadog の認証情報(Datadog 機能用):API キー、アプリケーションキー、サイト
- 設定方法:
omni-dev datadog auth login
- 設定方法:
- Git:最新の任意のバージョン
AI バックエンドの選択
omni-dev は 5 つの AI バックエンドに対応しています。AI コマンド(git commit message twiddle、git commit message check、git commit message staged、git branch create pr、ai chat)の後に指定するか、OMNI_DEV_AI_BACKEND で設定する --ai-backend フラグを使うと、default、claude-cli、openai、ollama、bedrock のいずれかを明示的に選択できます。
--ai-backend claude-cli— 既存の Claude Code セッションを再利用する、サンドボックス化されたclaude -pサブプロセスです。--ai-backend ollama— ローカルの Ollama または LM Studio サーバーです。--ai-backend openai— OpenAI Chat Completions API です。--ai-backend bedrock— AWS Bedrock です。--ai-backend default(またはフラグなし)— Anthropic API に直接接続します。
OMNI_DEV_AI_BACKEND が設定されていない場合は、従来の USE_OLLAMA=true/USE_OPENAI=true/CLAUDE_CODE_USE_BEDROCK=true 環境変数が、この順番でバックエンドを選択します。
必要な環境変数、モデルの選択、Claude CLI のサンドボックスとその制限を解除するオプション(--claude-cli-allow-tools、--claude-cli-allow-mcp)、--claude-cli-max-budget-usd による支出上限、バックエンドごとのトラブルシューティングについては、**AI バックエンドガイド**を参照してください。
🐛 デバッグ
トラブルシューティングや詳細なログの確認には、環境変数 RUST_LOG を使用してください。
# Enable debug logging for omni-dev components
RUST_LOG=omni_dev=debug omni-dev git commit message twiddle ...
# Debug specific modules (e.g., context discovery)
RUST_LOG=omni_dev::claude::context::discovery=debug omni-dev git commit message twiddle ...
# Show only errors and warnings
RUST_LOG=warn omni-dev git commit message twiddle ...
詳しいデバッグ情報については、トラブルシューティングガイドを参照してください。
変更履歴
各バージョンの変更一覧については、CHANGELOG.mdを参照してください。
ライセンス
このプロジェクトは BSD 3-Clause License の下でライセンスされています。詳細については、LICENSE ファイルを参照してください。
サポート
謝辞
- このプロジェクトの改善に協力してくださるすべてのコントリビューターに感謝します!
- Rust を使用して ❤️ を込めて開発されました
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
