metalbear-co/mirrord
GitHub: metalbear-co/mirrord
mirrord 让本地进程(或 AI 编程助手)无需实际部署即可接入 Kubernetes 集群的真实环境变量、网络和流量进行开发调试。
Stars: 5217 | Forks: 204

[mirrord 可将您的本地进程运行在实时的 Kubernetes 集群中](https://metalbear.com/mirrord/)。
对于开发者和 AI 编程助手(Claude Code、Cursor、Codex、Copilot、Windsurf)来说,它的工作方式完全相同:
您的代码运行在本地机器上,但 mirrord 会将其流量、文件和环境变量通过集群中的目标 pod 进行路由。
这涵盖了软件开发闭环的两半。在编写代码时读取实时集群上下文(真实的环境变量、真实的服务响应、真实的队列内容),从而使更改基于实际部署的内容。
然后针对这些相同的服务和数据运行代码,以确认其端到端工作正常。
您可以在几秒钟内获得部署的反馈,而无需实际部署,也不会为其他任何人中断集群。
mirrord 以 VS Code 扩展、IntelliJ 插件和 CLI 工具的形式提供。[阅读更多](https://metalbear.com/mirrord/docs/overview/introduction/)。
**采用者**:monday.com、SurveyMonkey、Cadence、CoLab、Daylight Security、Zooplus 以及[其他](./ADOPTERS.md)。
# 目录
- [目录](#contents)
- [快速开始](#getting-started)
- [VS Code 扩展](#vs-code-extension)
- [安装](#installation)
- [使用方法](#how-to-use)
- [IntelliJ 插件](#intellij-plugin)
- [安装](#installation-1)
- [使用方法](#how-to-use-1)
- [CLI 工具](#cli-tool)
- [安装](#installation-2)
- [使用方法](#how-to-use-2)
- [工作原理](#how-it-works)
- [附加功能](#additional-capabilities)
- [将 mirrord 与 AI 编程助手结合使用](#using-mirrord-with-ai-coding-agents)
- [常见问题](#faq)
- [贡献](#contributing)
- [帮助与社区](#help-and-community)
- [行为准则](#code-of-conduct)
- [许可证](#license)
## 快速开始
- [VS Code 扩展](#vs-code-extension)
- [IntelliJ 插件](#intellij-plugin)
- [CLI 工具](#cli-tool)
## VS Code 扩展
### 安装
[在此处获取扩展](https://marketplace.visualstudio.com/items?itemName=MetalBear.mirrord)。
### 使用方法
- 在状态栏上点击“Enable mirrord”
- 开始调试您的项目
- 选择要模拟的 pod
- 被调试的进程将由 mirrord 接入到所选的 pod 中
## IntelliJ 插件
### 安装
[在此处获取插件](https://plugins.jetbrains.com/plugin/19772-mirrord)。
### 使用方法
- 在导航工具栏中点击 mirrord 图标
- 开始调试您的项目
- 选择要模拟的 namespace 和 pod
- 被调试的进程将由 mirrord 接入到所选的 pod 中
## CLI 工具
### 安装
您可以使用
```
brew install metalbear-co/mirrord/mirrord
```
或者
```
curl -fsSL https://raw.githubusercontent.com/metalbear-co/mirrord/main/scripts/install.sh | bash
```
或者使用 Nix(非官方,由社区维护):
```
# 使用 nix-env(legacy)
nix-env -iA nixpkgs.mirrord
# 使用 nix profile(recommended)
nix profile install nixpkgs#mirrord
```
或者在 Windows 上使用 Chocolatey:
```
choco install --pre mirrord
```
### 使用方法
```
mirrord exec
--target
```
例如
```
mirrord exec node app.js --target pod/my-pod
```
## 工作原理
当您选择要模拟的 pod 时,mirrord 会在与所选 pod 相同的节点上启动一个 pod。
然后,这个新 pod 用于连接您的本地进程和被模拟的 pod:它将来自该 pod 的传入流量镜像到您的进程,将来自您进程的传出流量通过该 pod 进行路由,并对文件读取、文件写入和环境变量执行相同的操作。
[您可以在此处阅读更多相关信息](https://metalbear.com/mirrord/docs/overview/introduction/)。
### 附加功能
在 mirrord 启动的 pod 内运行的容器需要额外的 [Linux capabilities](https://man7.org/linux/man-pages/man7/capabilities.7.html):
- `CAP_NET_ADMIN` 和 `CAP_NET_RAW` - 用于修改路由表
- `CAP_SYS_PTRACE` - 用于读取目标 pod 环境
- `CAP_SYS_ADMIN` - 用于加入目标 pod 网络 namespace
但是,您可以在[配置](https://metalbear.com/mirrord/docs/reference/configuration/)中禁用这些权限的任何子集。
这可能会限制 mirrord 的功能,甚至使其在某些设置中无法使用。
```
MIRRORD_AGENT_DISABLED_CAPABILITIES=CAP_NET_RAW,CAP_SYS_PTRACE mirrord exec node app.js --target pod/my-pod
```
## 将 mirrord 与 AI 编程助手结合使用
mirrord 为 Claude Code、Cursor、Codex CLI、Gemini CLI 及其他 AI 编程助手提供了一流的支持,使它们能够在不部署的情况下,针对真实的集群服务运行并验证生成的代码。
有关设置指南和现成的工作流 skills,请参阅 [metalbear-co/skills](https://github.com/metalbear-co/skills) 或 [mirrord for AI Agents](https://metalbear.com/mirrord/ai) 页面。
## 常见问题
[我们的常见问题解答可在此处找到](https://metalbear.com/mirrord/docs/faq/general/)。
如果您有未在此处列出的问题,欢迎在我们的 [讨论区](https://github.com/metalbear-co/mirrord/discussions)提问
或在 [Slack](https://metalbear.com/slack) 上提问。
## 行为准则
我们非常重视我们的社区,并致力于为每个人提供一个安全、热情的环境。
请花几分钟时间阅读我们的[行为准则](./CODE_OF_CONDUCT.md)。
## 许可证
[MIT](./LICENSE)标签:IDE插件, 可视化界面, 子域名突变, 开发辅助工具, 文档结构分析, 网络流量代理, 调试, 通知系统