按名称安装、运行、更新和移除开源命令行工具。
你从列表中选择一个工具。OTinstaller 将其下载到自己的文件夹中,运行它,并保存输出。你无需为每个工具学习不同的安装方法。
otinstaller 已发布在 PyPI 上(版本 0.0.1)。
一台 Linux 机器。已在 Ubuntu 22.04 和 24.04、Debian 12 和 Arch Linux 上测试。Kali Linux 在发布前会手动检查。
Python 3.10 到 3.12、git 以及 venv 模块。在 Debian、Ubuntu 和 Kali 上,使用以下命令安装该模块:
sudo apt install python3-venv git
Ubuntu 26.04 LTS 默认搭载 Python 3.14,其他发行版现在也搭载 Python 3.13+。otinstaller 及其部分受管工具需要 Python 3.10–3.12,因此在这些系统上请显式安装 Python 3.12,并在用它创建的 virtualenv 中运行 otinstaller:
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
uv venv --python 3.12 ~/.otinstaller-venv
source ~/.otinstaller-venv/bin/activate
uv pip install otinstaller
由 uv 创建的 virtualenv 没有 pip,因此安装命令是 uv pip install otinstaller。在任何新终端中使用 otinstaller 之前,请再次运行 source ~/.otinstaller-venv/bin/activate。otinstaller doctor 会打印它运行所在的 Python 版本,并标记任何需要不同版本号的已注册工具。
Ubuntu 22.04 和 24.04 上的系统 Python 已经可以正常工作。uv 方法仅在 Ubuntu 26.04 上测试过。
部分受管工具尚不支持 Python 3.13+。测试矩阵覆盖 Python 3.10–3.12。已知受影响的工具:
auto-archiver:需要 Python <3.13(依赖项 pdqhash 需要 C++ 编译器,没有适用于 3.13+ 的 wheel)telepathy:需要 Python <3.13(依赖项 googletrans/httpx 使用了已移除的 cgi 模块)如果你在 Python 3.13+ 上遇到安装失败,请在 Python 3.12 virtualenv 中运行 otinstaller。
对于系统级安装,请使用 pipx install otinstaller。这会在你的 PATH 中提供 otinstaller 和 ot 命令,而无需 virtualenv。
或者,创建一个 virtualenv 并从 PyPI 安装:
python3 -m venv ~/.otinstaller-venv
source ~/.otinstaller-venv/bin/activate
pip install otinstaller
在任何新终端中使用 otinstaller 之前,请再次运行 source ~/.otinstaller-venv/bin/activate。
要从本仓库安装(用于开发):
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
如果下一条命令提示 otinstaller: command not found,请在任何新终端中从此文件夹再次运行 source .venv/bin/activate。
使用以下命令检查机器:
otinstaller doctor
doctor 会为 Linux、Python、git 和 venv 打印 [ok] 或 [problem]。在继续之前修复任何 [problem] 行。它通常会告诉你需要安装的软件包。
init 会创建 ~/.otinstaller/ 并显示负责任使用通知。它会询问 Do you accept? [y/N]。输入 y 并按 Enter。在此之前无法安装任何内容。
otinstaller init
Sherlock 用于搜索用户名。此安装会询问 Install? [y/N]。大写 N 意味着仅按 Enter 表示否。输入 y 继续。
otinstaller install sherlock
otinstaller run sherlock -- someexampleuser123
-- 标记 otinstaller 自身选项的结束位置。其后的所有内容都会传递给 Sherlock。运行完成后,otinstaller 会在你运行命令的文件夹中的 results/ 下打印一个路径。该文件就是工具的输出。
要尝试其他工具,请使用指南中该工具的名称代替 sherlock。
无需记住每个工具的选项,你可以使用类型化输入前缀:
u: 用户名(例如 u:johndoe)e: 电子邮件(例如 e:[email protected])p: 电话(例如 p:+15551234567)d: 域名(例如 d:example.com)url: URL(例如 url:https://example.com)q: 文本查询(例如 q:search terms)geo: 坐标(例如 geo:32.22,-110.97)tg: Telegram 频道(例如 tg:channelname)lat: 纬度(例如 lat:37.7749)lng: 经度(例如 lng:-122.4194)示例:
otinstaller run sherlock -- u:johndoe
otinstaller run ghunt -- u:johndoe e:[email protected]
每个工具都会声明其支持的输入类型。使用 otinstaller info <tool> 查看映射关系。
运行所有支持给定输入类型的已安装工具:
otinstaller run --all u:johndoe
otinstaller run -a u:johndoe e:[email protected]
只有 u、e、p、d 和 url 可与 --all 一起使用。需要 API 凭据的工具会被跳过,除非传入 --include-credentialed。
每个命令都支持 --json 以输出机器可读的结果。当给出 --yes 或 -y,或者 stdin 不是终端(CI 模式)时,命令绝不会提示。退出码是稳定的:0 = 成功,1 = 错误,2 = 无效输入,130 = 被中断。
命令参考:
otinstaller init — 初始化配置和目录otinstaller install <tool>... — 安装工具otinstaller install --all — 从注册表安装所有可用工具otinstaller remove <tool>... / --all — 移除工具otinstaller run <tool>... -- <args> — 运行工具otinstaller run --all u:... — 运行所有匹配的工具otinstaller run --live — 显示并行运行的实时状态表otinstaller run --case <name> — 将运行分组到命名案例下otinstaller info <tool> — 显示工具详情otinstaller list / --installed — 列出工具otinstaller search <query> — 搜索工具otinstaller update / --all / --check-only — 更新工具otinstaller check-updates — 检查更新(只读)otinstaller auto <target> — 自动检测类型并运行工具otinstaller example <tool> — 显示示例输出otinstaller keys check — 检查 API 密钥otinstaller resume — 恢复被中断的任务otinstaller doctor — 运行诊断otinstaller about — 显示带致谢的关于横幅otinstaller extract <target> — 从保存的结果文件中提取指标otinstaller diff <tool> <target> — 比较同一工具针对同一目标的最近两次运行otinstaller playbook [name] [target] — 运行 playbookotinstaller playbook --list — 列出可用的 playbookotinstaller <tool> — 显示工具详情(与 info <tool> 相同)对于 AI 代理:请参阅仓库根目录下的 llms.txt。
结果会自动保存到 ./results/<tool>/<target>/,使用文件名模式 <YYYYmmdd-HHMMSS>_<tool>_<target>_<runid>.<ext> 以及一个 .meta.json 附属文件。结果目录可以通过 --output 或 OTINSTALLER_RESULTS_DIR 覆盖。结果会保存在运行命令所在文件夹的 ./results/ 中,因此请每次都从同一文件夹运行。
示例:
results/sherlock/testuser/20260929-123456_sherlock_testuser_abc123.txt
results/sherlock/testuser/20260929-123456_sherlock_testuser_abc123.meta.json
一个 env 文件保存所有 API 密钥:~/.otinstaller/.env,权限为 600。每个工具只会收到其注册表条目中声明的密钥。使用 otinstaller keys check 进行验证。
如果运行或安装被中断(崩溃、Ctrl+C、kill),otinstaller 会在 ~/.otinstaller/jobs/ 中保留一个任务标记。运行 otinstaller resume 以检测并处理被中断的任务:
使用 otinstaller resume --dry-run 查看将会发生什么而不做任何更改。使用 --json 获取机器可读的输出。
已完成的任务在恢复时会被跳过(其标记在完成时被移除)。被中断运行的部分输出始终保留在结果目录中。
部分工具在注册表中被标记为 dual-use。它们可用于合法研究,但也可能被滥用。安装两用工具会打印通知并要求确认,除非给出 --yes。
全局负责任使用通知在首次 otinstaller init 时被接受。你可以随时使用 otinstaller init 重新阅读它。
MIT。参见 LICENSE。