anirban1809/zipcode

GitHub: anirban1809/zipcode

一个基于 Go 和 Bubble Tea 的终端 AI 编码助手,强调系统感知与安全约束执行,支持多 LLM 模型切换。

Stars: 0 | Forks: 0

# ZipCode 一个基于终端的 AI 助手界面,使用 Go 和 Bubble Tea 框架构建。ZipCode 提供了一个 TUI(终端用户界面),通过简洁直观的命令行界面与 AI 模型进行交互。 ## 概述 ZipCode 是一个单二进制 Go 应用程序,用于模拟 AI 助手界面,具有以下特性: - 带有命令建议的交互式终端 UI - 多 AI 模型支持(模拟) - 工作区管理 - 带有自动补全的命令系统 - 实时状态显示 - 适应终端尺寸的响应式布局 ## 功能特性 - **终端优先设计**:使用 Bubble Tea 构建,提供流畅的 TUI 体验 - **命令系统**:带有自动补全和描述的斜杠命令 - **模型切换**:在不同 AI 模型(Claude、Gemini、GPT)之间切换 - **工作区感知**:显示当前工作目录 - **交互式菜单**:使用键盘导航命令和模型 - **模拟响应**:带有旋转动画的模拟 AI 响应 - **使用情况追踪**:显示会话统计信息(token、延迟、运行时间) ## 安装说明 ### 前置条件 - Go 1.24.2 或更高版本 - Git(用于构建元数据) ### 从源码构建 ``` # 克隆 repository git clone cd zipcode # 构建 binary make build # 运行 application ./bin/zipcode ``` ### 开发 ``` # 在开发模式下运行并启用 race detector make dev # 运行 tests make test # 格式化 code make fmt # 运行 linter make lint # 清理 build artifacts make clean # 为多平台构建 release binaries make dist ``` ## 使用指南 ### 启动应用程序 ``` # 从 source 运行 make run # 或运行已构建的 binary ./bin/zipcode ``` ### 基本控制 - **Enter**:提交 prompt 或执行选定的命令 - **Shift+Enter**:在 prompt 中换行 - **↑/↓ 方向键**:导航菜单或滚动结果 - **Tab**:选择高亮的菜单项 - **Ctrl+C / q / Esc**:退出应用程序 ### 命令列表 输入 `/` 查看可用命令。使用方向键导航,按 Enter 执行: | 命令 | 描述 | |---------|-------------| | `/init` | 初始化当前工作区会话 | | `/models` | 打开模型选择器并切换活动模型 | | `/quit` | 退出应用程序 | | `/help` | 显示帮助和可用命令用法 | | `/status` | 显示当前会话和环境状态 | | `/config` | 查看或调整模拟配置设置 | | `/auth` | 管理模拟认证状态 | | `/sync` | 运行模拟工作区同步操作 | | `/deploy` | 启动模拟部署流程 | | `/logs` | 显示最近的模拟执行日志 | | `/doctor` | 运行模拟诊断检查 | | `/clear` | 清除结果/输出区域 | | `/version` | 显示应用程序版本详情 | | `/theme` | 切换 UI 主题选项(模拟) | ### 可用模型 - claude-4-sonnet - claude-4-opus - gemini-2.0-flash - gpt-4.1 ## 架构 ### 项目结构 ``` zipcode/ ├── main.go # Application entry point and TUI logic ├── go.mod # Go module definition ├── Makefile # Build and development targets ├── bin/ # Compiled binaries ├── dist/ # Release builds └── src/ # Source code packages ├── ui/ # UI components and models ├── tools/ # Utility tools and integrations └── bootstrap/ # Application initialization ``` ### 关键组件 #### 主应用程序 (`main.go`) - **RootModel**:管理布局和终端尺寸的主应用程序模型 - **model**:处理用户输入、命令和显示的核心 TUI 模型 - **命令系统**:斜杠命令解析和执行 - **菜单导航**:用于命令和模型选择的交互式菜单 #### UI 框架 - 使用 **Bubble Tea** 构建响应式 TUI - 使用 **Lipgloss** 进行样式和布局设计 - 适应终端尺寸的响应式设计 #### 状态管理 - 工作区跟踪 - 当前模型选择 - 命令历史和建议 - 会话统计 ## 依赖项 ### 核心依赖 - `github.com/charmbracelet/bubbletea` - TUI 框架 - `github.com/charmbracelet/bubbles` - UI 组件(textinput、viewport) - `github.com/charmbracelet/lipgloss` - 样式和布局 - `golang.org/x/term` - 终端处理 ### 开发依赖 - `golangci-lint` - Go linting 和静态分析 ## 开发 ### 代码风格 项目遵循标准 Go 规范: - 使用 `go fmt` 进行代码格式化 - 使用 `golangci-lint` 进行静态分析 - UI 和业务逻辑之间关注点分离清晰 ### 添加新命令 1. 在 `initialModel()` 中将命令添加到 `commands` 切片 2. 在 `commandDesc` map 中添加描述 3. 在 `runCommand()` switch 语句中处理命令 ### 自定义模型 修改 `initialModel()` 中的 `modelOptions` 切片以添加或删除 AI 模型。 ## 构建元数据 Makefile 将构建元数据注入到二进制文件中: - Version:Git tag 或 "dev" - Commit:短 Git hash 或 "none" - Build time:UTC 时间戳 此元数据显示在应用程序页脚中,可用于调试。 ## 许可证 [在此处添加您的许可证信息] ## 贡献 [在此处添加贡献指南] ## 路线图 - [ ] 真实 AI 模型集成 - [ ] 配置文件支持 - [ ] 用于扩展的插件系统 - [ ] 持久化历史记录 - [ ] 主题自定义 - [ ] 多语言支持
标签:Bubble Tea, CLI, EVTX分析, Go语言, LLM客户端, TUI, WiFi技术, 人工智能, 人机交互, 代码生成, 单二进制文件, 多模型支持, 威胁情报, 安全合规, 实时状态, 工作区管理, 开发者工具, 效率工具, 日志审计, 架构约束, 渗透测试工具, 用户模式Hook绕过, 程序破解, 系统感知, 终端用户界面, 编程助手, 网络代理, 自动补全