English | 简体中文
fuckits 目前由 Silentely 维护,为 fuckit.sh的二次开发版本。非常感谢原项目作者及社区贡献的灵感与实现,本仓库在继承核心体验的基础上继续演进,欢迎在原仓库 Star/Issue 支持原作者。
- 云端限流/密钥体系升级:除本地
FUCK_OPENAI_API_KEY优先策略外,加入FUCK_ADMIN_KEY+ADMIN_ACCESS_KEY双端校验,让受信任维护者可在共享 Worker 上突破 200 次/日体验额度。 - 全量双语 CLI + Worker:英文
main.sh/ 中文zh_main.sh以及 Worker 端 locale 自适应,脚本构建流程(npm run build)自动将两种安装脚本打包进 Worker。 - 可视化配置能力:
fuck config会生成示例文件、自动chmod 600,并罗列所有可切换的旗标(API 端点、Alias、Auto-Exec、Timeout、Admin Key 等)。 - 一键部署/Setup 流程:
npm run setup/npm run one-click-deploy覆盖登录、Secret 写入(包括新增管理员密钥)、构建与部署,用脚本化方式保证步骤统一。 - 安全提示与文档体系:README / DEPLOY / SUMMARY / CLAUDE.md 等文档全部补充演示配额、原项目致谢、环境变量表格,方便 fork 二开的后续协作。
我他妈忘了那条命令了。
fuckits 是一个基于 AI 的命令行工具,它能将你的自然语言描述直接转换成可执行的 Shell 命令。
当你懒得去查 man 手册或者在 Google 上搜索时,直接 fuck 就完事了。
本项目完全免费,你无需提供自己的 OpenAI API Key 即可直接使用。
- 自然语言转换: 直接将你的日常语言转换成可执行的 Shell 命令。
- AI 驱动: 利用大语言模型的强大能力,理解复杂指令。
- 三级安全检测: 内置安全引擎提供三级防护(Block/Challenge/Warn),识别危险命令(如
rm -rf /、dd等),保护你的系统安全。 - 系统信息缓存: 智能缓存操作系统、包管理器等静态信息,减少重复检测开销,提升响应速度。
- 交互式确认: 在执行任何命令之前,都会显示并请求你的确认,确保安全。
- 双模式运行: 支持一键安装以长期使用,也支持无需安装的临时运行模式。
- 跨平台支持: 可在 macOS 和主流 Linux 发行版上运行。
- 多语言: 提供完整的中英文双语体验。
- 智能上下文: 自动检测操作系统、包管理器等信息,为 AI 提供更准确的上下文。
- 配额管理: 支持 KV 和内存双模式配额管理,确保共享演示限额可靠生效。
- 轻松卸载: 一条命令即可将脚本从你的系统中完全移除。
- 代码质量提升: 创建
scripts/common.sh消除约 90 行重复代码,所有脚本遵循 DRY 原则,统一错误处理和编码参数。 - 配置文件系统:
~/.fuck/config.sh配置文件支持自定义 API 入口、命令别名、自动执行、超时时间等。 - 本地密钥优先:
fuck config会在~/.fuck/config.sh(自动chmod 600)里生成示例,填入FUCK_OPENAI_API_KEY/FUCK_OPENAI_MODEL/FUCK_OPENAI_API_BASE后,请求会直接走本地密钥;共享 Worker 仅提供每天 200 次体验额度,超出会提示你配置自己的 Key。维护者还可以发放FUCK_ADMIN_KEY(配合 Worker 侧的ADMIN_ACCESS_KEY)给信任用户,以绕过共享限制。 - 快速配置命令: 新增
fuck config命令,一键定位配置文件并查看可用开关。 - 自动执行模式:
FUCK_AUTO_EXEC=true时可跳过确认(慎用)。 - 自定义别名: 通过
FUCK_ALIAS="pls"等配置添加更顺手的命令。 - 构建脚本重构:
npm run build自动嵌入最新的安装脚本,支持跨平台编码和错误处理。 - 一键部署:
npm run one-click-deploy帮你完成依赖、登录、构建、部署全流程。
选择你喜欢的语言版本,在终端里运行以下命令即可。
curl -sS https://fuckits.25500552.xyz | bashcurl -sS https://fuckits.25500552.xyz/zh | bashNote
fuckits.25500552.xyz 通过 Works 自定义域映射到你部署的 Worker。按照本文档或 DEPLOY.md 中的步骤重新部署后,域名会自动指向你的实例,中文脚本使用 /zh 路径。
自行部署时请在 ~/.fuck/config.sh 中把 FUCK_API_ENDPOINT 改成你自己的域名,避免所有请求仍指向默认演示服务。
Warning
安全提示
如果你不信任直接在 | bash 中运行脚本,可以分步操作:
- 下载:
curl -o fuckits https://fuckits.25500552.xyz - 瞅一眼:
less fuckits - 运行:
bash fuckits
Tip
共享 Worker 只是体验通道(每天 200 次),装完脚本后立刻执行 fuck config,在 ~/.fuck/config.sh 中设置 FUCK_OPENAI_API_KEY/FUCK_OPENAI_MODEL/FUCK_OPENAI_API_BASE,CLI 就会直接走你的密钥;该文件默认 chmod 600,只对本地用户可读。维护者可以额外发放 FUCK_ADMIN_KEY(服务器端配置 ADMIN_ACCESS_KEY)给内部成员,绕过共享额度限制。
安装完成后,请重启你的终端或运行 source ~/.bashrc / source ~/.zshrc 来让命令生效。
使用起来非常简单,格式如下:
fuck <你的需求>AI 会返回它认为正确的命令,你确认后即可执行。
示例:
# 查找当前目录下所有大于 10MB 的文件
fuck find all files larger than 10MB in the current directory
# 安装 git (自动识别 apt/yum/brew 等)
fuck install git
# 卸载 git (同样会自动识别)
fuck uninstall git查看配置文件位置和可用选项:
fuck config配置文件位于 ~/.fuck/config.sh,你可以在其中自定义:
- 自定义 API 端点(用于自建 Worker)
- 本地 OpenAI Key(
FUCK_OPENAI_API_KEY)以及对应的FUCK_OPENAI_MODEL/FUCK_OPENAI_API_BASE - 自动执行模式(跳过确认)
- 请求超时时间
- 调试模式
- 自定义别名
如果你不想用我了,随时可以滚蛋:
fuck uninstall如果你不想安装脚本,只想临时用一下,也可以直接通过 curl 运行。
英文版:
curl -sS https://fuckits.25500552.xyz | bash -s "你的需求"中文版:
curl -sS https://fuckits.25500552.xyz/zh | bash -s "你的需求"示例:
# 查找所有大于 10MB 的文件
curl -sS https://fuckits.25500552.xyz | bash -s "find all files larger than 10MB"这种方式不会在你的系统上安装任何文件,命令会直接执行。
- 你在终端输入
fuck <你的需求>。 - 脚本将你的需求和一些基本的系统信息(如操作系统、包管理器)发送到 Cloudflare Worker。
- Cloudflare Worker 调用 OpenAI API(或其他大语言模型)并将你的需求作为提示。
- AI 返回生成的 Shell 命令。
- 脚本在终端显示这条命令,并等待你确认。
- 你输入
y,命令被执行。世界和平。
只需一条命令即可完成依赖安装、Worker 构建和部署:
npm run one-click-deploy脚本会引导你完成 Cloudflare 登录、设置 OpenAI Key,并自动将最新的 main.sh/zh_main.sh 嵌入 worker.js。需要了解更多细节可以阅读 DEPLOY.md。
部署完成后,请在 Works(Cloudflare Workers)控制台中将 fuckits.25500552.xyz 绑定到该 Worker(中文版本通过 /zh 路径提供)。DNS/SSL 生效可能需要几分钟,可使用健康检查确保域名已指向你自己的 Worker:
curl -sS https://fuckits.25500552.xyz/health | jq若返回 status: "ok" 且 hasApiKey: true,说明 Worker 能正确调用 OpenAI。否则请检查自定义域与 secret 设置。
Tip
Fork 本项目时,自定义域名和 FUCK_API_ENDPOINT 也要替换成你自己的值。
Note
设置 Cloudflare Custom Domain 时不要在路由中添加通配符或路径(例如 fuckits.25500552.xyz/* 或 fuckits.25500552.xyz/zh),Cloudflare 会直接拒绝。只需绑定裸域,/zh 由 Worker 内部根据路径自动处理。
Important
若希望共享 Worker 的演示配额(SHARED_DAILY_LIMIT)在不同 PoP/实例间都严格生效,请在 Cloudflare 中为该 Worker 绑定一个 KV 命名空间。推荐直接将绑定名设为 QUOTA_KV;如果想沿用别的名字(例如 fuckits),在 [vars] 中加一项 QUOTA_KV_BINDING="你的绑定名" 也可以。文档 DEPLOY.md 提供了命令示例。若未配置 KV,Worker 会回退为内存 Map 计数,可能被 Cloudflare 的实例切换“清零”。
- 在 Cloudflare Dashboard → Custom Domains 绑定你的域名,并确认
/zh路径路由到同一个 Worker。 - 运行
curl -sS https://<你的域>/health | jq,确认 Status 与hasApiKey返回正常。 - 使用
curl -sS https://<你的域> | bash -s "echo ok"以及/zh版本做一次真实 round-trip。 - 最后再运行
fuck config,把本地 CLI 的FUCK_API_ENDPOINT更新为新域。
~/.fuck/config.sh 是你的专属开关面板。无论是安装版还是临时运行模式都支持该配置。
| 变量 | 默认值 | 说明 |
|---|---|---|
FUCK_API_ENDPOINT |
https://fuckits.25500552.xyz/ |
自建或自定义 Worker 地址 |
FUCK_OPENAI_API_KEY |
空 | 本地 OpenAI/兼容 Key(推荐,绕过共享配额) |
FUCK_ADMIN_KEY |
空 | 管理员免额度密钥(需 Worker 同步配置 ADMIN_ACCESS_KEY) |
FUCK_OPENAI_MODEL |
gpt-5-nano |
自定义模型(仅在本地 Key 模式下生效) |
FUCK_OPENAI_API_BASE |
https://api.openai.com/v1 |
指向自建代理或第三方服务 |
FUCK_ALIAS |
fuck |
额外别名(不会影响默认别名,除非关闭) |
FUCK_AUTO_EXEC |
false |
自动执行命令,跳过确认(危险操作请慎用) |
FUCK_TIMEOUT |
30 |
curl 请求超时时间(秒) |
FUCK_DEBUG |
false |
输出调试日志,便于排查问题 |
FUCK_DISABLE_DEFAULT_ALIAS |
false |
若设为 true,将不会自动注入 fuck 别名 |
通过 fuck config 可以快速查看文件路径并创建默认示例。
安装脚本会自动将 ~/.fuck/config.sh 的权限设置为 chmod 600,确保你的密钥只保留在本地。
Note
配置文件更新提醒
如果你是 2025-12-06 之前的用户,可能需要手动添加新的配置项(如 FUCK_ADMIN_KEY)。运行 fuck config 会自动补全缺失的配置项,或参考 config.example.sh 获取最新模板。
如果你想自己部署这个项目,或者想对它进行修改,请遵循以下步骤。
- Cloudflare 账号
- Node.js (>= 18.0.0)
- npm
- OpenAI API 密钥 (或其他兼容 OpenAI 格式的 API 服务)
一键部署(推荐):
git clone https://github.com/Silentely/fuckits.git
cd fuckits
npm run one-click-deploy手动部署:
git clone https://github.com/Silentely/fuckits.git
cd fuckits
# 安装依赖
npm install
# 登录 Cloudflare
npx wrangler login
# 设置 OpenAI API Key
npx wrangler secret put OPENAI_API_KEY
# 构建并部署
npm run deploy当你不想把真实的 wrangler.toml 放在仓库时,可以把完整配置放到私有 gist,然后让 GitHub Actions 自动去下载并部署:
- 在 gist(或任意可公开读取的存储)中保存完整
wrangler.toml,包含account_id、name、routes等配置。 - 打开
Settings → Secrets and variables → Actions:- 推荐:在 Secrets 区域新增
WRANGLER_TOML_URL,以免 gist 链接暴露;若你确实想用 Repository Variable 也支持。 - 同时新增
CLOUDFLARE_API_TOKEN(至少需要Workers KV Storage:Edit+Workers Scripts:Edit权限)。 - 如果你的 gist 没写
account_id,再新增CLOUDFLARE_ACCOUNT_IDsecret;若 gist 已包含此字段,可忽略。
- 推荐:在 Secrets 区域新增
- 推送或合并到
main时会自动触发Deploy to Cloudflare Works工作流。Pull Request 仍会执行npm ci + npm run build来验证构建,但会跳过真正的部署。 - 如需手动重发,进入 GitHub → Actions → Deploy to Cloudflare Works →
Run workflow,可直接复用相同变量/secret。
Important
如果 WRANGLER_TOML_URL 未配置,工作流会直接失败并提示;同理,缺少 CLOUDFLARE_API_TOKEN 也会让部署步骤立即中止,避免误部署到未知环境。
Warning
强烈建议把诸如 OPENAI_API_KEY、ADMIN_ACCESS_KEY 这类敏感值通过 wrangler secret put 管理,而不要写在 [vars] 中。如果仍旧放在 wrangler.toml 里,工作流会自动把这些值加入 GitHub 日志掩码,但泄漏风险依旧更高。
npm run build- 构建 Worker(将脚本嵌入 worker.js)npm run deploy- 构建并部署到 Cloudflarenpm run one-click-deploy- 一键完成所有配置和部署npm run setup- 交互式设置向导npm run dev- 本地开发模式
在 wrangler.toml 中修改 Worker 名称和路由:
name = "your-worker-name"配置环境变量(可选):
OPENAI_API_MODEL: AI 模型(默认:gpt-5-nano)OPENAI_API_BASE: API 基础 URL(默认:https://api.openai.com/v1)
详细部署说明请参阅 DEPLOY.md。
- 多模型路由: 在 OpenAI、Anthropic、DeepSeek、硅基流动等模型之间自动切换或负载均衡。
- 命令历史 & 收藏: 支持
fuck history、一键回放常用命令,建立个人命令库。 - 场景模板: 内置运维、开发、数据分析等场景的提示词模板,快速切换工作场景。
- UI 皮肤: 可选猫娘/御姐/严肃模式等不同人设风格,让命令行更有趣。
- 团队模式: 共享自定义 alias、API key、调优模板,适合团队协作。
- 跨平台桌面应用: 提供 GUI 界面,降低命令行门槛。
欢迎在 Issue 中继续脑暴更多好玩的点子。
本项目采用 MIT 许可证。详情请见 LICENSE 文件。
