
OpenSumi 是一个开源的、高性能和高度可定制的 IDE 研发框架,它为开发者提供了一套工具和组件,用以构建双端(Web 和 Electron)的集成开发环境,着重于降低定制难度,使开发者能够轻松组合功能模块,以满足特定的业务需求。OpenSumi 的定位是让 IDE 定制化研发变得简单丝滑。
重点进展
MCP(Model Context Protocol)
近期,OpenSumi 在 3.8 版本中新增支持 MCP 协议,是国内在 MCP 官网(https://modelcontextprotocol.io/clients)首个实现 MCP 协议的 Client。
MPC 官网截图
OpenSumi 目前通过 MCP 作为 Agent 的基础协议,包含如下能力:
-
内置 OpenSumi MCP Server,实现 IDE 中基本操作的各种 tools:
-
文件操作
-
readFile:读取文件内容,支持行范围
-
editFile:改写文件,可对接 fast-apply 模型
-
listDir:列出目录内容
-
createNewFileWithText:创建带有指定内容的新文件
-
findFilesByNameSubstring:按名称搜索文件
-
getFileTextByPath:通过路径获取文件内容
-
replaceOpenEditorFile:替换当前编辑器中的内容
-
replaceOpenEditorFileByDiffPreviewer:使用差异预览替换内容
-
-
编辑器
-
getCurrentFilePath:获取当前打开文件的路径
-
getSelectedText:获取当前选中的文本
-
getOpenEditorFileText:获取打开编辑器中的文本
-
-
诊断
-
getDiagnosticsByPath:获取特定文件的诊断信息
-
getOpenEditorFileDiagnostics:获取打开编辑器的诊断信息
-
-
终端
-
runTerminalCmd:执行命令
-
-
-
支持自定义 tools 接入,包含前端 UI 的扩展
-
支持三方 MCP Server 接入,支持 command / sse 类型的 MCP Server
-
支持自动获取 IDE 操作的上下文
-
支持任意兼容 OpenAI 模型、DeepSeek、claude 3.5 sonnet 等模型接入
架构设计
OpenSumi MCP 架构图
功能演示
Fast Apply 演示
运行终端命令
支持接入三方 MCP Server,如接入 Github MCP Server 添加缺陷
NES (Next Edit Suggestion)
OpenSumi 在 3.8 版本中实现了 vscode.languages.registerInlineEditProvider
接口能力,依托于强大的 NES 交互,用户可以基于该 API 实现智能代码及光标预测等功能。
功能演示
多行智能改写
智能代码改写 + 光标预测
更新日志
新特性
-
terminal adds drag-and-drop
-
improve terminal local link parser
-
show inline input after cmd+K is triggered
-
support search path on file dialog
-
support property ThemeColor id
-
support typing code edits source
-
support diff & git uri preview of notebook file
-
line-change of code edits adds change parameter
-
add word link provider by
-
support polling watcher by
-
enhance file search service to handle absolute paths and update
-
add styles for dialog content and update file dialog logic
-
support inline input restore
-
improve file delete confirmation message and styling
-
support code edits keybinding
-
support fetching preference file after editor is saved
-
support file dialog renderCustomMsg
-
improve code edits source data
-
inline chat handler api adds selection parameter
-
make terminal draggable
-
support copy relative path from link files
-
improve line change code edits trigger rule
-
refactor: upgrade monaco to 0.54.0 and support
-
vscode.languages.registerInlineEditProvider API
-
terminal search optimization
-
support MCP server and client
-
tabbar supports React.ReactNode for description
-
send data by chunk in websocke
-
support trigger source code edits
-
upgrade monaco core to 0.54.0-patch.2
-
support edit_file tool
-
add search file & content tool
-
support chat sessions management & recover from storage
-
add terminal command execution tool with user approval
-
support maxInputTokens for agent
-
support NES render in code edits
重构
-
refactor: inline chat & input and support config
-
refactor: inline diff data layer & render layer
样式变更
-
video preview style and static server
-
style: improve search panel popover content style
-
style: improve inline input decoration
-
style: improve hover widget style
其他变更
-
fix(ai-native): use path.join for wasm file paths in WasmModuleManager
-
remove all unexpected errors
-
chore: revert incorrect prop name in Modal component
-
debug toolbar is disappeared or session paused after debug session started
-
chore: outout channel append line type
-
Revert "chore: enable local worker file in development mode"
-
debug breakpoint paused and updated current session handling
-
docs: add codefuse ide to getting started
-
chore: update default vscode engine version to 1.96.2
-
retore files by order
-
add method to check if doc is ignored
-
display debug hover view with correct size config
-
interactive input handle api adds selection parameter
-
always dispose debug unexpected widget in the end
-
watcher dispose logic
-
adjust default sizes for top slot and menubar height
-
add default file name handling for save dialog
-
getDefaultPath add model param
-
normalize content type by converting file extension to lowercase
-
chore: update to the latest diff package
-
notebook diff monaco upgrade issue
-
chore(release): release v3.7.1
-
tabbar supports React.ReactNode for description
-
chore: add missing InlineEdit export by
-
chore: improve llm context
-
add default context prompt provider
-
add delay for disposing inline edit adapter to prevent rejection
-
reduce font size in chat components and update MCP tools localization
点击查看项目更新👇
https://github.com/opensumi/core
还没有评论,来说两句吧...