我构建了一个开源 CLI,防止你的 AI 终端泄露机密

发布: (2026年2月6日 GMT+8 03:50)
7 分钟阅读
原文: Dev.to

Source: Dev.to

我爱 AI 编码工具。我每天都在使用它们。

但有件事没有任何构建它们的人在意:你发送的所有内容都会直接送到模型,未经过滤

  • 你的命令历史
  • 你的环境变量
  • 凭证、令牌、错误日志中出现的客户数据

这些都没有被编辑。没有审计轨迹。你只能相信没有敏感信息泄露到提示中。

这不是一个好的安全姿态。所以我构建了一个东西。

AI 驱动的开发工作流中的潜在风险

AI 终端助手在提升生产力方面非常强大。我经常使用其中一种。它们大多数的工作方式如下:

Your full prompt → LLM API → response back

没有过滤。没有编辑。没有审计记录。

这意味着如果你的提示上下文中包含:

  • 来自命令历史的凭证
  • 错误日志中的个人身份信息(PII)
  • 环境中的内部主机名
  • 剪贴板中的令牌

……所有这些都会发送给模型。

用于副项目?谁在乎。但一旦你在处理生产系统、客户数据或专有代码时,这就会成为真正的合规问题——尤其是在受监管行业或面向企业客户时。

So I built: Bast CLI

Bast 是一个免费、开源的 AI 终端助手,在任何内容到达大语言模型(LLM)之前都会通过安全网关进行路由。

它具备你对 AI CLI 的所有期待——自然语言转 Shell 命令、命令解释、错误恢复——并且加入了安全层,能够:

  • 自动脱敏个人身份信息(电子邮件、API 密钥、凭证、令牌),在发送给模型之前进行过滤
  • 阻止提示注入和越狱尝试
  • 完整日志记录,让你对发送的内容和时间拥有全方位可观测性

它使用 Go 编写,采用 Bubble Tea 实现 TUI,遵循 MIT 许可证。

See it in action

Walkthrough

Bastio AI Security – BAST CLI Tool — Screen Studio

Bastio AI Security | BAST CLI Tool — Screen Studio
Created and shared with Screen Studio

Screen Studio icon

Install (macOS / Linux)

curl -fsSL https://raw.githubusercontent.com/bastio-ai/bast/main/scripts/install.sh | sh
bast init

Generate commands from plain English

$ bast run
> find all go files modified in the last week

find . -name "*.go" -mtime -7

[⏎ Run] [e Edit] [c Copy] [? Explain] [Esc Exit]

Understand a command before you run it

$ bast explain "tar -xzvf archive.tar.gz"

Extracts a gzip‑compressed tar archive. The flags:
  x = extract,
  z = decompress gzip,
  v = verbose output,
  f = specify filename.

Fix a failed command

$ git push origin feature/auth
! [rejected] feature/auth -> feature/auth (non‑fast‑forward)

$ bast fix
The remote branch has commits you don't have locally.
Suggested fix:
  git pull --rebase origin feature/auth

超越安全层

Bast 不仅是一个安全包装器——它是一个功能完整的 AI 终端助手。亮点:

危险命令检测

在执行 rm -rfgit push --forcedd 等破坏性操作前自动发出警告。包含受保护的 git 操作完整列表(强制推送、硬重置、分支删除、历史重写)。

Git 感知

了解当前分支、已暂存的更改、合并/变基状态以及最近的提交。当你让它“用好的信息提交我的更改”时,它会读取你的 diff 并生成有意义的提交信息。

代理模式

输入 /agent 进行多步骤任务。Bast 可以执行命令、读取文件,并迭代完成复杂工作流:

$ bast run
> /agent find all TODO comments in go files and summarize them

Tool Calls:
  run_command {"command": "grep -r 'TODO' --include='*.go' ."}

Found 2 TODO comments in the codebase:
1. internal/ai/anthropic.go Add streaming support for responses
2. internal/tools/loader.go Validate script permissions before execution

Shell 集成

在配置中添加 eval "$(bast hook zsh)",即可使用 Ctrl+A 启动 Bast,Ctrl+E 解释当前正在输入的命令。

自定义插件

使用位于 ~/.config/bast/tools/ 的简单 YAML 清单,扩展 Bast 以加入自己的工具。非常适合部署流水线、数据库操作或任何你想让 AI 感知的工作流。

网关(以及如何跳过它)

Bastio 安全网关每月免费提供 100 000 次请求——无需信用卡。它处理 PII 脱敏、注入阻断和可观测性。

如果您更愿意直接连接 Anthropic API:

export ANTHROPIC_API_KEY=sk-ant-...
export BAST_GATEWAY=direct

您将失去安全功能,但其他一切仍然可用。

为什么开源?

如果一个工具声称能够保护你的数据,你应该能够阅读它的代码。闭源的安全工具本身就是一种矛盾。

整个 CLI 都托管在 GitHub,采用 MIT 许可证。阅读它,fork 它,尝试破坏它,改进它。

github.com/bastio-ai/bast

接下来

  • 在 Anthropic 之外提供更多 LLM 提供商支持
  • 团队仪表盘和策略控制
  • 扩展的 PII 检测模式
  • IDE 集成

我很想听到你的反馈

这是我在 Dev.to 的第一篇文章,bast 是一个全新的项目。如果你在包含敏感数据的环境中使用 AI 编码工具,我真的想了解一下你的做法:

  • 你是否在生产代码库上运行 AI 助手?
  • 你的团队是否有关于向大语言模型(LLM)发送内容的政策?
  • 你会使用类似的工具吗,还是觉得它有点大材小用?

如果你觉得这个项目有趣,请给仓库加星;如果出现问题,请提交 issue,并告诉我我遗漏了什么。

GitHub: github.com/bastio-ai/bast
Website: bastio.com

Back to Blog

相关文章

阅读更多 »

当 AI 给你一巴掌

当 AI 给你当头一棒:在 Adama 中调试 Claude 生成的代码。你是否曾让 AI “vibe‑code” 一个复杂功能,却花了数小时调试细微的 bug……