Skip to content

faithleysath/fuckit.sh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fuckit.sh

English | 简体中文

GitHub Stars GitHub Forks GitHub last commit License

Important

本项目正在重构中

Linux.do佬友们的启发和建议,此项目将用Amber语言重构,并加入完善的版本管理、更新提示,以及自定义llm key,自定义alias、个人偏好设置、ui风格(猫娘、御姐等)等更多新功能。

我他妈忘了那条命令了。

fuckit.sh 是一个基于 AI 的命令行工具,它能将你的自然语言描述直接转换成可执行的 Shell 命令。

当你懒得去查 man 手册或者在 Google 上搜索时,直接 fuck 就完事了。

本项目完全免费,你无需提供自己的 OpenAI API Key 即可直接使用。

预览

预览

功能特性

  • 自然语言转换: 直接将你的日常语言转换成可执行的 Shell 命令。
  • AI 驱动: 利用大语言模型的强大能力,理解复杂指令。
  • 交互式确认: 在执行任何命令之前,都会显示并请求你的确认,确保安全。
  • 双模式运行: 支持一键安装以长期使用,也支持无需安装的临时运行模式。
  • 跨平台支持: 可在 macOS 和主流 Linux 发行版上运行。
  • 多语言: 提供完整的中英文双语体验。
  • 智能上下文: 自动检测操作系统、包管理器等信息,为 AI 提供更准确的上下文。
  • 轻松卸载: 一条命令即可将脚本从你的系统中完全移除。

快速安装

选择你喜欢的语言版本,在终端里运行以下命令即可。

英文版 (fuckit.sh)

curl -sS https://fuckit.sh | bash

中文版 (zh.fuckit.sh)

curl -sS https://zh.fuckit.sh | bash

Warning

安全提示

如果你不信任直接在 | bash 中运行脚本,可以分步操作:

  1. 下载: curl -o fuckit.sh https://fuckit.sh
  2. 瞅一眼: less fuckit.sh
  3. 运行: bash fuckit.sh

安装完成后,请重启你的终端或运行 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 uninstall

临时使用 (无需安装)

如果你不想安装脚本,只想临时用一下,也可以直接通过 curl 运行。

英文版:

curl -sS https://fuckit.sh | bash -s "你的需求"

中文版:

curl -sS https://zh.fuckit.sh | bash -s "你的需求"

示例:

# 查找所有大于 10MB 的文件
curl -sS https://fuckit.sh | bash -s "find all files larger than 10MB"

这种方式不会在你的系统上安装任何文件,命令会直接执行。


工作原理

  1. 你在终端输入 fuck <你的需求>
  2. 脚本将你的需求和一些基本的系统信息(如操作系统、包管理器)发送到 Cloudflare Worker。
  3. Cloudflare Worker 调用 OpenAI API(或其他大语言模型)并将你的需求作为提示。
  4. AI 返回生成的 Shell 命令。
  5. 脚本在终端显示这条命令,并等待你确认。
  6. 你输入 y,命令被执行。世界和平。

开发者指南

如果你想自己部署这个项目,或者想对它进行修改,请遵循以下步骤。

环境要求

  • Cloudflare 账号
  • Wrangler CLI
  • OpenAI API 密钥 (或其他兼容 OpenAI 格式的 API 服务) (仅在自行部署时需要)

部署步骤

  1. 克隆仓库

    git clone https://github.com/faithleysath/fuckit.sh.git
    cd fuckit.sh
  2. 配置 wrangler.toml

    你可以根据需要修改 wrangler.toml 文件中的 Worker 名称和路由。

  3. 配置环境变量

    你需要将你的 OpenAI API 密钥配置到 Cloudflare Worker 的环境变量中。

    npx wrangler secret put OPENAI_API_KEY

    你还可以设置可选的环境变量:

    • OPENAI_API_MODEL: 指定使用的模型,默认为 gpt-4-turbo
    • OPENAI_API_BASE: 指定 API 的基础 URL,默认为 https://api.openai.com/v1
  4. 构建 worker.js

    worker.js 文件需要将 main.shzh_main.sh 的内容以 Base64 编码的形式嵌入。我们提供了一个构建命令来自动完成这个过程。

    macOS:

    B64_EN=$(base64 -i main.sh) && sed -i.bak "s#^const INSTALLER_SCRIPT =.*#const INSTALLER_SCRIPT = b64_to_utf8(\`${B64_EN}\`);#" worker.js && \
    B64_ZH=$(base64 -i zh_main.sh) && sed -i.bak "s#^const INSTALLER_SCRIPT_ZH =.*#const INSTALLER_SCRIPT_ZH = b64_to_utf8(\`${B64_ZH}\`);#" worker.js && \
    rm worker.js.bak

    Linux:

    B64_EN=$(base64 -w 0 main.sh) && sed -i.bak "s#^const INSTALLER_SCRIPT =.*#const INSTALLER_SCRIPT = b64_to_utf8(\`${B64_EN}\`);#" worker.js && \
    B64_ZH=$(base64 -w 0 zh_main.sh) && sed -i.bak "s#^const INSTALLER_SCRIPT_ZH =.*#const INSTALLER_SCRIPT_ZH = b64_to_utf8(\`${B64_ZH}\`);#" worker.js && \
    rm worker.js.bak
  5. 发布 Worker

    npx wrangler deploy

部署成功后,你的 Worker 就会在你配置的域名上运行。


许可证

本项目采用 MIT 许可证。详情请见 LICENSE 文件。


Star History

Star History Chart

Stargazers over time

Stargazers over time

About

一个靠谱的 AI 命令行老哥,能把人话直接干成 Shell 命令,顺便让 man和tldr 提前退休。

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •