Serena :一个强大的编程智能体工具包,提供语义检索和编辑能力
github: https://github.com/oraios/serena (opens in a new tab)
推荐指数:⭐⭐⭐⭐⭐
介绍
普通AI助手 | Serena + AI |
---|---|
只能“看”你发给它的代码片段 | 能直接访问整个项目,像IDE一样理解代码结构 |
回答基于文本模式匹配 | 基于语言服务器协议(LSP),知道函数在哪、变量怎么用 |
修改代码 = 替换整文件 | 能做“手术刀式修改”,精准插入、替换、重构 |
无法运行代码或执行命令 | 可以读写文件、运行测试、执行终端命令 |
使用教程
安装UV依赖
Serena 依赖 uv
的现代Python包管理器,比 pip
更快。
Windows 用户
打开 PowerShell(右键开始菜单 → Windows PowerShell),粘贴并运行以下命令:
# 设置安装目录(可自定义)
set UV_INSTALL_DIR=D:\tools\uv
# 下载并安装 uv
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Mac或者Linux 用户
打开终端,运行:
curl -LsSf https://astral.sh/uv/install.sh | sh
安装完成后,重启终端!,重启终端!,**重启终端!**输入 uv --version
,如果看到版本号,说明成功了!
添加mcp
claude code
首先进入项目目录,注意:此操作需要在重启终端后,否则会找不到uvx命令,启动不了serena服务,导致mcp连接不上,同时需要确保到github的网络通畅,(windows请在cmd执行,不要使用power hsell)
claude mcp add serena -- uvx --from git+https://github.com/oraios/serena serena-mcp-server --context ide-assistant
如果连接不上github,先进入项目目录,然后执行,git clone https://github.com/oraios/serena
,下载该项目,然后将以下的目录替换为自己的项目目录,执行添加mcp的命令
claude mcp add serena -- uvx --from D:\\project\\my\\open-webui\\serena serena start-mcp-server --context ide-assistant --project $(pwd)
codex
windows用户进入 C:\Users\testuser\.codex
目录编辑config.toml
文件,添加如下配置,mac和linux用户打开终端,vi ~/.codex/config.toml
,粘贴后按一下键盘上的"ESC"案件,将输入法调成英文,输入:wq后按下Enter键保存并且退出。
[mcp_servers.serena]
command = "uvx"
args = ["--from", "git+https://github.com/oraios/serena", "serena", "start-mcp-server", "--context", "codex"]
执行claude
或者codex
进入cli后,执行 /mcp 查看现有的mcp,可以看到 serena已连接,按一下键盘上的Esc键退出
同时浏览器会自动打开serena服务的网页端
为项目建立索引
进入项目,然后执行以下命令(使用cmd,不要使用power shell以及idea、pycahrm、goland等ide中的终端)
uvx --from git+https://github.com/oraios/serena serena project index
执行这个命令可能会报错,因为不同语言需要,这里以go语言为例,执行后报错(最后一行)RuntimeError: Found a Go version but gopls is not installed.
,这表示,Serena 需要使用 gopls 来为 Go 项目提供语言服务功能(如代码分析、补全等),但它在你的系统上找不到 gopls。
在项目目录执行go install golang.org/x/tools/gopls@latest
安装依赖,然后重新执行建立索引的命令,可以看到索引建立成功,但是有个go文件失败了,可以再多次重试解决。
写入记忆文件
执行claude
命令进入cli,输入"can you access serena",然后一直点击允许即可
执行效果
输入:找到 api/v1/admin/captcha/config 这个接口 并且描述下实现 use serena,可以看到已经在使用serena进行语义检索了