Magic CLI:终端魔法师的得力助手
在当今的软件开发世界中,命令行界面(CLI)仍然是许多开发者的首选工具。然而,随着命令和选项的不断增加,记住所有的语法和用法变得越来越具有挑战性。这就是 Magic CLI 诞生的原因 —— 一个旨在让你成为终端魔法师的强大命令行工具。
什么是 Magic CLI?
Magic CLI 是一个创新的命令行工具,它利用大语言模型(LLMs)来帮助用户更高效地使用命令行。这个项目的灵感来自于 Amazon Q(前身为 Fig terminal) 和 GitHub Copilot for CLI 等项目。Magic CLI 的核心目标是简化命令行操作,提高开发效率,并为用户提供一种更智能、更直观的方式来与终端交互。
Magic CLI 的主要特性
Magic CLI 提供了一系列强大的功能,旨在改善用户的命令行体验:
-
命令建议:当你不确定具体的命令语法时,Magic CLI 可以根据你的描述提供合适的命令建议。这对于复杂的 CLI 工具(如 ffmpeg 或 kubectl)特别有用。
-
任务执行生成:你可以用自然语言描述你想要完成的任务,Magic CLI 会尝试生成相应的命令来实现你的目标。如果需要更多上下文信息,它还会提示你运行额外的命令。
-
历史命令语义搜索:Magic CLI 能够对你的 shell 历史进行语义搜索,帮助你快速找到之前使用过的相关命令。
-
多 LLM 提供商支持:Magic CLI 支持多种 LLM 提供商,包括:
安装 Magic CLI
Magic CLI 提供了多种安装方式,以适应不同用户的需求:
-
通过 Shell 脚本安装:
curl -LsSf https://github.com/guywaldman/magic-cli/releases/download/0.0.6/magic-cli-installer.sh | sh
-
使用 Homebrew 安装(适用于 macOS 用户):
brew install guywaldman/tap/magic-cli
-
通过 PowerShell 安装(适用于 Windows 用户):
powershell -c "irm https://github.com/guywaldman/magic-cli/releases/download/0.0.6/magic-cli-installer.ps1 | iex"
-
直接下载二进制文件:访问 GitHub 发布页面 下载适合你平台的二进制文件。
使用 Magic CLI
为了更方便地使用 Magic CLI,你可以在 ~/.bashrc
或 ~/.zshrc
文件中添加一些函数别名:
function mcs {
model_prompt="$*"
magic-cli suggest "$model_prompt"
}
function mcf {
model_prompt="$*"
magic-cli search "$model_prompt"
}
function mca {
model_prompt="$*"
magic-cli ask "$model_prompt"
}
这样,你就可以更简洁地使用 Magic CLI 的各项功能了。
命令建议功能
使用 magic-cli suggest
命令来获取命令建议:
magic-cli suggest "Resize test_image.png to 300x300 with ffmpeg"
这个功能特别适合那些你大致知道要做什么,但不记得具体参数或顺序的情况。
历史命令搜索
使用 magic-cli search
命令来搜索你的命令历史:
magic-cli search "zellij attach"
这个功能可以帮助你快速找到之前使用过的相关命令,提高工作效率。
任务执行生成
使用 magic-cli ask
命令来生成执行特定任务的命令:
magic-cli ask "Set up the dev environment as described in the README"
Magic CLI 会尝试理解你的需求,并生成相应的命令序列来完成任务。
配置 Magic CLI
Magic CLI 的配置文件存储在 ~/.config/magic_cli/config.json
中。你可以使用 magic-cli config
命令来查看和修改配置选项。主要的配置选项包括:
llm
:选择使用的 LLM 提供商("ollama" 或 "openai")ollama.base_url
:Ollama API 的基础 URLollama.embedding_model
:用于生成嵌入的模型ollama.model
:用于生成响应的模型openai.api_key
:OpenAI API 密钥openai.embedding_model
:OpenAI 用于生成嵌入的模型openai.model
:OpenAI 用于生成响应的模型suggest.add_to_history
:是否将建议的命令添加到 shell 历史记录中suggest.mode
:命令建议模式("clipboard" 或 "unsafe-execution")
安全性考虑
Magic CLI 非常重视用户数据的安全性。目前,它处理的敏感数据主要包括:
- OpenAI API 密钥:存储在用户主目录的配置文件中。
- Shell 历史的嵌入:用于
magic-cli search
命令,同样存储在用户主目录的配置文件中。
开发团队计划在未来实现将 API 令牌存储在系统的安全密钥存储中,以进一步提高安全性。
未来发展路线
Magic CLI 的开发团队有着雄心勃勃的计划,包括:
- 完善 Windows 支持
- 增加更多 LLM 提供商的支持
- 改进本地嵌入索引的存储方式
- 增加测试覆盖率
贡献与社区
Magic CLI 是一个开源项目,欢迎社区成员的贡献。如果你有兴趣参与项目开发,可以查看 CONTRIBUTING.md 文件了解更多信息。开发团队建议在提交拉取请求之前先创建一个 issue,以确保你的工作能够被接受。
结语
Magic CLI 正在不断发展和完善中,它的目标是成为开发者在命令行中的得力助手。通过结合 AI 技术和传统 CLI 工具的优势,Magic CLI 正在重新定义我们与终端交互的方式。无论你是经验丰富的开发者还是命令行新手,Magic CLI 都能帮助你更高效、更智能地完成工作。
如果你对提高命令行效率感兴趣,不妨尝试一下 Magic CLI。它可能会成为你终端工具箱中不可或缺的一员,让你在处理复杂任务时如有神助。记住,真正的魔法不仅存在于代码中,还存在于使用工具的方式中。让 Magic CLI 成为你的魔法棒,在命令行的世界中施展你的魔法吧!🪄✨