Skip to content
门与路

概述

Peri 是一个用 Rust 编写的终端 AI 编码助手。它兼容 Claude Code 生态——skills、hooks、MCP、sub-agents 直接可用——但更小更快,且不绑定任何特定模型。

日常编码

写代码、改 bug、重构模块、审查代码——和任何 AI 编码助手一样,但你可以随时切换模型。

长任务自动化

/goal 命令声明一个目标,Peri 在后续每一轮自动推进,即使跑几个小时也不会丢上下文。

并行工作流

/ultracode 把复杂任务拆成多个子代理并行执行——审查、编码、搜索同时进行。

终端 TUI

全功能终端界面:流式 Markdown 渲染、多面板分屏、后台任务监控、Token 用量实时显示。

如果你在用……Peri 的区别
Claude Code兼容 .claude/ 配置,但用 Rust 写,约 13MB 二进制,支持任何 LLM
Cursor / Copilot终端原生,不需要 IDE,可以跑在服务器上
aider更完整的 ReAct 循环 + 中间件管道 + 多个并行子代理(后台并发上限 3)
没有工具Peri 的安装向导在 2 分钟内完成配置,不需要手动编辑任何文件

Peri 提供 macOS (x86_64 / Apple Silicon)、Linux (x86_64 / aarch64 / riscv64) 和 Windows (x86_64) 的预编译二进制文件。

打开终端,运行以下命令:

Terminal window
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/konghayao/peri/main/scripts/install.sh | bash

Windows 用户使用 PowerShell:

Terminal window
irm https://raw.githubusercontent.com/konghayao/peri/main/scripts/install.ps1 | iex

首次启动会进入交互式配置向导,引导你完成模型选择和 API Key 设置——无需手动编辑任何配置文件

Terminal window
peri

更新到最新版:

Terminal window
peri update

Peri 支持任何 OpenAI 兼容的 API。以下为示例模型(实际可用性取决于你的 API 提供商与配额):

模型提供商推荐用途
Claude 4 SonnetAnthropic复杂编码、架构设计
DeepSeek V3 / R1DeepSeek高性能、低成本的日常编码
GLM-5.x智谱中文场景最优
Qwen 3 Max阿里通用编码任务
GPT-4o / 4.1OpenAI全面推理

如果你已经有 Claude Code 的配置(.claude/settings.json、skills、hooks、MCP 服务器等),零迁移即可使用

Peri 完全兼容:

  • Skills.claude/skills/ 目录下的所有 skill 直接可用
  • Hooks — 会话生命周期钩子无需修改
  • MCP — Model Context Protocol 插件即插即用
  • Sub-agents.claude/agents/ 下的代理定义无缝工作

启动 Peri 后,你可以验证一切是否正常:

Terminal window
# 查看 Peri 版本
peri --version
# 查看当前配置(配置文件在 ~/.peri/settings.json)
ls -la ~/.peri/settings.json
# 测试一次简单对话
peri -p "用 Python 写一个快速排序" --max-turns 1

Peri 不是 Claude Code 的替代品,而是一个兼容生态的 Rust 重实现。它做的是同一件事——AI 驱动的编码助手——但做得更轻、更快、更开放。

维度PeriClaude CodeCursor / Copilot
语言RustTypeScript / Node.jsTypeScript / Node.js
二进制大小~13 MB~80 MB (含 Node 运行时)N/A (IDE 插件)
运行时内存~50 MB~300-800 MB~500-1500 MB
启动时间~0.5s2-5sIDE 启动时间
缓存命中率冻结系统提示词 + 边界标记,缓存友好~60-80%取决于实现
LLM 支持任意模型,会话中切换主要 Claude,有限 OpenAI主要 Claude / GPT
配置兼容完全兼容 CC config原生不兼容
开源协议Apache 2.0专有专有

Node.js 的 V8 引擎在运行时占用大量内存,且不受开发者控制。Peri 不需要托管运行时——一个约 13MB 的静态链接二进制文件,启动即用,不会膨胀。

Peri 使用确定性冻结前缀(deterministic frozen prefix)策略:

  1. 系统提示词在编译时被序列化为固定字节序列
  2. 边界标记(boundary marker)定义了可缓存 / 不可缓存的切分点
  3. 每个请求复用已缓存的提示词前缀,只发送增量的用户/助手消息

这意味着:

  • 第 1 次对话:发送完整系统提示词 → 建立缓存
  • 第 2+ 次对话:只发送增量的对话内容,前缀从缓存命中

对于重度用户(每天数百次对话),缓存命中带来的节省可以降低 90% 以上的 token 消耗

Peri 的 LLM 适配层是模型无关的。所有模型通过统一的 trait 接口接入:

// Peri 的 LLM 适配层(简化示意)
#[async_trait]
pub trait LlmProvider {
async fn chat(&self, req: ChatRequest) -> Result<ChatResponse>;
async fn stream(&self, req: ChatRequest) -> Result<Stream>;
fn supports_tools(&self) -> bool;
fn context_window(&self) -> usize;
}

DeepSeek、GLM、Qwen、Anthropic、OpenAI——都实现了同一个 trait。切换模型只是换一个实现,不涉及任何业务逻辑改动。

Peri 自身就是 Peri 写的。代码库的 99% 由 AI(DeepSeek 和 GLM-5.2)生成

开发流程是一个 AI 自我驱动的闭环:

当你……闭环启动
发现 bug 或技术债务创建 issue → 系统诊断 → 撰写计划 → 子代理开发 → 归档 issue → 更新知识库
想要新功能需求访谈 → 撰写计划 → 子代理开发
代码库变乱清理分析 → 架构优化 → 撰写计划 → 子代理开发