人人都是哈基米大王 👑
注意: 本项目正处于beta期间,所以功能、结构、接口等等都有可能变化,不保证稳定性,请自行承担风险。
- GitHub搜索Gemini Key 🔍 - 基于自定义查询表达式搜索GitHub代码中的API密钥
- 代理支持 🌐 - 支持多代理轮换,提高访问稳定性和成功率
- 增量扫描 📊 - 支持断点续传,避免重复扫描已处理的文件
- 智能过滤 🚫 - 自动过滤文档、示例、测试文件,专注有效代码
- 外部同步 🔄 - 支持向Gemini-Balancer和GPT-Load同步发现的密钥
- 数据库支持保存key 💾 - 支持将发现的API密钥持久化存储到数据库中
- API、可视化展示抓取的key列表 📊 - 提供API接口和可视化界面获取已抓取的密钥列表
- 付费key检测 💰 - 额外check下付费key
# 确保已安装Python
python --version
# 安装uv包管理器(如果未安装)
pip install uv# 克隆项目
git clone <repository-url>
cd hajimi-king
# 复制配置文件
cp env.example .env
# 复制查询文件
cp queries.example queries.txt编辑 .env 文件,必须配置GitHub Token:
# 必填:GitHub访问令牌
GITHUB_TOKENS=ghp1,ghp2,ghp3
# 可选:其他配置保持默认值即可💡 获取GitHub Token:访问 GitHub Settings > Tokens,创建具有
public_repo权限的访问令牌 🎫
# 安装项目依赖
uv pip install -r pyproject.toml
# 创建数据目录
mkdir -p data
# 运行程序
python app/hajimi_king.py# 查看日志文件
tail -f data/keys/keys_valid_detail_*.log
# 查看找到的有效密钥
cat data/keys/keys_valid_*.txt
# 停止程序
Ctrl + Cversion: '3.8'
services:
hajimi-king:
image: ghcr.io/gakkinoone/hajimi-king:latest
container_name: hajimi-king
restart: unless-stopped
environment:
# 必填:GitHub访问令牌
- GITHUB_TOKENS=ghp_your_token_here_1,ghp_your_token_here_2
# 可选配置
- HAJIMI_CHECK_MODEL=gemini-2.5-flash
- QUERIES_FILE=queries.txt
volumes:
- ./data:/app/data
working_dir: /appversion: '3.8'
services:
hajimi-king:
image: ghcr.io/gakkinoone/hajimi-king:latest
container_name: hajimi-king
restart: unless-stopped
env_file:
- .env
volumes:
- ./data:/app/data
working_dir: /app创建 .env 文件(参考 env.example):
# 复制示例配置文件
cp env.example .env
# 编辑配置文件,填入你的GitHub Token# 创建数据目录和查询文件
mkdir -p data
echo "AIzaSy in:file" > data/queries.txt
# 启动服务
docker-compose up -d
# 查看日志
docker-compose logs -f强烈建议使用!GITHUB、GEMINI 访问长时间高频都会BAN IP
如果需要使用代理访问GitHub或Gemini API,推荐使用本地WARP代理:
🌐 代理方案:warp-docker - 本地WARP代理解决方案
在 .env 文件中配置:
# 多个代理使用逗号分隔
PROXY=http://localhost:1080以下是所有可配置的环境变量,在 .env 文件中设置:
| 变量名 | 说明 | 示例值 |
|---|---|---|
GITHUB_TOKENS |
GitHub API访问令牌,多个用逗号分隔 🎫 | ghp_token1,ghp_token2 |
| 变量名 | 默认值 | 说明 |
|---|---|---|
PROXY |
空 | 代理服务器地址,支持多个(逗号分隔)和账密认证,格式:http://user:pass@proxy:port 🌐 |
DATA_PATH |
/app/data |
数据存储目录路径 📂 |
DATE_RANGE_DAYS |
730 |
仓库年龄过滤(天数),只扫描指定天数内的仓库 📅 |
QUERIES_FILE |
queries.txt |
搜索查询配置文件路径(表达式严重影响搜索的高效性) 🎯 |
HAJIMI_CHECK_MODEL |
gemini-2.5-flash |
用于验证key有效的模型 🤖 |
GEMINI_BALANCER_SYNC_ENABLED |
false |
是否启用Gemini Balancer同步 🔗 |
GEMINI_BALANCER_URL |
空 | Gemini Balancer服务地址(http://your-gemini-balancer.com) 🌐 |
GEMINI_BALANCER_AUTH |
空 | Gemini Balancer认证信息(密码) 🔐 |
GPT_LOAD_SYNC_ENABLED |
false |
是否启用GPT Load Balancer同步 🔗 |
GPT_LOAD_URL |
空 | GPT Load 服务地址(http://your-gpt-load.com) 🌐 |
GPT_LOAD_AUTH |
空 | GPT Load 认证Token(页面密码) 🔐 |
GPT_LOAD_GROUP_NAME |
空 | GPT Load 组名,多个用逗号分隔(group1,group2) 👥 |
| 变量名 | 默认值 | 说明 |
|---|---|---|
VALID_KEY_PREFIX |
keys/keys_valid_ |
有效密钥文件名前缀 🗝️ |
RATE_LIMITED_KEY_PREFIX |
keys/key_429_ |
频率限制密钥文件名前缀 ⏰ |
KEYS_SEND_PREFIX |
keys/keys_send_ |
发送到外部应用的密钥文件名前缀 🚀 |
VALID_KEY_DETAIL_PREFIX |
logs/keys_valid_detail_ |
详细日志文件名前缀 📝 |
RATE_LIMITED_KEY_DETAIL_PREFIX |
logs/key_429_detail_ |
频率限制详细日志文件名前缀 📊 |
VALID_KEY_DETAIL_PREFIX |
logs/keys_valid_detail_ |
有效密钥文件名前缀 🗝️ |
SCANNED_SHAS_FILE |
scanned_shas.txt |
已扫描文件SHA记录文件名 📋 |
FILE_PATH_BLACKLIST |
readme,docs,doc/,.md,example,... |
文件路径黑名单,逗号分隔 🚫 |
完整的 .env 文件示例:
# 必填配置
GITHUB_TOKENS=ghp_your_token_here_1,ghp_your_token_here_2
# 重要配置(可选修改)
DATA_PATH=/app/data
DATE_RANGE_DAYS=730
QUERIES_FILE=queries.txt
HAJIMI_CHECK_MODEL=gemini-2.5-flash
PROXY=
# Gemini Balancer同步配置
GEMINI_BALANCER_SYNC_ENABLED=false
GEMINI_BALANCER_URL=
GEMINI_BALANCER_AUTH=
# GPT Load Balancer同步配置
GPT_LOAD_SYNC_ENABLED=false
GPT_LOAD_URL=
GPT_LOAD_AUTH=
GPT_LOAD_GROUP_NAME=group1,group2,group3
# 高级配置(建议保持默认)
VALID_KEY_PREFIX=keys/keys_valid_
RATE_LIMITED_KEY_PREFIX=keys/key_429_
KEYS_SEND_PREFIX=keys/keys_send_
VALID_KEY_DETAIL_PREFIX=logs/keys_valid_detail_
RATE_LIMITED_KEY_DETAIL_PREFIX=logs/key_429_detail_
KEYS_SEND_DETAIL_PREFIX=logs/keys_send_detail_
SCANNED_SHAS_FILE=scanned_shas.txt
FILE_PATH_BLACKLIST=readme,docs,doc/,.md,example,sample,tutorial,test,spec,demo,mock编辑 queries.txt 文件自定义搜索规则:
# GitHub搜索查询配置文件
# 每行一个查询语句,支持GitHub搜索语法
# 以#开头的行为注释,空行会被忽略
# 基础搜索
AIzaSy in:file
AizaSy in:file filename:.env📖 搜索语法参考:GitHub Code Search Syntax 📚
🎯 核心提示:创造性的查询表达式是成功的关键,多尝试不同的组合!
- ✅ GitHub Token权限最小化(只需
public_repo读取权限)🔐 - ✅ 定期轮换GitHub Token 🔄
- ✅ 不要将真实的API密钥提交到版本控制 🙈
- ✅ 定期检查和清理发现的密钥文件 🧹
💖 享受使用 Hajimi King 的快乐时光! 🎉✨🎊