Clarissa
An AI-powered terminal assistant with tool execution capabilities
______________________________________________________________________
特性
- 多提供商支持 -云(OpenRouter、OpenAI、Anthropic)和本地(Apple Intelligence、LM Studio、GGUF)提供商
- 多型号支持 -在Claude、GPT-4、Gemini、Llama、DeepSeek和100多种型号之间切换
- 苹果智能 -在macOS 26+上使用Apple Foundation Models的设备上AI,具有完整的工具调用功能
- 局部模型推理 -直接通过节点llama cpp下载并运行GGUF模型
- 流媒体响应 -响应式对话的实时令牌流
- 内置工具 -文件操作、Git集成、shell命令、web获取等
- MCP集成 -连接到外部MCP服务器以扩展功能
- 会话管理 -保存和恢复对话历史记录
- 内存持久性 -在会话中记住事实
/remember和/memories - 上下文管理 -自动令牌跟踪和上下文截断
- 工具确认 -批准或拒绝潜在危险操作
- 一次性模式 -直接从shell运行单个命令
- 管道输入 -来自其他命令的管道内容用于处理
- 自动更新 -检查并安装更新
clarissa upgrade
运作原理
Clarissa实施 ReAct(推理+代理)代理模式,其中LLM通过迭代循环中的工具执行来推理任务并采取行动。
架构概述
flowchart LR
subgraph Input
A[User Message]
B[Piped Content]
end
subgraph Clarissa
C[Agent Loop]
D[LLM Client]
E[Tool Registry]
F[Context Manager]
G[Provider Registry]
end
subgraph Cloud Providers
H[OpenRouter]
I[OpenAI]
J[Anthropic]
end
subgraph Local Providers
K[Apple Intelligence]
L[LM Studio]
M[Local GGUF]
end
subgraph External
N[MCP Servers]
end
A --> C
B --> C
C D
C E
C F
D G
G H
G I
G J
G K
G L
G M
E N该系统将您的终端连接到各种LLM提供商。当你要求Clarissa执行任务时,它:
- 将您的消息与可用的工具定义一起发送到LLM
- 接收可能包括工具调用的响应(例如,读取文件、运行命令)
- 执行请求的工具并将结果反馈给LLM
- 重复,直到LLM提供最终答案
ReAct循环
flowchart TD
A[User Input] --> B[Add to Conversation]
B --> C[Send to LLM]
C --> D{Response Type?}
D -->|Tool Calls| E[Execute Tools]
E --> F[Add Results to History]
F --> C
D -->|Final Answer| G[Display Response]这个循环会一直持续到LLM在不请求任何工具的情况下做出响应,表明它已经完成了任务。最大迭代限制可防止无限循环。
关键概念
| 概念 | 描述 |
|---|---|
| 工具确认 | 潜在危险的工具(文件写入、shell命令)在执行前需要获得批准。使用 /yolo 自动批准。 |
| 上下文管理 | Clarissa跟踪令牌使用情况,并在接近模型的上下文限制时自动截断旧消息。 |
| 会话保持 | 对话可以保存到 ~/.clarissa/sessions/ 后来又恢复了 /save 和 /load. |
| 存储器系统 | 使用 /remember 存储在会话中持续存在并包含在每个对话中的事实。 |
| MCP可扩展性 | 连接到 模型上下文协议 服务器可以添加自定义工具,而无需修改Clarissa的代码。 |
有关详细的体系结构文档,请参阅 架构指南.
需求
- 包子 v1.0或更高版本(用于从源代码或npm安装运行)
- 至少一个LLM提供者:
- OpenRouter API密钥 (100+型号) - OpenAI API密钥 (GPT型号) - 无烟煤API键 (克劳德模型) - 苹果智能(macOS 26+与苹果硅) - LM 工作室 (本地服务器) - 本地GGUF模型(通过 clarissa download)
安装
来自npm(推荐)
# Using bun
bun install -g clarissa
# Using npm
npm install -g clarissa来源
git clone https://github.com/cameronrye/clarissa.git
cd clarissa
bun install
bun link独立二进制
从下载预构建的二进制文件 发布页面 并将其添加到您的PATH中:
# Example for macOS ARM
chmod +x clarissa-macos-arm64
mv clarissa-macos-arm64 /usr/local/bin/clarissa配置
快速设置
运行交互式设置以配置API密钥:
clarissa init这将提示您输入OpenRouter、OpenAI和Anthropic的API密钥。您可以跳过任何不想使用的提供商。
手动配置
在以下位置创建配置文件 ~/.clarissa/config.json:
{
"openrouterApiKey": "sk-or-...",
"openaiApiKey": "sk-...",
"anthropicApiKey": "sk-ant-...",
"provider": "openrouter",
"model": "anthropic/claude-sonnet-4"
}或者将API键设置为环境变量:
export OPENROUTER_API_KEY=sk-or-...
export OPENAI_API_KEY=sk-...
export ANTHROPIC_API_KEY=sk-ant-...配置选项
| 配置键 | 环境变量 | 描述 |
|---|---|---|
openrouterApiKey | OPENROUTER_API_KEY | OpenRouter API密钥(100多种型号) |
openaiApiKey | OPENAI_API_KEY | OpenAI API密钥(GPT模型) |
anthropicApiKey | ANTHROPIC_API_KEY | Anthropic API键(Claude型号) |
provider | - | 首选提供程序(如果未设置,则自动检测) |
model | OPENROUTER_MODEL | 要使用的默认模型 |
localModelPath | - | 本地GGUF模型文件的路径 |
maxIterations | MAX_ITERATIONS | 最大工具迭代次数(默认值:10) |
debug | DEBUG | 启用调试日志记录 |
mcpServers | - | MCP服务器自动加载 |
提供商
Clarissa会根据您的配置自动选择最佳可用提供商:
| 提供者 | 类型 | 要求 |
|---|---|---|
openrouter | 云 | API密钥 |
openai | 云 | API密钥 |
anthropic | 云 | API密钥 |
apple-ai | 本地 | macOS 26+,苹果硅 |
lmstudio | 本地 | LM Studio在本地主机上运行:1234 |
local-llama | 本地 | 已下载GGUF模型 |
使用以下选项切换提供商:
clarissa providers anthropic # CLI
/provider anthropic # InteractiveMCP服务器配置
将MCP服务器添加到配置文件中,以便在启动时自动加载它们:
{
"apiKey": "your_api_key_here",
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_TOKEN": "your_token" }
}
}
}使用 /mcp 查看连接的服务器和 /tools 查看可用工具。
用法
交互模式
以交互模式启动Clarissa:
clarissa一次性模式
运行一个命令并退出:
clarissa "What files are in this directory?"管道输入
其他命令中的管道内容:
cat error.log | clarissa "Explain this error"
git diff | clarissa "Write a commit message for these changes"CLI命令
| 命令 | 描述 |
|---|---|
clarissa | 启动交互模式 |
clarissa "" | 一次性查询模式 |
clarissa init | 交互式设置API密钥 |
clarissa upgrade | 升级至最新版本 |
clarissa config | 查看当前配置 |
clarissa history | 显示单次查询历史记录 |
clarissa providers [NAME] | 列出提供商或切换到一个提供商 |
clarissa download [ID] | 下载本地GGUF模型 |
clarissa models | 列出已下载的型号 |
clarissa use | 将下载的模型设置为活动 |
clarissa app "" | 使用可选问题打开macOS应用程序 |
CLI选项
| 选项 | 描述 |
|---|---|
-c, --continue | 继续上一次会话 |
-m, --model MODEL | 使用特定型号 |
--list-models | 列出可用型号 |
--check-update | 检查可用更新 |
--debug | 启用调试输出 |
-h, --help | 显示帮助 |
-v, --version | 显示版本 |
交互式命令
| 命令 | 描述 |
|---|---|
/help | 显示可用命令 |
/new | 开始新的对话 |
/last | 加载最近的会话 |
/save [NAME] | 保存当前会话 |
/sessions | 列出已保存的会话 |
/load ID | 加载已保存的会话 |
/delete ID | 删除已保存的会话 |
/remember | 保存内存 |
/memories | 列出已保存的记忆 |
/forget | 忘记记忆 |
/model [NAME] | 显示或切换当前型号 |
/provider [NAME] | 显示或切换LLM提供程序 |
/mcp CMD ARGS | 连接到stdio MCP服务器 |
/mcp sse URL | 连接到HTTP/SSE MCP服务器 |
/tools | 列出可用工具 |
/context | 显示上下文窗口使用情况 |
/yolo | 切换自动审批模式 |
/version | 显示版本信息 |
/upgrade | 升级至最新版本 |
/exit | 离开克拉丽莎 |
键盘快捷键
| 快捷方式 | 操作 |
|---|---|
Ctrl+C | 取消当前操作/退出 |
Ctrl+P | 使用AI增强提示 |
Up/Down | 浏览输入历史记录 |
内置工具
文件操作
read_file-读取文件内容write_file-写入或创建文件patch_file-将补丁应用于文件list_directory-列出目录内容search_files-按模式搜索文件
Git集成
git_status-显示存储库状态git_diff-显示更改git_log-查看提交历史记录git_add-舞台文件git_commit-提交更改git_branch-管理分支机构
系统
bash-执行shell命令calculator-执行计算
网络
web_fetch-获取并解析网页
文件上下文引用
使用以下命令直接在提示中引用文件 @filename 语法:
Explain what @src/index.ts does
Review @package.json:1-20 for issues
Compare @README.md with @CHANGELOG.mdMCP集成
连接到模型上下文协议服务器,使用其他工具扩展Clarissa:
# Stdio server (local process)
/mcp npx -y @modelcontextprotocol/server-filesystem /path/to/directory
# HTTP/SSE server (remote URL)
/mcp sse https://mcp.example.com/api发展
使用热重新加载运行:
bun run dev运行测试:
bun test构建二进制文件
为您当前的平台构建:
bun run build:current为所有平台构建:
bun run build:all二进制文件输出到 dist/ 目录。
发布到npm
npm publish项目结构
src/
index.tsx # CLI entry point
agent.ts # ReAct agent loop implementation
update.ts # Auto-update functionality
config/ # Environment configuration
history/ # One-shot query history
llm/ # LLM client and context management
providers/ # Multi-provider abstraction (OpenRouter, OpenAI, Anthropic, Apple, etc.)
mcp/ # MCP client integration
memory/ # Long-term memory persistence
models/ # Local model download and management
preferences/ # User preferences persistence
session/ # Session persistence
tools/ # Tool definitions
ui/ # Ink UI components许可证
麻省理工学院
______________________________________________________________________
由以下材料制成❤️ 通过 Cameron Rye
