lacs-project/sysknife

GitHub: lacs-project/sysknife

一个通过类型化操作、审批网关和签名审计链来安全执行 Linux 系统管理任务的 AI 副驾驶工具。

Stars: 4 | Forks: 0

SysKnife

SysKnife

你的系统管理副驾驶。规划。审批。审计。

CI License Stars Issues Discussions npm version

Distros  Ubuntu 24.04 validated Ubuntu 22.04 and 26.04 smoke-tested Fedora Atomic current validation required

安装 · 工作原理 · 为什么不用 X · 发行版矩阵 · 路线图 · 贡献 · 讨论

SysKnife in Claude Code via MCP

对 Claude Code MCP 流程的演示性重现 —— 同样的流程也适用于 Cursor 和 Codex CLI。
寻找独立 CLI?请参阅 CLI 指南

SysKnife 绝不直接运行 shell 命令。每一个操作都是具有正式风险等级的**类型化操作**。AI 无法直接触碰你的系统。一个特权 daemon 仅执行你批准的操作,写入防篡改的 Ed25519 签名审计链,并在失败时自动回滚 atomic-host (rpm-ostree) 的更改。 **为什么使用类型化操作而不是受监控的 shell?** 红队研究 发现 **11 个 AI 代理中有 10 个能绕过原始字符串 shell 防护** —— allowlist 或 regex 只是在过滤一种足以隐藏真实意图的丰富语言。SysKnife 彻底移除了 shell 字符串:模型发出[类型化操作](docs/typed-actions.md),而一条[公钥可验证的审计链](docs/the-audit-chain.md)会记录下每一个操作。 ## 安装 最快的途径是使用设置向导。它会安装 daemon 并将 SysKnife 接入你的 AI IDE —— Claude Code、Cursor 或 Codex CLI —— 这样你就可以直接在聊天中进行规划和执行。 ``` npx sysknife-setup ``` [![npm version](https://img.shields.io/npm/v/sysknife-setup?style=flat-square&logo=npm)](https://www.npmjs.com/package/sysknife-setup) 此操作会执行以下内容: 1. **为你的系统架构 (x86_64 / aarch64) 从 GitHub Releases 下载预构建的 `sysknife` 和 `sysknife-daemon` 二进制文件**,针对发布校验和文件对每一个进行 **SHA-256 校验** —— 如果不匹配则中止安装 —— 并将它们放置在 `~/.local/bin` 目录下(无需 sudo)。传入 `--no-binary` 可跳过下载并改为从源码构建。 2. 询问你的 **LLM 提供商、密钥和模型** —— OpenAI / Anthropic / Gemini / Ollama / Groq / DeepSeek / Mistral / xAI(Ollama 不需要密钥)。如果已设置匹配的环境变量,则会跳过密钥提示。 3. 询问**要接入哪个 AI 集成**(或选择 `--claude` / `--cursor` / `--codex` / `--all`)以及你的 **daemon 目标** —— socket,外加一个可选的用于远程 VM 的 vsock token。 4. **写入特定于集成的 MCP 配置**(合并到任何现有文件中,绝不覆盖),以便下一次聊天会话能将 `sysknife_*` 工具 —— `sysknife_plan`、`sysknife_execute`、`sysknife_history`、`sysknife_doctor`、`sysknife_audit_verify` —— 作为一等工具识别。 5. **作为服务安装并启动 daemon**(最后一步) —— 默认为 systemd *用户*服务(无需 sudo;通过 linger 在注销后保持活跃)。对于生产环境的多用户主机,请选择系统级服务。 | 客户端 | 写入的文件 | |-----------------|------------------------------------------------------| | **Claude Code** | `.mcp.json` + `.claude/hookify.*.local.md` | | **Cursor** | `.cursor/mcp.json` + `.cursor/rules/sysknife.mdc` | | **Codex CLI** | `~/.codex/config.toml` (追加) + `AGENTS.md` | 然后在你的聊天中:提出你的需求并查看带有风险标签的计划。在终端中通过 `sysknife approve ` 批准每个事务,返回一次性凭证,并观看其执行过程。强制执行凭证边界的是 daemon,而不是 prompt。
手动安装 — Ubuntu LTS · Fedora Atomic ``` git clone https://github.com/lacs-project/sysknife cd sysknife make build # builds sysknife (CLI) + sysknife-daemon sudo make install # installs both; daemon runs as a system service sudo systemctl enable --now sysknife-daemon # 然后连接你的 IDE — --no-binary 会跳过下载,因为你刚刚已经构建了它们 # (在 daemon-service 提示时选择“skip”;make install 已经设置好了) npx sysknife-setup --no-binary ``` Ubuntu 24.04 已在实时 VM 上通过 65/65 故事验证。Ubuntu 22.04 和 26.04 已通过 bootstrap 和冒烟测试,但尚未完成完整的故事套件。Fedora Atomic 是 rpm-ostree 的目标;在将某个版本视为当前已验证版本之前,请记录当前 Silverblue 44 VM 的运行情况。在 `dnf` 操作系列发布之前,普通的 Fedora Workstation 和 Server 仍处于实验阶段。有关证据和范围,请参阅[`发行版支持矩阵`](docs/distro-support.md)。
试运行 — 仅规划,不执行任何操作 ``` # 需要 sysknife 二进制文件(参见上方的手动安装,或 `npx sysknife-setup`)。 # 仅限 plans:无 daemon、无审批、无执行。 export ANTHROPIC_API_KEY=sk-ant-... sysknife --dry-run "show disk usage and list services that ate cpu in the last hour" ```
## 更喜欢终端?CLI 是一条核心路径 相同的引擎,无需 IDE 和 MCP 客户端 —— 从自然语言到类型化计划再到实时执行,直接在你的 shell 中完成,支持 `--dry-run`、`--json`、最高至风险上限的 `--yes`,以及 `sysknife audit verify`。这是运行 SysKnife 的完全受支持的方式,而不是事后补充。请参阅 [CLI 指南](docs/cli.md)。

sysknife CLI — plan, approve, and execute in the terminal

## 工作原理 ``` sysknife-brain → sysknife-shell → sysknife-daemon (planner) (approval gate) (executor) talks to LLM shows the plan, only privileged never to OS takes y/n process; signs every action ``` 1. 你输入一个自然语言请求。 2. 大脑提出一个计划 —— 每一步都是带有风险等级(`Low` · `Medium` · `High`)的**类型化操作**。 3. shell 显示带有预览、副作用和回滚元数据的计划。 4. 你明确批准每一个步骤(或设置 `--yes` 直到达到某个风险上限)。 5. daemon 执行,流式传输实时输出,并在高风险失败时自动回滚。 6. 每次执行都会记录到一条 hash 链式的 SQLite 或 Postgres 审计轨迹中,你可以使用 `sysknife audit verify` 进行验证。 大脑负责*提议*;只有 daemon 拥有特权。daemon *强制执行*策略,执行类型化操作,写入已签名的链,并在失败时触发 atomic-host 回滚 (rpm-ostree)。信任边界是机械化的:没有 shell 字符串会通过网络传输。 ## 为什么不用 X? | 工具 | 差距 | |---|---| | **Open Interpreter** | 运行任意 Python/Shell。没有正式的风险模型。没有审计链。 | | **Goose / Continue** | 通用型。临时确认,而非类型化的风险等级。 | | **Claude Computer Use** | 不受控的桌面自动化,而非系统管理。 | | **Ansible** | 提前编写 YAML。非对话式。没有风险分类。 | | **shell-gpt / Copilot** | 建议原始 shell 命令。你仍在运行原始 shell。 | | **AIShell-Gate** | 最接近的同类产品,但它是专有且封闭的;审计是对称 HMAC(验证者持有签名密钥,因此证明无法说服其他任何人)。没有回滚。 | | **Manual** | 没有审计轨迹。没有回滚。一个输入错误 = 丢失工作。 | SysKnife 在构建上就与众不同:类型化操作、Ed25519 签名审计链、明确的批准网关、针对 atomic-host (rpm-ostree) 更改的自动回滚、基于 polkit 的特权边界。AI 绝不持有 shell。请参阅完整的 [SysKnife 对比其他替代方案](docs/comparison.md)分析(AIShell-Gate、gate-oc-audit、MCP 网关、通用的 mcp-shell)。 ## 状态 信任链已构建、测试并发布。多发行版支持是当前的活跃里程碑。 | 组件 | 状态 | |---|---| | `sysknife-brain` — LLM 规划器,工具循环,安全护栏 | ✅ | | `sysknife-daemon` — 189 个类型化操作,认证,预览,事务 | ✅ | | 实时 IPC + 流式传输 + atomic-host 回滚 (rpm-ostree) | ✅ | | 终端批准网关 — 一次性,TTL 限制的凭证 | ✅ | | MCP 服务器 (Claude Code / Cursor / 任何 MCP 客户端) | ✅ | | 防篡改的 Ed25519 签名审计链 | ✅ | | RFC 5424 syslog 转发 (Splunk / Sentinel / QRadar) | ✅ | | Postgres 后端 (RDS / Cloud SQL / Neon / Supabase) | ✅ | | **Ubuntu 24.04 支持** — 在使用 gpt-4.1 的实时 VM 上通过 65/65 故事 | ✅ | | **Ubuntu 22.04 / 26.04 VM 工具** — 在所有三个 LTS 版本上通过冒烟测试 | ✅ | | Telegram 批准界面 | 📋 路线图 | **1,405 个 Rust 测试和 72 个前端测试**构成了当前的确定性发布基线。 ## 配置你的 LLM SysKnife 可与 **Ollama**(无需密钥,推荐用于隐私 / 离线 / 个人实验室)或 **OpenAI**、**Anthropic**、**Gemini**、**Groq**、**DeepSeek**、**Mistral**、**xAI** 配合使用。 ``` # ~/.config/sysknife/config.toml [llm] provider = "ollama" # or anthropic / openai / gemini / groq / ... model = "qwen3:8b" # provider-specific ollama_url = "http://localhost:11434" max_turns = 10 [daemon] socket = "/run/sysknife/daemon.sock" database = "/var/lib/sysknife/daemon.sqlite" [storage] # production-recommended backend = "postgres" url = "postgres://sysknife:${PG_PASSWORD}@db.example.com/audit?sslmode=verify-full" ``` 环境变量始终优先于配置文件。完整参考请参阅[`docs/configuration.md`](docs/configuration.md)。 ## MCP 协议 SysKnife 实现了[Model Context Protocol](https://modelcontextprotocol.io/)并公开了受批准网关保护的规划和执行工具。`sysknife_plan` 为每个步骤返回一个由 daemon 签发的事务 ID。在审查计划后,用户在真实的终端中运行 `sysknife approve ` 并将一次性凭证交给代理。`sysknife_execute` 会拒绝缺失、过期、不匹配或重放的凭证。MCP 服务器本身无法凭空生成批准凭证。 使用设置向导(如上所述)将其接入 Claude Code、Cursor 或 Codex CLI。所有可能包含 API 密钥的配置文件在创建时均带有 `chmod 0600` 权限。 ## 路线图 有关完整的里程碑细分,请参阅 [ROADMAP.md](ROADMAP.md)。 - ✅ **Ubuntu 24.04** — 在实时 VM 上验证了 65/65 个故事 (gpt-4.1) - ✅ **Ubuntu 22.04 / 26.04** — VM 工具完成;在所有三个 LTS 版本上均通过了冒烟测试 - 📋 Telegram 内联按钮批准 - 📋 `sysknife audit export` (用于 SIEM 摄取的 CEF / NDJSON) - 📋 集群计划/执行(一个计划,N 个目标,并行批准) ## 协议 SysKnife 是 **LACS (Linux Agent Control Standard)** 协议的参考实现 —— 类型化操作、风险分类、批准网关、审计要求。规范基于 CC0(公共领域): → **[lacs-project/specification](https://github.com/lacs-project/specification)** 我们明确鼓励为其他发行版和语言开发其他实现。 ## 文档 - [类型化操作 — 为什么绝不使用 shell 字符串](docs/typed-actions.md) - [操作参考 — 每一个操作,均从代码生成](docs/action-reference.md) - [审计链 — Ed25519,公钥可验证](docs/the-audit-chain.md) - [自动回滚](docs/automatic-rollback.md) - [SysKnife 对比其他替代方案](docs/comparison.md) - [架构概述](docs/architecture.md) - [发行版支持矩阵](docs/distro-support.md) - [配置](docs/configuration.md) - [审计存储与恢复](docs/storage-cloud.md) - [开发者指南](docs/developer-guide.md) - [测试指南](docs/contributing/testing.md) - [VM daemon 设置](docs/vm-daemon-setup.md) - [安全策略](SECURITY.md) - [发布准备清单](docs/release-readiness.md) - [路线图](ROADMAP.md) - [ADR 0001 — 系统边界](docs/adr/0001-system-boundaries.md) - [ADR 0002 — Brain 提供商层](docs/adr/0002-brain-provider-layer.md) - [ADR 0003 — IPC 网络协议](docs/adr/0003-ipc-wire-protocol.md) ## 哪里可以找到 SysKnife | 渠道 | 安装 | 备注 | |---------|---------|-------| | **** | `npx sysknife-setup` | [npmjs.com/package/sysknife-setup](https://www.npmjs.com/package/sysknife-setup) — 零安装设置向导 | | **crates.io** | `cargo install sysknife-cli` / `cargo install sysknife-daemon` | 通过审核的版本标签发布;请参阅 [docs/release.md](docs/release.md) | | **GitHub Releases** | 从 [Releases](https://github.com/lacs-project/sysknife/releases) 下载 | 预构建的 x86_64 + aarch64 二进制文件,每个标签均附带 SHA-256 校验和 | ## 许可证 [MIT](LICENSE)。可免费使用、修改、分发,并无限制地嵌入到专有产品中。 [LACS 规范](https://github.com/lacs-project/specification)基于[CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/) — 公共领域。

Vladimir Rotariu 构建。 · 问题、想法、实战故事 — 来打个招呼

标签:Awesome, 人工智能, 可视化界面, 操作审计, 暗色界面, 测试用例, 用户模式Hook绕过, 系统管理, 自动化运维, 运维工具, 通知系统