NPC-Worldwide/npcsh

the composable multi-agent shell

npcsh – 一个可组合的多代理 Shell

它是什么 – npcsh 是一个命令行界面,让您可以输入普通的 Bash 命令 或 自然语言请求。在底层,它会将请求路由至由语言模型驱动的“代理”,该代理可以执行 Shell 命令、调用工具或调用您定义的自定义基于 Jinja 的 jinxes(模板)。简而言之,它将 LLM 变成了一个交互式 Shell 助手。

核心概念

  • Agents – 定义于 .npc YAML、Markdown 或每个文件的 agents/ 格式中。每个代理都有一个名称、一个主要指令以及可选的模型/提供者覆盖。
  • Jinxes – 可重用的 Jinja 模板,用于编码提示词、工具调用或脚本。代理将其作为“技能”调用。
  • Context layer – npcsh.ctx 文件保存了用户定义的键,这些键在更新后依然存在,从而实现自定义指令钩子。
  • Provider‑agnostic – 适用于任何 LiteLLM 支持的模型(Ollama、LM Studio、OpenAI、Anthropic、Gemini、DeepSeek、Minimax 等)。
  • Benchmark – 内置套件可评估模型在 100 个任务中驱动 Shell 的能力;许多热门模型的评分列于 README 中。

安装

  1. 快速脚本(推荐) –
    curl -fsSL https://enpisi.com/install-npcsh.sh | sh
    
    这会安装 Rust 二进制文件 (npcsh, npc) 并设置 Python 后端 (npcpy)。
  2. Cargo – cargo install npcsh(如果您偏好从源码构建)。
  3. Python 后端 – pip install npcpy(推理循环所需;未来将由 Rust 执行器取代)。

首次运行设置 – 系统会创建一个包含合理默认值的 ~/.npcshrc,例如:

export NPCSH_CHAT_MODEL=qwen3.5:2b
export NPCSH_CHAT_PROVIDER=ollama
export NPCSH_DEFAULT_MODE=agent

您可以在同一个文件或任何 Shell rc 中添加 OpenAI、Anthropic、Gemini 等的 API 密钥。

典型工作流程

npcsh> what process is listening on port 5337?
# LLM‑agent runs `lsof -i :5337` and returns the answer.

npcsh> @corca refactor the auth module and add tests
# The `@corca` agent (defined in your team) receives the request, generates code changes, runs them, and can open the Git TUI.

npcsh> /git
# Opens an integrated Git text‑UI for reviewing commits.

以 / 为前缀的命令是内置的 Shell 快捷方式 (/update, /sync, /git, …)。

扩展 npcsh

  • 添加技能 – 将 Jinja 文件放入 npc_team/jinxes/skills/ 并使用 skill 宏编译它。
  • 创建代理 – 编写一个 .npc 文件或 Markdown 条目来描述一个新角色(例如数据分析师)并引用其技能。
  • 自定义上下文键 – 使用任何非保留键编辑 ~/.npcsh/npc_team/npcsh.ctx;该值将对所有代理可用。

文档与社区

授权 – MIT。


总结 – npcsh 是一个真实的、开源的 Rust/Python 项目,让您可以直接从终端与由 LLM 支持的代理进行交互,为命令行自动化、代码辅助和多步骤工作流程提供了一个可编程、可扩展的环境。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目