rilvert/zwimki

GitHub: rilvert/zwimki

ZwimKI是一款将源代码转换为可导航架构模型的AI辅助开发工具。

Stars: 0 | Forks: 0

# ZwimKI ZwimKI 是一款本地优先的开发工具,它将源代码转换为可导航的架构模型,并使用该模型作为 AI 辅助更改的锚点。 它是对 AI 辅助 vibe coding 进行更多规划和理解的实验:保持上下文可见,使更改可审查,并帮助用户学习代码及其关联,而不是将 AI 输出视为黑盒。 ## 它的功能 - 扫描源文件并构建中间架构图(IR) - 围绕锚节点生成聚焦的切片,而不是发送整个文件 - 支持结构化的 `ops` 命令,以实现可审查的代码编辑 - 提供本地 UI 以用于项目探索、上下文文档和提供者设置 ## 截图 ![包含所选代码元素和生成描述的架构图](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/6df53f8831082647.png) ZwimKI 将源代码转换为可导航的图,并允许您检查单个代码元素的生成描述。 ## 当前状态 ZwimKI 是预 alpha 软件正在积极开发中,不完整,最适合本地实验和开发工作流程。 - 语言支持基于解析器,仍在不断发展 - UI/API 表面可能在版本之间发生变化 - 安全默认值是本地优先(见下文) - 该项目特别针对希望理解他们请求 AI 更改的代码、架构和依赖项的人 ## 开发优先级:首先重构 ZwimKI 也是它想要解决的问题的一个实时示例:一个 AI 辅助 vibe coding 实验,其增长速度超过了其结构。在广泛的功能工作之前,首要任务是清理和重构,特别是在最大的文件中。 - `ui/app.js` 目前在一个地方持有 SPA 状态、渲染、规划、图表、导出、聊天和设置逻辑。 - `src/api.rs` 目前结合了路由、API 处理程序、提示构造、验证、功能/用例生成和解析/编排逻辑。 - `ui/styles.css` 和 `src/extract.rs` 是次要的重构候选者,一旦两个最大的文件被拆分。 目标是不仅仅是外观上的行数减少。目标是使所有者边界明确,减少意外的耦合,并诚实地使用产品:ZwimKI 应该成为帮助 AI 辅助项目避免快速变成这种形状的工具。 ## 典型工作流程 1. 首先打开一个没有 AI 的项目。ZwimKI 扫描源代码,并以可导航的架构图显示它。 2. 添加项目上下文。描述项目是什么,它试图做什么,以及哪些约束很重要。 3. 创建描述。ZwimKI 从较小的代码单元向上构建描述,以便可以在过程中进行检查和纠正。 4. 查找或定义功能。让 ZwimKI 从代码中建议功能,然后编辑它们或创建自己的功能。 5. 对于用例也做同样的事情。从用户或工作流程的角度捕获项目应该支持的内容。 6. 创建一个计划。在更改代码之前,构建一个树形计划,可选地使用 AI 支持。 7. 讨论并应用更改。与 AI 讨论计划部分或整个计划,审查提出的更改,然后有意地应用它们。 ## 快速入门 ### 要求 - Rust 工具链(稳定版) ### 构建 和 运行 ``` cargo run ``` 默认情况下,应用程序在 `http://127.0.0.1:8787` 上启动,并打开浏览器。 ### 有用的命令 ``` cargo test cargo run -- ui --port 8787 cargo run -- ops validate path/to/ops.json cargo run -- ops apply path/to/ops.json path/to/file --write ``` ## 安全默认值 - UI 默认绑定到 `127.0.0.1` - 可选的 UI 认证通过 `ZWIMKI_ACCESS_TOKEN`(或旧版 `ZWIMKI_UI_PASSWORD`) - 提供者 API 密钥在可用的情况下通过操作系统密钥链存储,在配置的情况下使用文件回退 - Codex 可以通过本地 Codex CLI 登录(ChatGPT)使用,无需在 ZwimKI 中存储 API 密钥 - Claude Code 可以通过本地 Claude Code CLI 登录使用,无需在 ZwimKI 中存储 Anthropic API 密钥 如果您故意将 UI 暴露在您的网络上: ``` ZWIMKI_BIND=0.0.0.0 ZWIMKI_ACCESS_TOKEN='choose-a-strong-secret' cargo run -- ui --port 8787 ``` 不要在没有设置访问令牌的情况下暴露 UI。 ## 本地状态和 Git 卫生 ZwimKI 将本地缓存/状态写入 `.zwimki/` 目录。这些目录被 `.gitignore` 忽略,不应提交。 AI 请求/响应持久性(`.zwimki/ai_log.jsonl`)有大小限制。默认最大大小为 `8 MiB`。如有需要,请使用 `ZWIMKI_AI_LOG_MAX_BYTES` 覆盖。 默认情况下,节点描述提示省略 `context.md` 以保持批量生成较小。设置 `ZWIMKI_NODE_DESCRIPTION_INCLUDE_PROJECT_CONTEXT=1` 以在 `scope=node` 提示中包含项目上下文。 ## 开发 ``` cargo check cargo test ``` 一个最小的 GitHub Actions CI 管道在推送/PR 上运行 `cargo check` 和 `cargo test`。 ## 许可证 MIT。请参阅 [LICENSE](./LICENSE).
标签:AI 应用, AI 辅助开发, Apex, 中间件, 代码优化, 代码分析, 代码切片, 代码审查, 代码导航, 代码探索, 代码描述, 代码文档, 代码模型, 代码理解, 代码生成, 代码编辑, 代码重构, 依赖关系, 凭证管理, 可审查性代码, 可视化界面, 后端开发, 威胁情报, 安全默认, 实验性软件, 开发者工具, 敏捷开发, 数据管道, 本地优先, 本地开发工具, 机器学习, 架构可视化, 渗透测试工具, 源代码管理, 软件优先级, 软件工程, 软件开发, 软件架构, 软件架构图, 软件生命周期, 软件维护, 软件设计, 软件迭代, 软件重构, 预览版软件