mcpField
O
Omni Dev

Omni Dev

本地服务
github.com/rust-works版本控制32 周前更新

关于 Omni Dev

Omni Dev 是 Rust 命令行工具包,可改写 Git 提交信息、创建拉取请求,并集成 Atlassian 和 Datadog。它还提供 MCP 服务,开放 Git、Jira、Confluence 和 Datadog 功能。

主要功能

  1. 01AI 辅助改写提交信息
  2. 02AI 生成拉取请求描述
  3. 03Jira 和 Confluence 操作
  4. 04只读 Datadog 查询
  5. 05浏览器桥接与 worktrees 视图
  6. 06Rust 命令行二进制程序

适用场景

  1. 01改写分支中的提交信息
  2. 02创建拉取请求时生成描述
  3. 03读取或管理 Jira 问题和 Confluence 页面
  4. 04查询 Datadog 指标、日志和仪表板

MCP 相关

MCP 服务提供 Git 分析与提交工具、拉取请求创建、Jira 和 Confluence 操作、Datadog 工具,以及 ai_chat 代理。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"omni-dev": {
"command": "docker",
"args": [
"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:latest"
],
"env": {
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>",
"ATLASSIAN_INSTANCE_URL": "<ATLASSIAN_INSTANCE_URL>",
"ATLASSIAN_EMAIL": "<ATLASSIAN_EMAIL>",
"ATLASSIAN_API_TOKEN": "<ATLASSIAN_API_TOKEN>"
}
}
}
}
启动命令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:latest
需要配置的环境变量
ANTHROPIC_API_KEY密钥
ATLASSIAN_INSTANCE_URL
ATLASSIAN_EMAIL
ATLASSIAN_API_TOKEN密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/rust-works/omni-dev-mcp:latest

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

omni-dev

MCP Toplist

Crates.io Documentation Build Status License: BSD-3-Clause

一款智能 Git 提交消息工具包,具备 AI 驱动的上下文智能。将杂乱的提交历史转化为专业、符合 Conventional Commits 规范的格式,并提供了解项目的建议。

🎬 效果演示

asciicast

观看 omni-dev 如何通过 AI 驱动的分析将杂乱的提交转化为专业提交

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:自动检测并格式化
  • 🌐 浏览器桥接:通过已通过身份验证的浏览器标签页发送 HTTP 请求,无需导出 Cookie 或令牌
  • 🗂️ Worktrees 视图:在一个实时视图中查看所有 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)。

**下一步:**查看入门指南,了解从身份验证到首次使用 AI 改进提交的 10 分钟完整流程。(仅需 API 密钥参考信息?请参阅身份验证。)

Shell 补全

omni-dev completions <shell> 会将补全脚本输出到标准输出,支持 bash、zsh、fish、powershell 或 elvish。最快的方式是为当前用户配置 bash:

# Add to ~/.bashrc:
eval "$(omni-dev completions bash)"

请参阅 docs/shell-completion.md,了解各 shell 的安装步骤、zsh 所需的 $fpath/compinit 配置以及故障排除方法。

🆚 omni-dev 的对比

omni-dev 涉足两个相邻领域——AI 提交消息工具和 Atlassian/开发工作流 MCP 服务。下表从初次了解的读者最可能关注的维度,对比了现有工具。每个单元格中,✅ 表示完整/原生支持,⚠ 表示部分支持或仅在有条件限制时可用,❌ 表示不支持;我们也同样如实标出了 omni-dev 自身的限制(其对应列中的 ⚠ 标记)。

除了这两个细分领域,omni-dev 还提供一个受监督的守护进程,用于托管浏览器桥接(一种经过身份验证的代理,通过已登录的浏览器标签页发送请求,以访问 Grafana 和 Loki 等受 SSO 保护的仪表板)、一个 Snowflake SQL 服务(多个并发查询可复用一个通过外部浏览器完成的 SSO 会话),以及一个 worktrees 注册表(集中查看所有 VS Code 窗口中打开的仓库),此外还有一个本地的只追加请求日志(omni-dev log)。下表中的工具都没有直接对应这些功能,因此我们在此列出,而不与目标不同的工具进行评分。

与 AI 提交工具对比
omni-devopencommitaicommits
重写指定范围内的现有提交✅ twiddle❌ 仅支持提交前处理❌ 仅支持提交前处理
并行批量处理(长范围)✅ --concurrency N❌❌
AI 编写 PR 描述✅ git branch create pr⚠ 仅支持 GitHub Action❌
感知项目上下文✅ --use-context❌❌
沙盒化 claude-cli 后端✅ ADR-0028❌❌
多后端(Anthropic / Bedrock / OpenAI / Ollama)✅✅✅
Conventional Commits✅✅⚠ 需配置
语言/运行时Rust(静态二进制文件)Node.jsNode.js
与 Atlassian 工作流 MCP 服务对比

omni-dev 的 MCP 服务还提供 Git 工具(提交分析、twiddling、创建 PR)、Datadog 工具和 ai_chat 代理——这些都不是专注于 Atlassian 的服务所覆盖的目标。下表仅比较 Atlassian 功能的深度。

omni-dev MCPsooperset/mcp-atlassianAtlassian 官方(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 token✅ API token / PAT / OAuth 2.0✅ OAuth 2.1 / API token

最后验证时间:2026-06-23。omni-dev 和 sooperset 的行均经过实时测试——通过 tools/list 枚举(omni-dev 分支构建版与 ghcr.io/sooperset/mcp-atlassian:latest),并对复杂页面执行实时读取→写入→读取保真度循环。Atlassian Rovo 的服务接受 API token,但会要求组织管理员授权才能执行工具,因此其表格内容结合了 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_* 凭据名称保持不变。

在一个发布周期内,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。年龄限制或需要登录的视频会以类型化的 PlayabilityRefused 错误呈现,并携带 YouTube 状态码,而不是通用 HTTP 错误。

🌐 浏览器桥接

通过已通过身份验证的浏览器标签页发送 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 和工作树注册表);在 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 会话进行一次身份验证,然后即可跨任意账户并发执行任意 SQL,无需每次查询都弹出 SSO 窗口。守护进程会在内存中持有会话并复用有界连接池,因此每次查询仍可单独设置仓库、角色、数据库和架构。请参阅 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 可选择记录正文/标头。

🗂️ 工作树

在一个实时视图中查看所有 VS Code 窗口中打开的仓库和 Git 工作树。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。

🤖 Agent 会话

跟踪所有终端和 VS Code 窗口中运行的 Claude Code、Codex 和 pi.dev 会话,并显示粗略的实时状态(工作中、空闲或等待你操作)。选择启用的钩子、claude-wrap/codex-wrap 包装器、pi.dev 扩展和转录记录监视器会将信息传送给守护进程;守护进程在内存中维护会话,并将其提供给 CLI、托盘、worktrees ui 和 VS Code 工作树视图。请参阅 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 issue 需要哪个模型层级来进行设计、实现和审查,而 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 会捕获所有提示词、回复、思考块、工具调用和工具结果元数据——这些都是分析所需的信息。有意排除子 Agent 的内部轮次、大型工具输出旁置文件、PDF 页面栅格图和 Claude 的自动记忆;将它们纳入任何由大模型摄取的语料库只会使其臃肿,却不会增加交互模式方面的信息。

进行中的聊天会生成有效的 jsonl 前缀(复制开始时只获取一次源文件大小),因此即使聊天仍在进行,也可以安全同步。目标目录结构与源目录一致——<target>/<slug>/<uuid>.jsonl——并且会保留每个目标文件的源 mtime,让下游工具无需解析每个文件即可按时间顺序排列会话。

--output-format markdown 会在 jsonl 文件旁边(或取而代之)写入派生文件 <target>/<slug>/<uuid>.md。每个 Markdown 文件都包含会话元数据的 YAML frontmatter,后接 ## User / ## Assistant 轮次;工具调用会渲染为 ### Tool call: <name> 块,思考块会折叠到 <details> 中,而子 Agent(Agent)调用只会渲染提示词参数。

Agent 与用户之间的交互会作为一等结构化事件呈现,让分析员大模型了解实际提出的问题以及用户的回应:

  • 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" 来检测。
  • 工具中断(执行过程中按下 Escape)会渲染为 **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 集成章节。

🔌 MCP 服务

omni-dev 提供可选的 Model Context Protocol 服务,让 AI 助手 (Claude Desktop、Claude Code、MCP Inspector、自定义 Agent)可以通过 stdio 调用 omni-dev,而不必通过命令行调用。该服务作为第二个二进制文件 omni-dev-mcp 提供,并由 mcp Cargo 功能控制(参见 ADR-0021)。

工具涵盖六个领域:

领域示例
Git (5)git_view_commits、git_branch_info、git_check_commits、git_twiddle_commits、git_create_pr
JIRA (28)核心读取/写入/搜索/转换状态/评论/链接/开发/删除;冲刺、看板、关注者、工时记录、字段、附件、项目、变更日志
Confluence (13)读取/写入/搜索/创建/删除/下载/子页面、评论、标签、用户搜索
Atlassian shared (2)atlassian_auth_status、atlassian_convert(离线 JFM ↔ ADF)
Datadog (14)指标、监控器、仪表板、日志、事件、SLO、主机、停机时间、指标目录
AI / Config (5)ai_chat(单次聊天)、claude_skills_*(同步/清理/查看 .claude/skills/ 分发状态)、config_models_show

通过 URI 模板公开的资源:

URI 模板返回内容
git://repo/commits/{range}YAML 提交分析
jira://issue/{key}JIRA 工单(JFM 格式)
jira://issue/{key}.adfJIRA 工单正文(ADF 格式)
confluence://page/{id}Confluence 页面(JFM 格式)
confluence://page/{id}.adfConfluence 页面正文(ADF 格式)
omni-dev://specs/{name}内嵌的参考规范(例如 jfm)

完整的工具目录、资源参考、跨领域参数(output_file、confirm)和 故障排除说明,请参阅 docs/mcp.md。

安装
cargo install omni-dev --features mcp

这会在常规 omni-dev CLI 之外新增第二个二进制文件 omni-dev-mcp。 默认的 cargo install omni-dev 构建不变——除非启用 mcp 功能,否则 不会引入 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 会打开一个浏览器界面,你可以在其中列出工具和资源、交互式调用 任意工具,并基于当前工作目录获取资源。

配置(settings.json)

可以在 ~/.omni-dev/settings.json 的 mcp 部分一次性设置三个服务默认值, 而不必为每次调用设置环境变量或标志。这三个字段均为可选;如果没有 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 中检测
  • 工作模式:功能开发、Bug 修复、文档编写、 重构
  • 分支上下文:从分支名称中提取工作类型 (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:VALUEAPI 请求的 Beta 标头(受模型限制)--beta-header key:value
--concurrency N并行处理提交的数量(默认值:4)--concurrency 3
--no-coherence跳过跨提交一致性优化步骤--no-coherence
--no-ai跳过 AI;改为采用确定性的类型/范围建议,只修改不符合规范的提交--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

参与贡献

欢迎贡献!详情请参阅贡献指南。

开发环境设置
  1. 克隆仓库:

    git clone https://github.com/rust-works/omni-dev.git
    cd omni-dev
    
  2. 安装 Rust(如果尚未安装):

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
  3. 构建项目:

    cargo build
    
  4. 运行构建脚本(包括测试、Lint 和格式化):

    ./scripts/build.sh
    

    或逐项运行:

    cargo test         # Run tests
    cargo clippy       # Run linting
    cargo fmt          # Format code
    

📚 文档

🔧 要求

  • 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 使用 OPENAI_MODEL;Ollama 使用 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 支持五种 AI 后端。--ai-backend 标志可在 AI 命令(git commit message twiddle、git commit message check、 git commit message staged、git branch create pr、ai chat)之后使用,也可通过 OMNI_DEV_AI_BACKEND 设置,用于明确选择以下后端之一:default、claude-cli、 openai、ollama 或 bedrock:

  • --ai-backend claude-cli — 在沙盒中运行 claude -p 子进程,并复用 你的 Claude Code 会话。
  • --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 仍会按此顺序选择 对应后端。

请参阅 AI 后端指南,了解所需的环境变量、 模型选择、Claude CLI 沙盒及其绕过选项 (--claude-cli-allow-tools、--claude-cli-allow-mcp)、--claude-cli-max-budget-usd 支出上限,以及各后端的故障排除方法。

🐛 调试

如需排查问题并获取详细日志,请使用 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 文件。

支持

致谢

  • 感谢所有帮助改进本项目的贡献者!
  • 使用 Rust 构建,❤️ 致敬

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。