项目简介
Kash (“Knowledge Agent SHell”) 是一个交互式、AI原生的命令行 Shell,专为处理实际知识任务而设计。它不仅是一个功能强大的命令行环境,也是一个 Python 库,可以将简单的 Python 函数转换为命令行工具和 MCP 工具。通过 MCP 支持,Kash 可以作为后端服务器,将其内部的“动作”(Actions) 能力暴露给支持 MCP 协议的 LLM 客户端(如 Anthropic Desktop, Cursor),从而实现 AI 驱动的自动化工作流。
主要功能点
- 动作 (Actions):Kash 的核心,通过 Python 装饰器将函数转换为功能更灵活、强大的命令和工具,能够处理文件输入输出,并与工作空间集成。
- 可组合性 (Compositionality):动作可以像普通 Python 函数一样组合,构建复杂的自动化任务。
- 命令行使用 (Command-line Usage):动作在 Kash Shell 中可直接作为命令运行,具备智能 Tab 补全、内置 LLM 助手和 Python 表达式支持。
- MCP 支持 (MCP Support):Kash 动作可以注册为 MCP 工具服务器,供任何 MCP 客户端调用。
- 广泛的 API 支持 (Support for Any API):通过 LiteLLM 等库,Kash 可以轻松集成 OpenAI, Anthropic, Google, xAI, Mistral, Deepgram 等多种 LLM 和服务 API。
- 工作空间 (Workspaces):以目录结构组织文件和数据,保存操作历史和元数据,方便管理项目上下文。
- 选择系统 (Selection System):在工作空间内管理当前关注的文件或项目,作为连续操作的上下文。
安装步骤
Kash 使用 uv 包管理器进行安装,步骤如下:
-
安装 uv 和 Python: 推荐使用 uv。如果未安装 uv,可以通过脚本或 brew (macOS) 安装:
curl -LsSf https://astral.sh/uv/install.sh | sh # 或对于 macOS: brew update && brew install uvuv 会自动安装推荐的 Python 版本。
-
安装额外的命令行工具 (推荐): 安装 ripgrep, bat, eza, hexyl, imagemagick, libmagic, ffmpeg 等工具以获得更全面的功能。
# macOS (using brew): brew install libmagic ffmpeg ripgrep bat eza hexyl imagemagick zoxide # Ubuntu (using apt和pixi): sudo apt-get update && sudo apt-get install -y libgl1 ffmpeg libmagic-dev curl -fsSL https://pixi.sh/install.sh | sh && . ~/.bashrc pixi global install ripgrep bat eza hexyl imagemagick zoxide -
安装 kash 或 kash 套件: 推荐安装包含更多工具的套件,例如 'kash-media'。
uv tool install kash-media --python=3.13 # 推荐 Python 3.13如果只需要基础 Shell,使用 'kash-shell'。
-
设置 API 密钥: 复制 '.env.template' 到 '.env' 并编辑,填入所需服务(如 OpenAI, Anthropic, Deepgram)的 API 密钥。可以将 '.env' 放在工作目录或用户主目录。
-
运行 kash Shell:
kash进入 Shell 后,可以使用 'self_check' 检查配置。
服务器配置 (用于 MCP 客户端)
Kash 作为 MCP 服务器运行时,会将其注册的“动作”(Actions) 作为“工具”(Tools) 提供给 MCP 客户端。您需要在 MCP 客户端中配置 Kash MCP 服务器的启动方式。
典型的 MCP 客户端(如 Claude Desktop)配置需要指定服务器启动命令 (command) 及其参数 (args)。Kash 提供了 'kash_mcp' 命令来启动 MCP 服务器。
以下是配置 'kash_mcp' 作为 MCP 服务器的关键信息:
- 服务器名称: 您可以在 MCP 客户端配置中自定义一个服务器名称,例如 '"kash"'。
- 启动命令 (command): 通常是 'kash_mcp' 命令的完整路径。您可以通过在终端运行 'which kash_mcp' 来查找其路径(例如 '/Users/levy/.local/bin/kash_mcp')。
- 参数 (args):
- '--proxy': 这个参数告诉 'kash_mcp' 作为代理运行,连接到 Kash Shell 中启动的 SSE 服务器。这是推荐的模式,因为它允许 Kash Shell 管理工作空间和状态,并动态发布工具。
- '--sse': 这个参数(与 '--proxy' 互斥)告诉 'kash_mcp' 运行一个独立的 SSE 服务器。
- '--standalone_stdio': 这个参数(默认模式)告诉 'kash_mcp' 运行一个独立的 Stdio 服务器。
- '--workspace <path>': 指定 MCP 服务器使用特定的工作空间目录。如果省略,默认使用 Kash 的全局工作空间或当前目录。
- '--list_tools' 和 '--tool_help': 这些参数用于在命令行查看可用的工具信息,不用于启动服务器。
在 Kash Shell 中启动 MCP SSE 服务器: 如果您在 MCP 客户端配置中使用了 '--proxy' 参数,还需要在 Kash Shell 中运行 'start_mcp_server' 命令来启动 Kash 端的 SSE 服务器,'kash_mcp --proxy' 会连接到该服务器(默认端口 4440)。
基本使用方法
- 进入 Kash Shell 后,可以使用 '?' 加上自然语言提问来获得内置 AI 助手的帮助,例如 '? how do I start a new workspace?'。
- Tab 键用于命令和参数的智能补全及提示。
- 'workspace <name>': 创建或切换到指定名称的工作空间。
- 'files': 列出当前工作空间中的文件。
- 'show <file>': 显示文件内容,智能选择控制台、浏览器或本地应用打开。
- 'select <file>': 将文件添加到当前选择,后续动作会默认作用于选择项。
- 直接输入动作名称即可执行,例如 'transcribe <url>'(需安装 'kash-media' 套件及依赖)。
- 使用 'help' 或 '<command> --help' 查看命令或动作的详细帮助。
信息
分类
AI与计算