#ChatGPT #gpt #llm #nlp #copilot #cli

bin+lib shellchat

将自然语言转换为可执行或解释的 shell 命令

17 个稳定版本

1.0.18 2024 年 8 月 24 日
1.0.17 2024 年 8 月 23 日
1.0.13 2024 年 8 月 22 日
1.0.10 2024 年 8 月 21 日
1.0.7 2024 年 8 月 20 日

命令行实用程序 中排名 280

Download history 2001/week @ 2024-08-17

每月下载量 2,047

MIT 许可证

45KB
1K SLoC

Shell Chat:提升您的命令行体验

增强您的命令行工作流程

欢迎使用 ShellChat,您的智能命令行助手,将自然语言请求转换为精确的 shell 命令。告别记住复杂的命令语法——只需描述您需要的内容,让 ShellChat 来处理其余的部分。

环境感知功能

ShellChat 设计为能够根据您的 操作系统shell 环境进行上下文感知。它根据您的具体设置定制生成的命令,确保每个命令都能无缝运行。

灵活的语言支持

ShellChat 最强大的功能之一是能够理解和处理任何自然语言给出的命令。无论您喜欢使用英语、德语还是其他任何语言,ShellChat 都可以解释您的请求并生成相应的 shell 命令。下面的示例展示了英语和德语中的命令,展示了工具的多功能性。

架构概述

ShellChat 是建立在由两个主要组件组成的强大架构之上的

  1. 服务器 (sc-serve 或 Docker 镜像): 服务器处理与 AI 提供商相关的敏感配置,包括访问密钥和其他关键凭证。它作为中央处理单元,解释用户命令并安全地管理与 AI 提供商的交互。服务器是用 Rust 开发的,使其非常快速且性能出色。

  2. 客户端 (sc): 客户端是一个轻量级界面,与服务器通信而不需要直接访问服务器的部署。这种分离确保敏感数据保持安全且从客户端无法访问。通信协议设计为支持无限数量的并发客户端,允许可扩展的并行处理命令。客户端也是用 Rust 开发的,这有助于其速度和可靠性。

示例

以下是一些示例,说明 ShellChat 如何帮助您将日常任务转换为高效的 shell 命令,包括英语和德语的示例


示例 1:统计所有命名空间中部署的 Pod 数量

输入: sc list how many pods are deployed in all namespaces

输出

kubectl get pods --all-namespaces | grep -v NAME | wc -l

示例 2:显示特定命名空间中的 Pod(德语)

输入: sc zeige pods in dem ollama namespace

输出

kubectl get pods -n ollama

示例 3:显示最后 3 次Git提交的历史

输入: sc show history of last 3 commits

输出

git log -3

示例 4:显示最后一次提交的差异(德语)

输入: sc zeige diff des letzten commit

输出

git log -1 --pretty=%H | xargs git diff

示例 5:显示当前仓库的Git用户和邮箱

输入: sc show git user and email of the current git repo

输出

git config --get user.name && git config --get user.email

示例 6:递归列出前 10 个最大文件

输入: sc list 10 largest files recursive

输出

find . -type f -exec du -h {} + | sort -rh | head -n 10

示例 7:列出所有CSV文件

输入: sc list csv files

输出

ls *.csv

示例 8:递归列出所有CSV文件

输入: sc list csv files recursive

输出

find . -type f -name "*.csv"

示例 9:显示Gitlab上的最后一次管道状态

输入: sc show Gitlab last pipeline status of gitlab host https://some_host and some_project

输出

curl -s --header "PRIVATE-TOKEN: <your_access_token>" "https://some_host/api/v4/projects/some_project/pipelines/latest" | jq '.status'

结论

ShellChat是任何希望在不同语言之间简化命令行交互的人的完美工具。通过将自然语言(无论是英语、德语还是其他语言)转换为shell命令,它使复杂的操作变得简单且易于访问。无论您是在管理Kubernetes pods、检查Git历史还是探索文件系统,ShellChat都旨在提高您的生产力。

依赖项

~24–40MB
~723K SLoC