内容
<p align="center">
<a href="https://github.com/lacs-project/sysknife">
<img src="assets/logo/sysknife.svg" alt="SysKnife" width="170" height="170"/>
</a>
</p>
<h1 align="center">SysKnife</h1>
<p align="center">
<em>您的系统管理员副驾驶。计划。审批。审计。</em>
</p>
<p align="center">
<a href="https://github.com/lacs-project/sysknife/actions"><img src="https://img.shields.io/github/actions/workflow/status/lacs-project/sysknife/ci.yml?branch=main&style=flat-square&logo=github&label=CI" alt="CI"></a>
<a href="https://github.com/lacs-project/sysknife/blob/main/LICENSE"><img src="https://img.shields.io/github/license/lacs-project/sysknife?style=flat-square" alt="License"></a>
<a href="https://github.com/lacs-project/sysknife/stargazers"><img src="https://img.shields.io/github/stars/lacs-project/sysknife?style=flat-square&logo=github" alt="Stars"></a>
<a href="https://github.com/lacs-project/sysknife/issues"><img src="https://img.shields.io/github/issues/lacs-project/sysknife?style=flat-square" alt="Issues"></a>
<a href="https://github.com/lacs-project/sysknife/discussions"><img src="https://img.shields.io/github/discussions/lacs-project/sysknife?style=flat-square&label=discuss" alt="Discussions"></a>
<a href="https://www.npmjs.com/package/sysknife-setup"><img src="https://img.shields.io/npm/v/sysknife-setup?style=flat-square&logo=npm&label=npx%20setup" alt="npm version"></a>
</p>
<p align="center">
<strong>发行版</strong>
<img src="https://img.shields.io/badge/Ubuntu%2024.04-validated-2f855a?style=flat-square&logo=ubuntu&logoColor=white" alt="Ubuntu 24.04 validated">
<img src="https://img.shields.io/badge/Ubuntu%2022.04%20%2F%2026.04-smoke--tested-d97706?style=flat-square&logo=ubuntu&logoColor=white" alt="Ubuntu 22.04 and 26.04 smoke-tested">
<img src="https://img.shields.io/badge/Fedora%20Atomic-current%20validation%20required-294172?style=flat-square&logo=fedora&logoColor=white" alt="Fedora Atomic current validation required">
</p>
<p align="center">
<a href="#install">安装</a> ·
<a href="#how-it-works">工作原理</a> ·
<a href="#why-not-just-x">为什么不直接使用X</a> ·
<a href="docs/distro-support.md">发行版矩阵</a> ·
<a href="ROADMAP.md">路线图</a> ·
<a href="CONTRIBUTING.md">贡献</a> ·
<a href="https://github.com/lacs-project/sysknife/discussions">讨论</a>
</p>
<p align="center">
<img src="assets/demo/mcp-flow.gif" alt="SysKnife in Claude Code via MCP" width="900"/>
</p>
<p align="center">
<em>克劳德代码MCP流程的示例复制品 — 相同的流程适用于Cursor和Codex CLI。</em><br/>
<em>寻找独立的CLI?请参阅<a href="docs/cli.md">CLI指南</a>。</em>
</p>
> **用日常语言描述您想要的内容。** 审查带有风险级别的计划。
> 显式批准。观察其执行并带有实时输出。 原子主机
> 更改(rpm-ostree)在失败时自动回滚。 每个操作都是
> Ed25519签名并审计。
SysKnife从不运行shell命令。每个操作都是**输入操作**
具有正式的风险级别。 AI无法直接触摸您的系统。 一个
特权守护进程仅执行您批准的操作,写入篡改证据
Ed25519签名审计链,并在失败时自动回滚原子主机(rpm-ostree)更改。
**为什么选择输入操作而不是受保护的shell?** 红队研究(GuardFall)
发现 **11个AI代理中的10个绕过原始字符串shell防护** — 允许列表
或正则表达式正在过滤一种足以隐藏意图的丰富语言。 SysKnife删除
shell字符串:模型发出
[输入操作](docs/typed-actions.md),并且
[公钥验证审计链](docs/the-audit-chain.md) 记录每个操作。
---
## 安装
最快的路径是设置向导。它安装守护进程并将SysKnife连接到您的AI IDE — Claude Code、Cursor或Codex CLI — 这样您就可以从聊天中计划和执行。
```sh
npx sysknife-setup
```
[](https://www.npmjs.com/package/sysknife-setup)
> **预启动:**二进制自动下载针对发布的GitHub
> 版本解析,在第一个版本发布之前,请运行
> `npx sysknife-setup --no-binary`并使用**手动
> 安装**步骤下面的步骤自行编译二进制文件。
这会:
1. **下载预编译的`sysknife` + `sysknife-daemon`二进制文件**,适用于您的
架构(x86_64 / aarch64)来自GitHub Releases,**SHA-256验证**
每个文件与发布校验和文件 — 不匹配则中止安装 — 并
将它们放在`~/.local/bin`(无需sudo)。传递`--no-binary`跳过下载并改为从源代码编译。
2. 询问您的**LLM提供商、密钥和模型** — OpenAI / Anthropic / Gemini
/ Ollama / Groq / DeepSeek / Mistral / xAI(Ollama不需要密钥)。如果已经设置了匹配的环境变量,则跳过密钥提示。
3. 询问要连接的**AI集成**(或选择`--claude` / `--cursor` /
`--codex` / `--all`)和您的**守护进程目标** — 套接字,以及一个可选的
远程VM的vsock令牌。
4. **编写集成特定的MCP配置**(合并到现有的
文件中,绝不会覆盖)以便下一个聊天会话看到`sysknife_*`工具 —
`sysknife_plan`、`sysknife_execute`、`sysknife_history`、`sysknife_doctor`、
`sysknife_audit_verify` — 作为一级工具。
5. **安装并启动守护进程作为服务**(最后一步)— 默认情况下是一个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 <transaction-id>`显式批准每个交易,返回一次性收据,观察其执行。守护进程(不是提示)强制执行收据边界。
> **更喜欢独立的CLI?** 相同的引擎,没有IDE — 请参阅
> [CLI指南](docs/cli.md)了解`sysknife "..."`、 `--dry-run`、 `--json`、
> 批准提示和审计日志检查。
<details>
<summary><strong>手动安装 — Ubuntu LTS · Fedora Atomic</strong></summary>
```sh
git clone https://github.com/lacs-project/sysknife
cd sysknife
make build # 编译 sysknife(CLI)+ sysknife-daemon
sudo make install # 安装两者;守护进程作为系统服务运行
sudo systemctl enable --now sysknife-daemon
# 然后连接您的IDE — --no-binary 跳过下载,因为您刚刚编译了它们
# (选择“跳过”在守护进程服务提示;make install 已经设置好了)
npx sysknife-setup --no-binary
```
Ubuntu 24.04 在实时VM上通过65/65故事验证。 Ubuntu 22.04和
26.04已经通过引导和烟雾测试,但未通过完整的故事套件。
Fedora Atomic是rpm-ostree目标;记录当前Silverblue 44 VM运行
,然后在将版本视为当前验证之前进行处理。 普通的Fedora工作站和
服务器在`dnf`动作系列发布之前仍处于实验阶段。 请参阅
[`发行版支持矩阵`](docs/distro-support.md)以获取证据和范围。
</details>
<details>
<summary><strong>干运行 — 仅计划,无执行</strong></summary>
```sh
# 需要sysknife二进制文件(请参阅上面的手动安装,或`npx sysknife-setup`)。
# 仅计划:无守护进程,无批准,无执行。
export ANTHROPIC_API_KEY=sk-ant-...
sysknife --dry-run "显示磁盘使用情况并列出过去一小时内占用CPU的服务"
```
</details>
## 工作原理
```
sysknife-brain → sysknife-shell → sysknife-daemon
(规划器) (批准门) (执行器)
与LLM交谈 显示计划, 只有特权
从不与操作系统 获取y/n 进程;签名
每个操作
```
1. 您输入一个自然语言请求。
2. 大脑提出一个计划 — 每个步骤都是一个**输入操作**,具有
风险级别(`低` · `中` · `高`)。
3. shell显示计划并预览,附带副作用和回滚
元数据。
4. 您显式批准每个步骤(或设置`--yes`直到风险上限)。
5. 守护进程执行,流式传输实时输出,在高风险失败时自动回滚。
6. 每次执行都记录到哈希链式SQLite或Postgres审计
轨迹,您可以使用`sysknife audit verify`进行验证。
大脑*提出*;只有守护进程具有特权。 守护进程*强制执行*
策略,执行输入操作,写入签名链,并在失败时触发
原子主机(rpm-ostree)回滚。 信任边界是
机械的:没有shell字符串跨越电线。
## 为什么不直接使用X?
| 工具 | 差距 |
|---|---|
| **Open Interpreter** | 运行任意Python/Shell。 无正式风险模型。 无审计链。 |
| **Goose / Continue** | 通用。 临时确认,无输入风险级别。 |
| **Claude Computer Use** | 无控制的桌面自动化,非系统管理。 |
| **Ansible** | YAML预先编写。 非会话。 无风险分类。 |
| **shell-gpt / Copilot** | 建议原始shell命令。 您仍然运行原始shell。 |
| **AIShell-Gate** | 最接近的对等体,但专有且封闭;审计是对称的HMAC(验证者持有签名密钥,因此证明说服不了其他人)。 无回滚。 |
| **手动** | 无审计轨迹。 无回滚。 一个输入错误 = 丢失工作。 |
SysKnife在构造上是不同的:输入操作,Ed25519签名审计
链,显式批准门,自动回滚原子主机(rpm-ostree)
更改,polkit中介权限边界。 AI永远不会持有shell。 请参阅完整的
[SysKnife vs. alternatives](docs/comparison.md) 分解(AIShell-Gate,
gate-oc-audit,MCP网关,通用mcp-shell)。
## 状态
信任链已构建、测试并投入使用。 多发行版是当前
里程碑。
| 组件 | 状态 |
|---|---|
| `sysknife-brain` — LLM规划器,工具循环,安全围栏 | ✅ |
| `sysknife-daemon` — 189个输入操作,身份验证,预览,交易 | ✅ |
| 实时IPC + 流媒体 + 原子主机回滚(rpm-ostree) | ✅ |
| 终端批准门 - 一次性,TTL绑定收据 | ✅ |
| MCP服务器(Claude Code / Cursor / 任意MCP客户端) | ✅ |
| 篡改证据Ed25519签名审计链 | ✅ |
| RFC 5424 syslog转发(Splunk / Sentinel / QRadar) | ✅ |
| Postgres后端(RDS / Cloud SQL / Neon / Supabase) | ✅ |
| **Ubuntu 24.04支持** — 65/65故事通过gpt-4.1在实时VM上验证 | ✅ |
| **Ubuntu 22.04 / 26.04 VM工具** — 烟雾测试通过所有三个LTS版本 | ✅ |
| Telegram批准界面 | 📋 路线图 |
**1,348个Rust测试和72个前端测试** 形成了当前的确定性
发布基线。
## 配置您的LLM
SysKnife适用于 **Ollama** (无需密钥,推荐用于隐私/离线/
本地实验室)或 **OpenAI**,**Anthropics**,**Gemini**,**Groq**,
**DeepSeek**,**Mistral**,**xAI**。
```toml
# ~/.config/sysknife/config.toml
[llm]
provider = "ollama" # 或 anthropic / openai / gemini / groq / ...
model = "qwen3:8b" # 提供者特定
ollama_url = "http://localhost:11434"
max_turns = 10
[daemon]
socket = "/run/sysknife/daemon.sock"
database = "/var/lib/sysknife/daemon.sqlite"
[storage] # 生产环境推荐
backend = "postgres"
url = "postgres://sysknife:${PG_PASSWORD}@db.example.com/audit?sslmode=verify-full"
```
环境变量始终优先于配置文件。完整的引用在
[`docs/configuration.md`](docs/configuration.md)。
## MCP协议
SysKnife实现了 [模型上下文协议](https://modelcontextprotocol.io/)
并公开批准的规划和执行工具。 `sysknife_plan`
返回守护进程颁发的交易ID用于每个步骤。 在审查计划后,
用户在真正的终端中运行`sysknife approve <transaction-id>`并
给出一次性收据给代理。 `sysknife_execute`拒绝丢失的,
过期,不匹配或重放的收据。 MCP服务器无法自行铸造批准
收据。
使用设置向导(上面)将其连接到Claude Code,Cursor或Codex CLI。
所有可能包含API密钥的配置文件都使用`chmod 0600`创建。
## 路线图
参见 [ROADMAP.md](ROADMAP.md)以获取完整的里程碑分解。
- ✅ **Ubuntu 24.04** — 65/65故事在实时VM上通过gpt-4.1验证
- ✅ **Ubuntu 22.04 / 26.04** — 完成VM工具;烟雾测试通过所有三个LTS版本
- 📋 Telegram内联按钮批准
- 📋 `sysknife audit export`(CEF / NDJSON用于SIEM导入)
- 📋 Fleet计划/执行(一个计划,N个目标,并行批准)
- 📋 GUI(Tauri shell)适用于Wayland桌面Linux
## 协议
SysKnife是 **LACS(Linux Agent Control Standard)协议**
的参考实现 — 输入操作,风险分类,批准门,
审计要求。 规范是CC0(公共领域):
→ **[lacs-project/specification](https://github.com/lacs-project/specification)**
鼓励其他发行版和语言的其他实现。
## 贡献
我们需要帮助。 **多发行版** 是当前影响最大的领域插入点 —
请参阅[`docs/distro-support.md`](docs/distro-support.md)获取
路线图矩阵和[`CONTRIBUTING.md`](CONTRIBUTING.md)获取工作流程。
问题标签
[`good first issue`](https://github.com/lacs-project/sysknife/labels/good%20first%20issue)
具有明确的验收标准。
## 文档
- [输入操作 — 为什么永远不是shell字符串](docs/typed-actions.md)
- [动作参考 — 每个动作,从代码生成](docs/action-reference.md)
- [审计链 — Ed25519,公钥可验证](docs/the-audit-chain.md)
- [自动回滚](docs/automatic-rollback.md)
- [SysKnife vs. alternatives](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守护进程设置](docs/vm-daemon-setup.md)
- [安全策略](SECURITY.md)
- [发布就绪检查清单](docs/release-readiness.md)
- [ADR 0001 — 系统边界](docs/adr/0001-system-boundaries.md)
- [ADR 0002 — 大脑提供层](docs/adr/0002-brain-provider-layer.md)
- [ADR 0003 — IPC线协议](docs/adr/0003-ipc-wire-protocol.md)
## SysKnife的位置
| 频道 | 安装 | 说明 |
|---------|---------|-------|
| **npm** | `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). 免费使用,修改,分发和嵌入到专有| **GitHub Releases** | 从 [Releases](https://github.com/lacs-project/sysknife/releases) 下载 | 包含SHA-256校验和的预构建x86_64 + aarch64二进制文件 |
## 许可
[MIT](LICENSE). 免费使用、修改、分发和嵌入专有产品,无需限制。
[LACS 规范](https://github.com/lacs-project/specification) 是
[CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/) — 公共领域。
---
<p align="center">
由 <a href="https://github.com/vladimirrott">Vladimir Rotariu</a> 构建。
·
问题,想法,故事 — <a href="https://github.com/lacs-project/sysknife/discussions">来聊天</a>.
</p>
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器