fakekey 0.1.3

API Key Proxy Agent - manage and replace API keys via network proxy
Documentation
<p align="center">
<b><a href="README.md">English</a></b> | 中文
</p>

# FakeKey - API Key Proxy Agent

随着龙虾们的广泛应用,将各种服务的 API Token 直接配置在环境变量中已成为常态。你的 api_key 会被塞入上下文被模型服务商知道,会被你所信任的龙虾知道,也许是被某个skill捕获读取,更有可能陌生人询问你的龙虾直接得知。太多泄露的案例,我无法信任的将自己绑定信用卡的 api_key 直接暴露给任何 Agent 和本地环境变量中,于是乎 FakeKey 应运而生,最安全的措施就是永远不暴露真实的 api_key。


FakeKey 是基于 Rust 开发的高性能 API 密钥代理程序。通过智能代理技术,它能够在 HTTP 请求头和 URL 中自动将假密钥替换为真实密钥,无需暴露真实凭证,同时保持完整的 HTTP API 兼容性和性能。

## 如何工作

```
┌─────────────────┐         ┌──────────────────────────┐           ┌─────────────────┐
│   Client Agent  │ HTTP/S  │       FakeKey Proxy      │ HTTP/S    │  External API   │
│                 │────────▶│  1. TLS 解密              │-────────▶ │                 │
│  使用假密钥       │         │  2. 识别替换假密钥         │           │  接收真实密钥     │
│  sk-xxx_fk      │         │  3. 转发请求              │           │  sk-xxx         │
└─────────────────┘         └──────────────────────────┘           └─────────────────┘
```


## 快速开始

### 安装

#### 快速安装(macOS / Linux)

```bash
curl -fsSL https://raw.githubusercontent.com/happyvibing/fakekey/main/install.sh | bash
```

#### Homebrew(macOS / Linux)

```bash
brew install happyvibing/tap/fakekey
```

#### Cargo(从 crates.io)

```bash
cargo install fakekey
```

#### 从源码编译安装

```bash
git clone https://github.com/happyvibing/fakekey.git
cd fakekey
cargo build --release
cargo install --path .
```

#### 下载预编译二进制

所有平台的预编译二进制文件可在 [GitHub Releases](https://github.com/happyvibing/fakekey/releases) 页面下载:

| 平台 | 文件 |
|------|------|
| macOS (Apple Silicon) | `fakekey-macos-arm64.tar.gz` |
| macOS (Intel) | `fakekey-macos-amd64.tar.gz` |
| Linux (x86_64) | `fakekey-linux-amd64.tar.gz` |
| Linux (ARM64) | `fakekey-linux-arm64.tar.gz` |
| Windows (x86_64) | `fakekey-windows-amd64.zip` |

### 一键初始化

```bash
fakekey onboard
```

过程中会提示你信任 CA 证书,首次使用时需要将 CA 证书添加到系统信任列表:

```bash
# macOS
sudo security add-trusted-cert -d -r trustRoot \
  -k /Library/Keychains/System.keychain ~/.fakekey/certs/ca.crt

# Linux
sudo cp ~/.fakekey/certs/ca.crt /usr/local/share/ca-certificates/fakekey.crt
sudo update-ca-certificates
```

### 基本命令

```bash
# 生成 OpenAI 类型密钥假 KEY
fakekey add --name my-openai-key --key "sk-proj-xxxxx" --template openai

# 生成自定义密钥假 KEY
fakekey add --name my-custom --key "xxxxx"

# 查看可用模板
fakekey templates

# 列出所有配置的密钥
fakekey list

# 查看特定密钥配置
fakekey show --name my-openai-key

# 删除密钥配置
fakekey remove --name my-openai-key

# 查看代理状态
fakekey status

# 启动代理(自动配置环境变量)
fakekey start

# 停止代理(自动清理环境变量)
fakekey stop

# 查看日志
fakekey logs
```

### 一键启动工具(推荐)

FakeKey 提供了便捷的方式来启动 CLI 工具,并自动配置代理保护:

```bash
# 启动 Claude Code 并自动配置代理保护
fakekey run claude

# 启动 OpenClaw 并自动配置代理保护
fakekey run openclaw

# 传递额外参数给工具
fakekey run claude --help
```

该命令会自动完成以下操作:
1. 检查代理是否运行,如果未运行则自动启动
2. 设置所有必要的环境变量(HTTP_PROXY、HTTPS_PROXY、NODE_EXTRA_CA_CERTS 等)
3. 启动工具并启用代理保护
4. 您的所有 API 密钥都将自动受到保护!

### 自动代理配置

FakeKey 会自动管理你的 shell 环境变量,无需手动配置:

- **启动时**:`fakekey start` 会自动将以下环境变量添加到你的 shell 配置文件(`.zshrc`、`.bashrc` 等):
  - `http_proxy=http://127.0.0.1:1155`
  - `https_proxy=http://127.0.0.1:1155`
  - `NODE_EXTRA_CA_CERTS=~/.fakekey/certs/ca.crt`
  - `SSL_CERT_FILE=~/.fakekey/certs/ca.crt`
  - `REQUESTS_CA_BUNDLE=~/.fakekey/certs/ca.crt`

- **停止时**:`fakekey stop` 会自动清理这些环境变量

- **使用方式**:只需将生成的假 API KEY 替换真实密钥到你的 Agent 或应用中即可

> 💡 **提示**:环境变量配置后会提示你运行 `source ~/.zshrc`(或对应配置文件)来立即生效。

## 安全

1. **密钥保护** - 真实 API 密钥使用 AES-256-GCM 加密后存储在本地配置文件中;加密密钥安全存储于操作系统级密钥库(macOS Keychain / Linux Secret Service / Windows Credential Manager)
2. **证书安全** - 本地生成 CA 证书,私钥文件权限 0600,用于 TLS MITM 代理
3. **网络安全** - 仅监听本地 127.0.0.1,支持主机白名单
4. **日志脱敏** - 自动隐藏敏感信息
5. **审计追踪** - 所有关键操作记录到审计日志


## 许可证

Apache License 2.0

## 贡献

欢迎提交 Issue 和 Pull Request!