Skip to content

Latest commit

 

History

History
52 lines (40 loc) · 2.1 KB

File metadata and controls

52 lines (40 loc) · 2.1 KB

AGENTS.md — proxy-installer

项目概要

Go CLI,通过交互式界面安装/管理 mihomo 代理服务,支持多协议(VMess、VLESS、Trojan、Shadowsocks、Hysteria2、TUIC 等)。类似 sing-box-yg 但使用 mihomo 内核。

开发环境

  • Nix Flakesnix develop 或 direnv 自动进入 devShell
  • Go toolchain、gopls、golangci-lint、nixfmt 均通过 flake 声明
  • 首次进入后运行 go mod tidy

目录结构

├── cmd/proxy-installer/   # main 入口
├── internal/              # 不对外暴露的包
│   ├── cli/              # 交互式 CLI(promptui / survey / bubbletea)
│   ├── config/           # mihomo 配置生成
│   ├── install/          # 安装/卸载/更新逻辑
│   ├── service/          # 系统服务管理
│   └── proxy/            # 协议实现层
└── pkg/                  # 可复用的公共包

命令速查

go run ./cmd/proxy-installer          # 运行
go build -o proxy-installer ./cmd/…  # 构建
golangci-lint run ./...              # lint
go test ./...                        # 测试
nix fmt                              # 格式化 .nix 文件

约定

  • 交互式 CLI:使用 promptuisurvey 实现(参考已有 Go CLI 项目风格)
  • mihomo 管理:支持安装、卸载、更新、查看状态、查看日志
  • 协议生成:每种协议在 internal/proxy/ 下独立一个包,统一实现 Proxy interface
  • 配置:mihomo 配置(YAML)通过 internal/config/ 生成,非用户直接编辑
  • 服务管理:支持 systemd / openrc 两种 init 系统
  • 注释:使用中文(简体)
  • 提交信息:遵循 SiiWay Git 提交规范,类型 feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert提交信息使用英文
  • Git 模板:本地提交参考 .gitmessage,使用 git config commit.template .gitmessage 启用

完成工作后

  • 运行 golangci-lint run ./...
  • 运行 go build ./...
  • 运行 go test ./...(如果有测试)
  • 运行 nix fmt