NPC-Worldwide/npcsh
the composable multi-agent shell
npcsh – 一个可组合的多代理 Shell
它是什么 – npcsh 是一个命令行界面,让您可以输入普通的 Bash 命令 或 自然语言请求。在底层,它会将请求路由至由语言模型驱动的“代理”,该代理可以执行 Shell 命令、调用工具或调用您定义的自定义基于 Jinja 的 jinxes(模板)。简而言之,它将 LLM 变成了一个交互式 Shell 助手。
核心概念
- Agents – 定义于
.npcYAML、Markdown 或每个文件的agents/格式中。每个代理都有一个名称、一个主要指令以及可选的模型/提供者覆盖。 - Jinxes – 可重用的 Jinja 模板,用于编码提示词、工具调用或脚本。代理将其作为“技能”调用。
- Context layer –
npcsh.ctx文件保存了用户定义的键,这些键在更新后依然存在,从而实现自定义指令钩子。 - Provider‑agnostic – 适用于任何 LiteLLM 支持的模型(Ollama、LM Studio、OpenAI、Anthropic、Gemini、DeepSeek、Minimax 等)。
- Benchmark – 内置套件可评估模型在 100 个任务中驱动 Shell 的能力;许多热门模型的评分列于 README 中。
安装
- 快速脚本(推荐) –
这会安装 Rust 二进制文件 (curl -fsSL https://enpisi.com/install-npcsh.sh | shnpcsh,npc) 并设置 Python 后端 (npcpy)。 - Cargo –
cargo install npcsh(如果您偏好从源码构建)。 - 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;该值将对所有代理可用。
文档与社区
- 完整文档: https://npc-shell.readthedocs.io
- Discord 聊天、捐款链接、周边商品及咨询联系方式列于 README 中。
授权 – MIT。
总结 – npcsh 是一个真实的、开源的 Rust/Python 项目,让您可以直接从终端与由 LLM 支持的代理进行交互,为命令行自动化、代码辅助和多步骤工作流程提供了一个可编程、可扩展的环境。
相关
- 项目
- 项目
- 项目
- 项目
- 项目