关于 SHELL-AI
SHELL-AI 是用于通过 Agent 操作本地 Ollama 模型的命令行客户端,支持调用工具。它面向需要处理终端和文件任务并扩展 MCP 服务的用户,推理在本机运行。
主要功能
- 01使用本地 Ollama 模型
- 02具备任务工具的 ReAct Agent
- 03文件与 Shell 操作
- 04发现 MCP 服务工具
- 05交互式日志查看器
适用场景
- 01让 Agent 检查或编辑文件
- 02经确认后执行 Shell 命令
- 03通过 MCP 服务扩展 Agent 工具
- 04在日志查看器中监控 Agent 活动
MCP 相关
SHELL-AI 可通过 HTTP、SSE 或 STDIO 连接外部 MCP 服务,并支持多种认证方式。它会发现服务提供的工具并加入 Agent 的工具注册表。
详细介绍
Shell AI
一个由 Ollama 本地 AI 模型驱动的强大智能shell助手。Shell AI 将先进的 AI 能力直接带入你的终端,支持与文件系统、shell 命令和开发工作流进行自然语言交互。
一个强大、轻量级的命令行界面,用于与本地 AI 模型(由 Ollama 驱动)交互。该项目灵感来自于 Google 的 Gemini-CLI,适配为本地运行并增强了强大的 Agent 能力。
功能特性
- 🧠 智能 Agent:使用 ReAct(理由-行动)Agent 模型,能够推理你的请求并使用一套工具完成复杂任务。
- 🔗 Model Context Protocol (MCP) 集成:连接到外部 MCP 服务以扩展功能,支持自定义工具和服务。
- 🎯 零网络推理:使用 Ollama 完全在本地运行,确保隐私和离线功能。
- 🛠️ 广泛的工具集:提供丰富的工具集,用于文件系统操作、shell 命令执行、网络搜索等。
- 📊 增强的日志记录:交互式日志查看器,支持实时筛选和导航,便于调试和监控。
- ⚙️ TypeScript 支持:完全使用 TS 5.x 进行类型定义,确保开发的健壮性。
- 📦 模块化工作区:分离的
core和cli包提供清晰的架构和可维护性。
目录
https://github.com/user-attachments/assets/12a96147-797e-48a2-9fa3-3824d5b050fe
安装
npm install -g @shell-ai/cli
或直接使用 npx 运行:
npx @shell-ai/cli
确保你已安装 Ollama 并拉取了一个模型:
ollama pull gpt-oss
使用
# Start an interactive chat session
shell-ai
# Use a specific model
shell-ai --model mistral
选项
| 选项 | 描述 |
|---|---|
-m, --model <model> | 指定 Ollama 模型。 |
-t, --temperature <temp> | 设置模型的温度。 |
-s, --system <prompt> | 提供自定义系统提示词。 |
-h, --help | 显示帮助。 |
交互模式
交互式聊天
运行不带任何参数的 shell-ai 来启动交互会话。你可以与 AI 聊天,它将使用工具来回答问题或执行任务。
$ shell-ai
> What is the current directory?
... agent thinking ...
> The current directory is /home/user/project. It contains 5 files and 2 directories.
> /help
... shows help menu ...
斜杠命令
在交互式聊天中,你可以使用斜杠命令执行特定操作:
| 命令 | 描述 |
|---|---|
/help | 显示可用的命令和工具。 |
/model | 在可用的 Ollama 模型之间切换。 |
/info | 显示关于 Agent 的统计信息。 |
/clear | 清除当前对话历史。 |
/exit | 结束当前会话。 |
可用工具
Agent 可以访问以下工具来执行任务:
| 工具 | 描述 |
|---|---|
file-read | 读取文件的内容。 |
file-write | 将内容写入文件。 |
file-edit | 编辑特定行或执行查找和替换。 |
file-search | 在文件中搜索文本模式。 |
shell-exec | 执行 shell 命令。需要用户确认。 |
directory-list | 列出路径中的文件和目录。 |
current-directory | 获取当前工作目录及其内容。 |
web-search | 执行网络搜索。 |
wikipedia-search | 在维基百科上搜索文章。 |
memory-add | 向 Agent 的长期记忆添加事实。 |
memory-retrieve | 从 Agent 的记忆中检索事实。 |
search-file-content | 一个功能强大的类似 grep 的工具,用于查找文件内容。 |
Model Context Protocol (MCP) 集成
Shell AI 支持 Model Context Protocol (MCP),允许你通过连接外部 MCP 服务来扩展功能。这使得能够与数据库、API、自定义工具和第三方服务集成。
MCP 配置
在 ~/.shell-ai/mcp.json 创建配置文件来定义你的 MCP 服务:
{
"servers": [
{
"name": "github-server",
"enabled": true,
"http": {
"url": "https://api.github.com/mcp",
"auth": {
"type": "bearer",
"token": "your_github_token"
}
},
"description": "GitHub MCP server integration"
}
],
"globalTimeout": 30000,
"maxConcurrentConnections": 10,
"enableAutoReconnect": true
}
支持的传输类型
- HTTP:支持身份验证的标准 HTTP 连接
- SSE:用于实时通信的服务器发送事件
- STDIO:用于开发的本地进程通信
身份验证方法
- Bearer Token:用于 OAuth2 和 API 令牌
- Basic Auth:用户名/密码身份验证
- API Key:自定义 API 密钥头
- OAuth2:完整的 OAuth2 流程支持
可用的 MCP 工具
连接后,MCP 服务会自动将其工具暴露给 Shell AI Agent。工具是动态发现的,并集成到现有的工具注册表中。
日志和调试
Shell AI 包含一个综合日志系统,可帮助你监控和调试 Agent 操作:
交互式日志查看器
使用 /logs 斜杠命令访问日志查看器。查看器提供:
- 实时日志更新:在生成日志时立即查看
- 级别过滤:按日志级别过滤(info、warn、error、debug)
- 键盘导航:
- 箭头键:在日志中导航
- Page Up/Down:滚动多个页面
- 数字键 (1-5):按级别快速过滤
- 'c':清除所有日志
- 'q' 或 Escape:退出查看器
日志级别
- Info:关于操作的一般信息
- Warn:不停止执行的警告消息
- Error:失败操作的错误消息
- Debug:详细的调试信息
日志条目包含时间戳、源信息和结构化详情,用于全面调试。
配置
你可以通过主目录中的 .shell-ai-config 文件设置默认值。
开发
该仓库是使用 npm workspaces 的单一存储库。
# Install dependencies
npm install
# Build all packages
npm run build
# Run tests
npm test
# Development mode
npm run dev
发布
# Build and test before publishing
npm run prepublishOnly
# Publish the CLI package
npm publish --workspace @shell-ai/cli --access public
# Publish the core package
npm publish --workspace @shell-ai/core --access public
贡献
欢迎提交 issue 和 pull request!请阅读 CONTRIBUTING.md 指南了解详情。
- Fork 该仓库。
- 创建功能分支。
- 运行测试和 lint。
- 开启 pull request。
许可证
Apache-2.0 © 2025 Shell AI Team
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。