sezaakgun/yolonot
GitHub: sezaakgun/yolonot
为 AI 编码助手提供安全的自动模式,避免使用危险的跳过权限参数。
Stars: 4 | Forks: 0
yolonot
智能 AI 编码助手的自动模式安全方案。无需使用 --dangerously-skip-permissions 的安全替代方案。
专为 Claude Code 打造,同时兼容 Codex CLI、OpenCode、Gemini CLI 和 Cursor。
yolonot 位于你的 AI 编码助手与终端之间。它使用大语言模型(LLM)将每个 Bash 命令分类为 **安全(允许)** 或 **需审核(询问)**,并具备会话记忆功能:已批准的命令不会重复询问,被拒绝的命令将永久拦截。拒绝规则提供绝对封锁,无法被覆盖。
## 快速开始
### 1. 选择 LLM 提供商
| 提供商 | 成本 | 延迟 | 密钥 |
|----------|------|--------:|-----|
| **OpenAI** `gpt-5.4-mini` | 约 10¢/天 | ~500ms | `OPENAI_API_KEY` |
| **Ollama** `gemma4:e4b` | 免费 | 2–10s | —(本地) |
| **Claude Code**(默认) | 免费 | ~10s | —(订阅) |
完整矩阵请参考 [docs/providers.md](docs/providers.md)。
### 2. 安装
```
go install github.com/sezaakgun/yolonot@latest
# 确保 Go bin 在 PATH 中
export PATH="$PATH:$(go env GOPATH)/bin"
# 首次运行向导:hooks + rules + provider pick
yolonot setup
```
### 3. 重启主机 CLI
钩子在启动时读取,因此需要重启 Claude Code(或你正在使用的其他工具)才能激活 yolonot。
完成配置。现在所有 Bash 命令都会经过 [处理管道](docs/how-it-works.md)。
## 文档
| 主题 | 文件 |
|-------|------|
| 决策流程——分层、钩子顺序、暂停与干运行 | [docs/how-it-works.md](docs/how-it-works.md) |
| 所有 CLI 与 `/yolonot` 技能命令 | [docs/commands.md](docs/commands.md) |
| `.yolonot` 规则文件——格式、向上遍历、消息、重定向、敏感文件 | [docs/rules.md](docs/rules.md) |
| 预检查钩子——`fast-allow` 内部机制、Dippy 集成、安全模型 | [docs/pre-check.md](docs/pre-check.md) |
| 风险等级——每个工具的行为策略与覆盖规则 | [docs/risk-tiers.md](docs/risk-tiers.md) |
| LLM 提供商——矩阵、环境变量、响应结构 | [docs/providers.md](docs/providers.md) |
| 工具——安装标志、运行时固定、每个主机的注意事项 | [docs/harnesses.md](docs/harnesses.md) |
| 分析——`yolonot log`、`stats`、`suggest`、静默模式 | [docs/analytics.md](docs/analytics.md) |
| 评估套件——跨模型测试提示质量 | [docs/eval.md](docs/eval.md) |
| 架构——代码布局、数据目录 | [docs/architecture.md](docs/architecture.md) |
## 卸载
```
yolonot uninstall # removes hooks + skill, preserves data
```
数据将保留在 `~/.yolonot/`。如需手动删除,请自行清理。
## 感谢
内置的 `fast-allow` 预检查器深受 [**Dippy**](https://github.com/lilydayton/dippy) 启发(由 Lily Dayton 开发)——特别是其 `SIMPLE_SAFE` 允许列表、子命令门控方法(适用于 `git`、`docker`、`kubectl` 等多工具),以及其针对恶意输入设计的测试语料库。yolonot 将允许列表表格移植为 Go,并通过 [`mvdan.cc/sh`](https://github.com/mvdan/sh) 重新遍历 AST(而非依赖 Dippy 的手写 Python Bash 解析器 Parable)。当 yolonot 的解析器遇到歧义时,会将决策委托给 LLM——这是 Dippy 不依赖的后备机制,因此 Go 版本可以更严格(拒绝并交由 LLM 决定),而不会影响用户体验。`dippy_parity_test.go` 语料库与规则系统直接借鉴自 Dippy 项目。MIT 许可,代码头文件已注明版权。
## 许可证
MIT。详见 [LICENSE](LICENSE)。
标签:AI 编码助手, ATT&CK 防护, Bash 命令审核, C2, Claude Code, EVTX分析, Go 语言, LLM 分类, Shell 安全, 二进制发布, 代码安全, 会话记忆, 命令行安全, 威胁情报, 安全替代, 开发者工具, 开源工具, 批量测试, 拒绝规则, 日志审计, 权限控制, 权限绕过防护, 漏洞枚举, 结构化查询, 自动化安全, 跨平台工具