Mague/void-stack

GitHub: Mague/void-stack

一款用 Rust 构建的开发栈管理工具,集服务编排、安全审计、代码分析、语义搜索与 AI 集成于一体,让开发者用一条命令管理和洞察整个项目技术栈。

Stars: 3 | Forks: 1

Void Stack

Void Stack

[![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/75ca20aea4235526.svg)](https://github.com/Mague/void-stack/actions/workflows/ci.yml) [![Release](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/ce13cd6d40235527.svg)](https://github.com/Mague/void-stack/actions/workflows/release.yml) [![Version](https://img.shields.io/github/v/release/Mague/void-stack?include_prereleases&label=version)](https://github.com/Mague/void-stack/releases/latest) [![License](https://img.shields.io/github/license/Mague/void-stack)](LICENSE) [![Rust](https://img.shields.io/badge/rust-2024%20edition-orange)](https://www.rust-lang.org/) [![Tests](https://img.shields.io/badge/tests-1010%20passing-brightgreen)]() [![Coverage](https://img.shields.io/badge/coverage-80.5%25-brightgreen)]() **手头有 10 个包含后端、前端、Worker 和数据库的项目,却记不清该怎么启动它们?** Void Stack 解决了这个问题。只需一条命令即可启动你的整个开发技术栈——后端、前端、数据库、Worker——无论在 Windows、WSL 还是 Docker 环境中。无需死记端口号,无需打开 5 个终端窗口,无需翻阅过时的 README。 ``` void add my-app F:\projects\my-app # Auto-detects services void start my-app # Starts everything ``` 就这么简单。Void Stack 会扫描你的项目,检测你正在使用的框架(FastAPI, Vite, Express, Django...),生成正确的命令并运行它们。如果存在 Python venv,它会自动找到。如果缺少 `node_modules`,它会提示你。 **[Leer en español](README.es.md)** | **[void-stack.dev](https://void-stack.dev)**
Void Stack Desktop — services running

Void Stack TUI — navigating tabs
## 自产自销:Void Stack 分析自身 Void Stack 使用自身的分析和审计工具来维护其代码库的质量。以下是在项目自身运行 `void analyze void-stack --compare` 和 `void audit void-stack` 所发现的问题——以及我们如何利用这些发现来改进代码: ### 安全审计 ``` void audit void-stack # 风险评分:2/100 # 2 个低危发现(innerHTML 使用 — 已通过 DOMPurify 缓解) ``` 初始审计发现了 6 个问题(风险评分 25/100),但其中 4 个是误报——检测代码中的正则表达式模式和模板被标记为“密钥”。这促使我们添加了智能误报过滤(自引用文件白名单、正则表达式元字符检测、模板行过滤),将误报率从 83% 降至 0%。 ### 代码分析 ``` void analyze void-stack --compare # 模式:Layered(80% 置信度) # 214 个模块,32,453 LOC,37 个外部依赖 # 最大复杂度:152(i18n en/es — 数据表,非逻辑) # 反模式:26 个(4 个中等 God Class,13 个 Fat Controller,8 个 Excessive Coupling) ``` 驱动重构的发现: | 发现 | 采取的行动 | |---------|-------------| | God Class: `cli/main.rs` (1202 LOC, 25 fn) | 拆分为 6 个命令模块(主模块约 250 LOC) | | God Class: `mcp/server.rs` (1197 LOC, 35 fn) | 拆分为 10 个工具模块(服务器约 340 LOC) | | God Class: `manager.rs` (30 fn) | 拆分为 4 个子模块(process, state, logs, url) | | God Class + Fat Controller: `vuln_patterns.rs` (789 LOC) | 拆分为 5 个类别模块 | | God Class: `db_models.rs` (1065 LOC) | 按 DB 格式拆分为 7 个子模块 | | God Class: `generate_dockerfile.rs` (821 LOC) | 按语言拆分为 6 个子模块 | | God Class: `api_routes.rs` (747 LOC) | 按协议拆分为 5 个子模块 | | God Class: `architecture.rs` (788 LOC) | 拆分为 4 个子模块 | | God Class: `classifier.rs` (759 LOC, 44 fn) | 拆分为 3 个子模块 | | Fat Controller: `cli/analysis.rs` (580 LOC) | 拆分为 4 个子模块 | | CC=42: `analyze_best_practices` | 表驱动 linter 注册表 (CC ~15) | | CC=41: `cmd_analyze` | 提取了 11 个辅助函数 (CC ~10) | ### 技术债务追踪 ``` void analyze void-stack --compare --label v0.23.6 # 模式:Layered(80% 置信度) # 覆盖率:80.5%(最新 lcov 快照) # 显式技术债务:34 个标记(TODO: 11, TEMP: 10, OPTIMIZE: 6, BUG: 3, XXX: 2, FIXME: 1, HACK: 1) # 960 个测试通过(936 个核心 + 21 个 analyzer + 3 个 mcp) ``` v0.22.0 新增:现在会从源代码注释中扫描显式的债务标记,并显示在 CLI 输出、Markdown 报告和桌面端的 Debt 标签页中。复杂函数(CC≥10)会与覆盖率数据进行交叉对比——未覆盖的关键函数在 CLI 中会收到 `[!]` 警告,在 Markdown 中会显示 🔴 指示器。 ## 混合上下文引擎 — 语义 + 结构 大多数 AI 工具迫使你做出选择:语义搜索(查找相关概念)或结构化图(追踪调用链)。Void Stack 将两者结合。向量嵌入寻找*概念上相关的内容*。Tree-sitter 图显示*结构上会受影响而崩溃的部分*。结果是:精准的上下文,这是任何单一方法的工具都无法比拟的。 | 方法 | 查询 | 结果 | |---|---|---| | **仅语义** | "auth middleware flow" | 概念相关的代码块 | | **仅结构** | "callers of validateToken" | 直接调用链 | | **混合** | 两者同时进行 | 相关代码块 + 影响范围 | Void Stack 使用 BAAI/bge-small-en-v1.5 嵌入在本地为你的代码库建立索引,并构建 Tree-sitter 调用图——因此你的 AI 助手只需阅读关键内容,而无需扫描每一个文件。 ### 工作原理 ``` # 索引一次(在后台运行,250 个文件约 30 秒) void index my-project # 按概念搜索,而非按文件名 void search my-project "authentication middleware flow" # 返回 3-5 个最相关的代码块 — 而非整个文件 # 由 git 驱动的增量重新索引,而非时间戳 void index my-project --git-base HEAD~1 # only files changed since last commit void index my-project --force # full rebuild # 从 Claude Desktop / Claude Code 通过 MCP: # build_structural_graph my-project (Tree-sitter,10 种语言) # get_impact_radius my-project (blast radius BFS) # query_graph my-project callers (谁调用了此函数) # watch_project my-project (保存时自动重新索引) # install_index_hook my-project (post-commit 重新索引) ``` ### 基准测试(在 void-stack 自身上测量) | 操作 | 无索引 | 使用 void-stack | 减少量 | |-----------|-------------:|----------------:|----------:| | `semantic_search` (avg) | ~170 行 / 文件 | ~4 行 / 结果 | **97.5 %** | | 理解一个模块 | 5-10 次文件读取 | 1 次搜索查询 | **~10x** | | 更改的影响范围 | 手动,数小时 | `get_impact_radius` | **即时** | *97.5 % 的数据由 `void stats --days 90` 在 135 次 `semantic_search` 操作中报告——有 23,868 行源代码从未进入 LLM 上下文。* ### 支持的语言 - **语义索引** (embeddings): `CODE_EXTENSIONS` 中的所有源文件扩展名——Rust, Python, JS/TS, Go, Dart, Java, PHP, C/C++, Ruby, Swift, Kotlin, Lua, Zig, Elixir, Vue, Svelte, Astro,以及 `md`/`proto`/`sql`/`dockerfile`。 - **结构化图** (Tree-sitter): Rust, Python, JavaScript, TypeScript (+ TSX), Go, Dart, Java, PHP, C, C++。 结构分析灵感来自 [code-review-graph](https://github.com/tirth8205/code-review-graph) (MIT)——AST 节点映射和 BFS 查询逻辑已使用 Rust 原生重新实现。 ## 接口 Void Stack 具有 **4 个接口**——你可以根据自己的偏好使用: | 接口 | 描述 | |-----------|-------------| | **CLI** (`void`) | 终端中的快速命令 | | **TUI** (`void-stack-tui`) | 交互式终端仪表盘:服务、分析、安全审计、债务、空间 | | **Desktop** (`void-stack-desktop`) | 带有 GUI 的桌面应用 (Tauri + React)——Windows (.msi), macOS (.dmg), Linux (.deb) | | **MCP Server** (`void-stack-mcp`) | 与 Claude Desktop / Claude Code 集成 | ## 端到端示例:30 秒搞定 FastAPI + React 假设你有一个包含 FastAPI 后端和 React 前端的项目: ``` my-app/ ├── backend/ # FastAPI with venv │ ├── main.py # from fastapi import FastAPI │ └── .venv/ ├── frontend/ # React with Vite │ ├── package.json │ └── src/ └── .env ``` ``` # 1. 注册项目(扫描并检测服务) void add my-app F:\projects\my-app # Void Stack 检测到: # ✓ backend → uvicorn main:app --host 0.0.0.0 --port 8000 # ✓ frontend → npm run dev # ✓ .venv → 自动将 python 解析到 virtualenv # 2. 检查依赖项 void check my-app # ✅ Python 3.11(检测到 venv) # ✅ Node 20.x(node_modules 是最新的) # ✅ .env 与 .env.example 保持一致 # 3. 启动所有服务 void start my-app # [backend] → http://localhost:8000 # [frontend] → http://localhost:5173 # 4. 或打开交互式仪表板 void-tui my-app ``` ## 安装 ### 二进制文件(推荐) 从 [Releases](https://github.com/mague/void-stack/releases) 页面下载预构建的二进制文件——无需安装 Rust。 | 平台 | 文件 | |----------|------| | Windows | `.msi` / `.exe` (NSIS) | | macOS | `.dmg` | | Linux | `.deb` / `.AppImage` | ### 从源码构建 ``` # 核心 CLI(主工具) cargo install --git https://github.com/mague/void-stack void-stack-cli # TUI 仪表板 cargo install --git https://github.com/mague/void-stack void-stack-tui # MCP Server(用于与 Claude Desktop / Claude Code 的 AI 集成) cargo install --git https://github.com/mague/void-stack void-stack-mcp # gRPC Daemon(可选,用于持久化管理) cargo install --git https://github.com/mague/void-stack void-stack-daemon ``` **前置条件:** [Rust](https://rustup.rs) + Protobuf 编译器(在 Windows 上使用 `winget install Google.Protobuf`) ### 从源码构建 ``` git clone https://github.com/mague/void-stack.git cd void-stack # 使用 vector search(推荐): cargo build --release --features vector # 最小构建(无 ONNX 依赖): cargo build --release # 二进制文件位于 target/release/ # void — CLI # void-stack-tui — 终端仪表板 # void-stack-daemon — gRPC daemon # void-stack-mcp — 用于 AI 的 MCP server(始终包含 vector search) ``` ### 桌面应用 ``` cd crates/void-stack-desktop cargo tauri build # 在 target/release/bundle/ 中生成安装程序 ``` ## 从分析中排除文件 在项目根目录创建 `.voidignore` 以从 `void analyze` 中排除路径: ``` # 生成的代码 internal/pb/ vendor/ **/*.pb.go **/*.pb.gw.go # 模拟数据 **/mocks/ **/*_mock.go ``` 语法与 `.gitignore` 相同(已简化)。支持前缀路径、`**/` glob 后缀和目录名称。 ## 功能特性 - **多服务** — 同时或单独启动/停止所有服务 - **跨平台** — Windows (`cmd`), macOS, WSL (`bash`), Docker 容器, SSH (未来支持) - **自动检测** — 扫描目录并识别 Python, Node, Rust, Go, Flutter, Docker - **智能命令** — 检测 FastAPI, Flask, Django, Vite, Next.js, Express, Air (Go 热重载) 并生成正确的命令 - **启动前钩子** — 在启动前自动为每个服务创建 venv、安装依赖(`pip install`, `npm install`, `go mod download`)。开箱即用,无需配置 - **依赖检查** — 验证 Python, Node, CUDA, Ollama, Docker, Rust, `.env` - **实时日志** — 所有服务的标准输出/错误输出,并自动检测 URL - **图表** — 使用统一扫描器从项目结构生成 Mermaid 和 Draw.io 图表(架构、带有 Swagger/OpenAPI 丰富的 API 路由、内部/外部 API 分离、gRPC/Protobuf 服务、具有 FK 邻近布局的 DB 模型——Prisma, Sequelize, GORM, Django, SQLAlchemy, Drift) - **代码分析** — 依赖图、反模式、圈复杂度、覆盖率 - **最佳实践** — 原生 linter(react-doctor, ruff, clippy, golangci-lint, dart analyze)与统一评分 - **技术债务** — 带有趋势比较的指标快照 - **AI 集成** — 为 Claude Desktop / Claude Code 提供 43 个工具的 MCP 服务器;通过 Ollama(本地 LLM)提供 AI 驱动的重构建议,并带有优雅降级。当存在语义索引时,使用复杂度热点和 God Class 中的实际代码片段丰富提示词 - **语义代码搜索** — 使用 BAAI/bge-small-en-v1.5 嵌入在本地索引任何项目(100% 离线,约 130 MB 一次性下载)。`void search` 和 `semantic_search` MCP 工具仅返回相关的代码块——比直接读取文件减少 97.5% 的 token(在 void-stack 自身代码库上通过 135 次查询测量)。 - **结构化调用图** — 由 Tree-sitter 驱动的函数级分析,支持 Rust, Python, JS, TS, Go, Dart, Java, PHP, C 和 C++。持久化到 `.void-stack/structural.db`。影响范围 BFS(`get_impact_radius`)在你修改代码之前回答“如果我更改此文件会影响什么?”。 - **增量索引** — Git diff + SHA-256 哈希:`--git-base HEAD~1` 仅重新索引自上次提交以来实际更改的文件。`watch_project` (MCP) 在保存时以 500 毫秒的防抖自动重新索引;`install_index_hook` (MCP) 连接一个 post-commit 钩子,以便每次提交都保持索引最新。 - **磁盘空间扫描器** — 扫描并清理项目依赖(node_modules, venv, target)和全局缓存(npm, pip, Cargo, Ollama, HuggingFace, LM Studio) - **桌面 GUI** — 带有赛博朋克任务控制美学的 Tauri 应用,视觉层次结构(KPI 卡片、发光效果、严重性梯度),服务、日志、依赖、图表、分析、文档、安全、债务和磁盘空间 - **Daemon** — 用于持久管理的可选 gRPC 守护进程 - **安全审计** — 依赖漏洞、硬编码密钥、不安全配置、代码漏洞模式(SQL 注入、命令注入、路径遍历、XSS、SSRF 等),带有智能误报过滤(通过大括号深度跟踪跳过自引用检测模式、正则表达式定义、模板、JSX 元素、Git 历史重构提交和测试模块) - **Docker Runner** — `target = "docker"` 的服务在 Docker 容器内运行。四种模式:原始 Docker 命令、镜像引用(`postgres:16` → 自动 `docker run`)、Compose 自动检测和 Dockerfile 构建。Compose 作为一个单一的 `docker compose up` 服务导入,同时启动所有容器。`docker:` 前缀将 Docker 服务与本地服务分开。支持每个服务的端口、卷和额外参数配置。进程退出监视器检测故障并自动更新状态 - **Docker 智能分析** — 解析 Dockerfile 和 docker-compose.yml,按框架自动生成 Dockerfile(Python,, Rust, Go, Flutter),生成带有自动检测基础设施的 docker-compose.yml - **基础设施智能分析** — 检测 Terraform 资源(AWS RDS, ElastiCache, S3, Lambda, SQS, GCP Cloud SQL, Azure PostgreSQL)、Kubernetes 清单以及带有依赖关系的 Helm charts——所有这些都会集成到架构图中 - **安全性** — 绝不读取 `.env` 的值;集中的敏感文件保护 ## CLI | 命令 | 描述 | |---------|-------------| | `void add ` | 注册项目(自动检测服务) | | `void add-service -d ` | 手动添加服务 | | `void remove ` | 取消注册项目 | | `void list` | 列出项目和服务 | | `void scan ` | 预览检测而无需注册 | | `void start [-s service]` | 启动所有或单个服务 | | `void stop [-s service]` | 停止所有或单个服务 | | `void status ` | 实时状态:PID, URL, 运行时间 | | `void check ` | 验证依赖 | | `void diagram [-f mermaid\|drawio] [--print-content]` | 生成图表 | | `void audit [-o file]` | 安全审计 | | `void analyze [--compare] [--cross-project] [--best-practices]` | 代码分析 | | `void docker [--generate-dockerfile] [--generate-compose] [--save]` | Docker 智能分析 | | `void suggest [--model ] [--service ] [--raw]` | AI 重构建议 | | `void read-file ` | 读取任何项目文件(阻止 .env, 凭证) | | `void logs [-n lines] [--compact] [--raw]` | 显示过滤后的服务日志 | | `void index [--force] [--generate-voidignore] [--git-base ]` | 索引代码库以进行语义搜索(`--git-base HEAD~1` 使用 git diff) | | `void search "" [-t top_k]` | 语义代码搜索 | | `void stats [--project

] [--days ] [--json]` | Token 节省统计 | | `void claudeignore [--dry-run] [--force]` | 生成针对技术栈优化的 `.claudeignore` | **标志:** `--wsl` (WSL 路径), `--daemon` (连接到守护进程), `--compare` (比较快照), `--cross-project` (跨项目依赖), `--label ` (标记快照) ### 仅限 MCP 的工具 (Claude Desktop / Claude Code / OpenCode) 这些不是 CLI 命令——它们由 `void-stack-mcp` 暴露: | 工具 | 描述 | |------|-------------| | `watch_project` / `unwatch_project` | 文件更改时自动重新索引(约 500 毫秒防抖) | | `install_index_hook` | 安装一个 `post-commit` 钩子以重新索引更改的文件 | | `build_structural_graph` | 跨 10 种语言的 Tree-sitter 调用图——Rust, Python, JS, TS, Go, Dart, Java, PHP, C, C++ (`--features structural`) | | `get_impact_radius` | 影响范围 BFS——谁/什么会受到文件更改的影响 | | `query_graph` | 结构化图上的调用者 / 被调用者 / 测试 / 模糊搜索 | | `full_analysis` | 一份报告中的组合审计 + 架构 + 语义热点 (quick/standard/deep) | | `manage_suppressions` | 列出/添加/移除审计抑制规则,而无需手动编辑文件 | | `setup_project` | 一键上手:注册 + 生成 ignores + 索引 + 审计 + 分析 | ## TUI 仪表盘 ``` void-tui # All projects void-tui my-project # Specific project void-tui --daemon # Via daemon ``` | 按键 | 操作 | |-----|--------| | `a` | 启动所有服务 | | `s` | 启动选中的服务 | | `k` | 停止选中的服务 | | `K` | 停止所有 | | `1`-`5` | 切换标签页 (Services/Analysis/Security/Debt/Space) | | `R` | 在当前标签页运行操作 (analyze, audit, scan) | | `j`/`↓` | 向下导航 | | `l` | 切换日志面板 | | `Tab` | 切换面板 | | `r` | 刷新状态 | | `L` | 切换语言 (ES/EN) | | `?` | 帮助 | | `q` | 退出 (停止服务) | **i18n:** 西班牙语(默认)和英语。按 `L` 进行切换。 **标签页:** Services(管理/监控),Analysis(架构模式、层级、反模式、复杂度 + 覆盖率交叉对比),Security(风险评分、漏洞发现),Debt (TODO/FIXME/HACK 标记),Space(项目 + 全局磁盘使用情况) ## 桌面端 带有深色 GUI 的桌面应用: - **服务**:带有状态的卡片,自动检测平台,两步删除服务 - **日志**:带有服务选择器和自动滚动的实时日志查看器 - **依赖**:带有状态、版本、修复建议的检查表 - **图表**:Mermaid 渲染 + 原生 Draw.io XML 渲染,用于架构、API 路由、DB 模型 - **分析**:架构模式、反模式、圈复杂度、覆盖率可视化 - **文档**:使用 Markdown 样式渲染项目 README 和文档文件 - **磁盘空间**:扫描项目 + 全局缓存,查看大小,删除以释放空间 - **安全**:风险评分、漏洞发现、密钥检测、配置审计 - **技术债务**:带有趋势比较的指标快照,可展开的详细信息 - **Docker**:解析和分析现有 Docker 产物,生成 Dockerfile 和 docker-compose.yml,保存到项目,检测 Terraform/Kubernetes/Helm 基础设施 - **侧边栏**:项目导航,添加/删除项目,WSL 发行版浏览器 - **用户体验**:结果上的复制按钮,教育性工具提示,图表缩放控件,Material Design 3 排版 ## MCP 服务器(AI 集成) 让 Claude Desktop, Claude Code 或 OpenCode 直接管理你的项目。 **Windows** — 添加到 `%APPDATA%\Claude\claude_desktop_config.json`: ``` { "mcpServers": { "void-stack": { "command": "void-stack-mcp.exe" } } } ``` **macOS** — 添加到 `~/Library/Application Support/Claude/claude_desktop_config.json`: ``` { "mcpServers": { "void-stack": { "command": "/Users/YOUR_USERNAME/.cargo/bin/void-stack-mcp" } } } ``` **Linux** — 添加到 `~/.config/Claude/claude_desktop_config.json`: ``` { "mcpServers": { "void-stack": { "command": "void-stack-mcp" } } } ``` **OpenCode**(免费模型——无需 API 密钥)— 添加到 `~/.config/opencode/opencode.json`: ``` { "mcp": { "void-stack": { "type": "local", "command": ["void-stack-mcp"], "enabled": true } } } ``` **可用工具 (42):** `list_projects`, `project_status`, `start_project`, `stop_project`, `start_service`, `stop_service`, `get_logs`, `add_project`, `remove_project`, `check_dependencies`, `read_project_docs`, `read_all_docs`, `read_project_file`, `list_project_files`, `generate_diagram`, `analyze_project`, `audit_project`, `scan_directory`, `add_service`, `save_debt_snapshot`, `list_debt_snapshots`, `compare_debt`, `analyze_cross_project`, `scan_project_space`, `scan_global_space`, `docker_analyze`, `docker_generate`, `suggest_refactoring`, `generate_claudeignore`, `generate_voidignore`, `get_token_stats`, `index_project_codebase`, `semantic_search`, `get_index_stats`, `watch_project`, `unwatch_project`, `install_index_hook`, `build_structural_graph`, `get_impact_radius`, `query_graph`, `full_analysis`, `manage_suppressions` ## 依赖检测 | 检测器 | 检查项 | |----------|--------| | Python | 二进制文件、版本、venv、`pip check` | | Node | 二进制文件、`node_modules` 新鲜度 | | CUDA | `nvidia-smi`、驱动、GPU、VRAM、PyTorch | | Ollama | 二进制文件、API 健康、已下载的模型 | | Docker | 二进制文件、守护进程状态、compose | | Rust | `rustc` 和 `cargo` 版本 | | Go | `go version`、`go.mod` 存在 | | Flutter | `flutter --version`、`dart --version`、`pubspec.yaml` | | .env | 比较 `.env` 与 `.env.example` | ## 代码分析 ``` void analyze my-app -o analysis.md void analyze my-app --compare --label v2.0 void analyze my-app --cross-project void analyze my-app --best-practices void analyze my-app --bp-only # Only linters, skip architecture ``` - **模式** — MVC、Layered、Clean/Hexagonal 及其置信度 - **反模式** — God Class、Circular Dependencies、Fat Controllers、Excessive Coupling - **圈复杂度** — 按函数划分 - **覆盖率** — LCOV, Cobertura, Istanbul, Go 覆盖率配置文件 - **图** — 模块关系的 Mermaid 图 - **趋势** — 带有比较的历史快照 ## 图表 ``` void diagram my-app # Draw.io (default) void diagram my-app -f mermaid # Mermaid markdown ``` 检测:服务架构、外部服务(通过源代码和 .env 中的 URL 提取)、内部服务到服务调用(通过端口的本地主机交叉引用)、带有 Swagger/OpenAPI 丰富的 API 路由、内部与公共 API 分离、DB 模型、Rust crate 关系。 ## 架构 ``` void-stack/ ├── crates/ │ ├── void-stack-core/ # Core library: models, config, runners, detectors, analyzers │ ├── void-stack-proto/ # Protobuf definitions + gRPC client │ ├── void-stack-daemon/ # Daemon with gRPC server (tonic) │ ├── void-stack-tui/ # Terminal dashboard (ratatui) │ ├── void-stack-mcp/ # MCP server for AI assistants │ ├── void-stack-desktop/ # Tauri v2 app (React + TypeScript) │ └── void-stack-cli/ # CLI interface (clap) ├── example-void-stack.toml └── CHANGELOG.md ``` ## 配置 ### `void-stack.toml`(每个项目) ``` name = "my-fullstack-app" description = "Full stack app" project_type = "node" [hooks] install_deps = true [[services]] name = "backend-api" command = "npm run dev" target = "wsl" working_dir = "./backend" [[services]] name = "web-frontend" command = "npm run dev" target = "windows" working_dir = "./frontend" [[services]] name = "database" command = "docker compose up postgres redis" target = "docker" [[services]] name = "cache" command = "redis:7-alpine" target = "docker" [services.docker] ports = ["6379:6379"] ``` ### 全局配置 所有项目都存储在特定于平台的位置: - **Windows:** `%LOCALAPPDATA%\void-stack\config.toml` - **macOS:** `~/Library/Application Support/void-stack/config.toml` - **Linux:** `~/.config/void-stack/config.toml` 每个服务都有一个绝对的 `working_dir`,支持 monorepo 和分布式布局。 ## 安全 - 读取 `.env` **仅用于获取变量名**——值从不被存储或显示 - 敏感文件(`.env`、`credentials.json`、私钥、`secrets.*`)在分析和 MCP 中被阻止访问 - `security.rs` 中的集中拒绝列表涵盖了所有文件读取路径 ## 许可证 本项目基于 [Apache License 2.0](LICENSE) 授权。详情请参见 LICENSE 文件。

标签:AV绕过, Claude, Cursor, CVE检测, Django, Docker, Express, FastAPI, GNU通用公共许可证, MCP Server, Node.js, Python, Python工具, Rust, SOC Prime, Vite, 可视化界面, 安全防御评估, 开发工具, 开发环境编排, 开发者体验, 微服务管理, 技术栈管理, 数据库管理, 无后门, 服务发现, 桌面应用, 网络流量审计, 网络调试, 自动化, 请求拦截, 通知系统