Neovate Code:开源AI编码代理工具,支持代码生成/修复/重构与多端适配

原创 发布日期:
7

Neovate Code是什么?

Neovate Code是一款开源的AI编码代理工具(发音:['niːəʊveɪt]),基于TypeScript构建,支持CLI命令行与VSCode扩展双端使用。该工具以自然语言交互为核心,可辅助开发者完成代码生成、bug修复、代码审查、单元测试编写、数据库查询优化、TypeScript重构等多样化编码任务。它兼容多AI提供商(如SiliconFlow、SiliconFlow CN等),支持通过环境变量或/login命令配置API Key,内置安全可控的文件读写与命令执行工具集(需用户确认权限),同时提供完善的开发文档与贡献指南。无论是个人开发者提升编码效率,还是团队协作优化代码流程,Neovate Code均能通过简单交互降低开发门槛,适用于从需求落地到代码优化的全开发周期。

Neovate Code核心定位是“通过AI技术增强开发者的日常开发工作流”。它并非传统的代码编辑器或IDE,而是以“自然语言驱动”为核心交互方式,连接AI模型与编码场景的“中间层工具”——开发者无需编写复杂指令,只需用自然语言描述需求(如“给用户认证函数加错误处理”“重构组件为TypeScript”),工具即可调用AI模型生成解决方案,并支持交互式确认修改、调用文件操作工具执行变更。

从项目属性来看,Neovate Code具备三大核心特征:

  1. 开源免费:基于MIT许可证开源(代码托管于GitHub),个人与企业可自由下载、使用、修改代码,甚至进行二次开发,无商业使用限制;

  2. 多端适配:同时支持CLI(命令行界面)与VSCode扩展两种形态,既满足习惯命令行操作的开发者需求,也适配依赖VSCode IDE的主流开发场景;

  3. 安全可控:内置工具集严格区分“只读操作”(如读取文件、查看目录)与“写操作”(如修改文件、执行bash命令),所有写操作需用户手动确认权限,避免AI误操作破坏项目文件。

从开发定位来看,Neovate Code不替代开发者的编码能力,而是作为“效率放大器”——它能处理编码流程中重复性高、耗时长的任务(如写测试、改bug、格式优化),让开发者聚焦于核心逻辑设计与需求落地,尤其适合中小团队或个人开发者提升开发效率。

Neovate Code:开源AI编码代理工具,支持代码生成/修复/重构与多端适配

Neovate Code的功能特色

Neovate Code的功能围绕“编码全流程辅助”展开,覆盖从需求描述到代码落地的关键环节,同时兼顾易用性与灵活性。以下通过表格详细拆解其核心功能特色:

功能类别 具体能力 操作方式与示例 用户价值
1. 自然语言交互体系 ① 自然语言驱动任务;② 计划模式切换;③ 快捷命令(/xxx) ① 直接输入“Create unit tests for the payment service”描述需求;② 按shift+tab进入计划模式,细化任务步骤;③ 输入/help查看命令列表、/init生成项目配置文件NEOVATE.md 无需学习复杂语法,零基础即可上手;计划模式可拆分复杂任务,提升AI输出精准度;快捷命令简化操作流程
2. 核心编码辅助 ① 代码生成;② bug修复;③ 代码重构;④ 单元测试编写;⑤ 数据库查询优化 ① 输入“生成用户登录接口的Node.js代码”;② 粘贴有bug的代码并描述“修复该函数的空指针异常”;③ 输入“将这个Vue2组件重构为Vue3+TypeScript”;④ 输入“为订单计算函数写Jest单元测试”;⑤ 输入“优化这个MySQL查询,减少查询时间” 覆盖编码全流程痛点:降低重复编码工作量、减少调试时间、提升代码规范性(如TS重构)、完善测试覆盖度、优化系统性能
3. 多AI模型支持 ① 多提供商兼容;② 模型自由切换;③ API Key灵活配置 ① 支持SiliconFlow、SiliconFlow CN(仓库PR#279)等提供商;② 输入/model命令选择当前提供商的模型;③ 方式1:配置API KEY环境变量;方式2:输入/login选提供商并手动输入Key 避免单一模型依赖,可根据需求选择适合的模型(如轻量模型用于简单任务,大模型用于复杂重构);环境变量配置适配团队部署场景
4. 多端使用形态 ① CLI命令行工具;② VSCode扩展 ① 全局安装后输入neovate或简写neo(PR#273)启动;② 在VSCode中安装扩展,支持shift+enter触发terminal-setup(PR#275),集成IDE工作流 适配不同开发习惯:命令行适合服务器或轻量开发,VSCode扩展适合需IDE交互的场景(如实时修改代码文件)
5. 安全工具集 ① 只读工具(read/ls/glob);② 写操作工具(write/edit/bash);③ 权限确认机制 ① 输入“ls src/utils”查看目录文件,“read src/index.ts”读取文件内容;② 输入“edit src/index.ts 替换第10行代码为xxx”,工具弹出确认弹窗;③ 所有写操作(如修改文件、执行bash命令)需用户点击“确认”后才执行 防止AI误操作:只读工具保障信息获取安全,写操作确认机制避免文件被意外修改或删除,降低使用风险
6. 开发协作友好 ① 完善的贡献文档;② 标准化CI/CD;③ 代码规范工具 ① 查看CONTRIBUTING.md了解开发环境搭建、PR提交流程;② .github/workflows配置自动化测试与构建;③ 使用biome(PR#244替换prettier)做代码格式化与lint,husky配置pre-commit钩子 降低开源贡献门槛,吸引开发者参与;标准化流程保障项目代码质量与迭代稳定性;代码规范工具统一团队编码风格
7. 配置与兼容性 ① 环境配置示例;② 多项目兼容;③ 浏览器支持(可选) ① 提供.env.sample文件,复制后修改即可配置环境变量;② 支持前端(Vue/React)、后端(Node.js/Java)、数据库(MySQL/PostgreSQL)等项目;③ PR#48支持浏览器端使用,适配特殊开发场景 配置简单易懂,新手可快速上手;多项目兼容提升工具适用范围;浏览器支持拓展使用场景(如无本地开发环境时)

Neovate Code的技术细节

Neovate Code基于现代前端与Node.js技术栈构建,项目结构清晰,核心依赖与工具链标准化,以下从技术栈、项目结构、核心依赖、构建与测试四个维度展开:

1. 核心技术栈

Neovate Code的技术栈围绕“跨端兼容性”“开发效率”“可维护性”设计,具体如下表:

技术类别 具体技术/工具 用途说明
主开发语言 TypeScript 提供类型安全,减少运行时错误,提升代码可维护性(项目含tsconfig.json配置)
运行环境 Node.js 支撑CLI工具运行,兼容npm包管理生态,确保跨平台(Windows/macOS/Linux)使用
构建工具 Bun 1.2.7 用于项目构建(AGENTS.md明确要求),相比npm/yarn更快的安装与构建速度
包管理工具 pnpm 高效管理项目依赖,减少依赖冗余,支持monorepo结构(含pnpm-workspace.yaml)
代码规范工具 Biome 替代Prettier(PR#244),同时处理代码格式化与lint,统一编码风格
测试工具 Vitest 轻量快速的单元测试框架,适配TypeScript项目(含vitest.config.ts配置)
API类型管理 API Extractor 生成与打包d.ts文件(api-extractor.json配置),保障类型定义一致性
Git钩子工具 Husky 配置pre-commit钩子(.husky目录),提交代码前自动执行lint,确保代码质量
CI/CD工具 GitHub Actions .github/workflows配置自动化测试、构建与部署,提升迭代效率

2. 项目结构解析

项目仓库目录结构清晰,按“核心逻辑-扩展能力-开发支持”划分,便于开发者理解与贡献代码,关键目录说明如下:

目录/文件 层级 核心功能 关键文件/说明
src/ 核心 存放项目核心逻辑,包括CLI命令处理、AI交互、工具调用、文件操作等 - src/cli:CLI命令行核心逻辑;
- src/server:服务端逻辑(如上下文管理);
- src/utils:工具函数(如git操作、文件处理);
- src/ui:交互界面状态管理(如命令行UI)
vscode-extension/ 扩展 VSCode扩展的源代码,实现IDE集成功能 - package.json:扩展配置(如激活事件、贡献点);
- src/extension.ts:扩展入口文件,处理VSCode API交互(如shift+enter事件)
browser/ 扩展 浏览器端支持相关代码(PR#48),适配无Node.js环境的使用场景 包含浏览器端适配的工具函数与交互逻辑,确保核心功能在浏览器中可用
examples/ 示例 提供使用示例代码,帮助开发者快速理解工具用法 含不同场景的示例(如PR#220支持MCP场景),可直接参考示例描述需求
e2e/ 测试 端到端测试代码,验证工具整体功能正确性 覆盖CLI启动、AI交互、工具调用等核心流程,保障版本迭代稳定性(PR#274修复测试相关代码风格问题)
scripts/ 脚本 辅助开发的脚本文件(如构建、部署脚本) 含自动化脚本,简化开发流程(如PR#274优化脚本代码风格)
patches/ 补丁 第三方依赖的补丁文件,解决依赖兼容性问题 当第三方包存在bug或不兼容时,通过补丁临时修复,避免等待上游更新
.github/workflows/ CI/CD GitHub Actions配置文件,实现自动化测试与构建 含代码lint、测试执行、扩展打包等流程,提交PR或合并代码时自动触发
根目录配置文件 配置 项目全局配置 - package.json:项目依赖与脚本配置(如neovate命令入口);
- biome.json:Biome工具配置;
- .env.sample:环境变量配置示例;
- LICENSE:MIT许可证文件;
- AGENTS.md:AI代理相关文档;
- CONTRIBUTING.md:贡献指南

3. 核心依赖与交互逻辑

Neovate Code的核心能力依赖于“AI模型交互”“工具调用”“跨端适配”三大模块,其交互逻辑如下:

  1. 用户输入层:用户通过CLI或VSCode扩展输入自然语言需求(如“生成测试”)或快捷命令(如/model);

  2. 命令解析层:工具解析输入内容,区分“普通需求”与“快捷命令”——若为快捷命令,直接触发对应逻辑(如/login打开API Key配置);若为普通需求,进入AI交互流程;

  3. AI交互层:工具将用户需求与项目上下文(如通过read工具读取的文件内容)整合为Prompt,发送至当前选择的AI模型;

  4. 结果处理层:接收AI返回结果,若结果包含“工具调用请求”(如修改文件),则弹出权限确认弹窗;若为代码或文本建议,直接展示给用户;

  5. 执行反馈层:用户确认后,工具调用对应工具(如write)执行操作,并反馈执行结果(如“文件修改成功”)。

核心依赖中,与AI交互相关的关键包包括@openai/agent(PR#45重构时引入,用于AI代理逻辑),与工具调用相关的依赖包括Node.js内置的fs模块(文件操作)、child_process模块(bash命令执行),确保工具调用的稳定性与跨平台兼容性。

4. 构建与测试流程

为保障项目质量,Neovate Code建立了标准化的构建与测试流程,具体步骤如下:

  1. 开发环境搭建(参考CONTRIBUTING.md):

    • 安装Bun 1.2.7与pnpm;

    • 克隆仓库:git clone https://github.com/neovateai/neovate-code.git

    • 安装依赖:pnpm install

    • 构建项目:bun run build

  2. 代码规范检查

    • 提交代码前,Husky触发pre-commit钩子,自动执行biome check --apply,修复可自动格式化的问题;

    • 若存在无法自动修复的lint错误,提交会被拦截,需手动修改。

  3. 测试执行

    • 单元测试:bun run test(基于Vitest),测试核心工具函数与逻辑;

    • 端到端测试:bun run test:e2e(基于e2e目录代码),测试完整用户流程(如“输入需求→AI返回结果→执行工具调用”)。

  4. CI/CD自动化

    • 开发者提交PR或合并至主分支时,GitHub Actions自动执行“依赖安装→代码lint→单元测试→端到端测试”;

    • 若所有流程通过,方可合并代码;若失败,需修复问题后重新提交。

Neovate Code的应用场景

Neovate Code的应用场景覆盖“个人开发”“团队协作”“项目生命周期”等多个维度,以下结合具体场景说明其使用方式与价值:

应用场景 场景描述 工具使用方式 核心价值
1. 个人开发者日常编码 个人开发小型项目(如博客、工具类应用),需快速落地需求,无过多时间写测试或优化代码 ① 启动neo命令,输入“生成博客后端的文章CRUD接口(Node.js+Express)”;② 生成后输入“为每个接口写单元测试”;③ 发现接口性能差,输入“优化文章列表查询,添加分页与索引” 个人开发者可“一人抵多岗”,快速完成从接口开发到测试、优化的全流程,节省50%以上的编码时间
2. 团队新人代码辅导 团队新人编写的代码存在规范问题(如无TS类型、命名不统一)或bug,资深开发者需花时间审查 ① 新人提交代码后,资深开发者用read工具读取新人代码;② 输入“检查该代码的TS类型问题与命名规范,给出修改建议”;③ 工具生成建议后,新人用edit工具按建议修改;④ 最终输入“验证修改后的代码是否符合团队规范” 减少资深开发者的审查时间,同时让新人通过具体建议学习规范,提升团队协作效率
3. 旧项目技术栈迁移 公司旧项目为JavaScript+Vue2,需迁移至TypeScript+Vue3,手动迁移工作量大且易出错 ① 用glob工具批量读取Vue2组件文件(如“glob src/components/**/*.vue”);② 输入“将这些Vue2组件批量重构为Vue3+TypeScript,保留原有功能逻辑”;③ 迁移后输入“检查重构后的组件是否有语法错误,修复import路径问题” 降低迁移工作量(原本需1周的迁移任务可缩短至1天),减少手动迁移的错误率,保障项目功能稳定性
4. 测试覆盖度提升 项目上线前发现测试覆盖度不足(如仅30%),需快速补充单元测试,避免线上bug ① 输入“查看src/service目录下所有未写测试的函数”;② 针对关键函数(如支付、订单),输入“为src/service/payment.ts的所有函数写Jest单元测试,覆盖正常与异常场景”;③ 输入“执行测试并生成测试报告,检查是否有失败用例” 快速提升测试覆盖度(如从30%提升至80%),减少线上故障风险,同时避免开发者手动写测试的重复劳动
5. 数据库查询优化 项目运行中发现某个页面加载慢,定位为数据库查询语句效率低(如全表扫描) ① 输入“read src/db/queries/order.ts”读取查询语句;② 输入“分析该MySQL查询语句的执行计划,优化全表扫描问题”;③ 工具生成优化后的SQL后,输入“验证优化后的查询时间,确保比原查询快50%以上” 无需深度数据库知识即可优化查询,提升页面加载速度(如从3秒缩短至500ms),改善用户体验
6. 紧急bug修复 线上突发bug(如用户登录失败),需快速定位并修复,避免影响用户使用 ① 用read工具读取登录相关代码(如“read src/controllers/auth.ts”);② 输入“用户反馈登录时输入正确密码仍提示错误,修复该bug”;③ 修复后输入“写一个临时测试用例,验证登录功能是否正常”;④ 用bash工具执行部署脚本(需确认权限) 缩短bug修复周期(从1小时缩短至15分钟),减少线上故障影响范围,保障服务可用性

Neovate Code的使用方法

Neovate Code的使用流程分为“安装→配置→基础操作→进阶操作”四步,支持CLI与VSCode扩展两种形态,以下详细说明:

1. 前置条件

  • 操作系统:支持Windows、macOS、Linux(Node.js跨平台特性);

  • 依赖环境:安装Node.js(建议v16+)、npm(v8+)或pnpm(v7+)、Bun 1.2.7(构建需求);

  • 必要资源:AI模型提供商的API Key(如SiliconFlow),可从对应提供商官网申请。

2. CLI工具使用步骤(推荐新手优先尝试)

步骤1:全局安装

打开终端,执行以下命令全局安装Neovate Code(支持npm或pnpm):

# 方式1:npm安装
npm install -g @neovate/code

# 方式2:pnpm安装(推荐,速度更快)
pnpm add -g @neovate/code

安装完成后,可通过以下命令验证是否成功:

# 查看版本(确认安装成功)
neovate --version
# 或简写
neo --version

若输出类似“Neovate Code v0.12.3”(参考CHANGELOG.md最新版本),则安装成功。

步骤2:配置API Key

API Key是工具调用AI模型的必要凭证,支持两种配置方式:

  • 方式1:环境变量配置(推荐团队/服务器场景)

    1. 复制项目根目录的.env.sample文件,重命名为.env

    2. 打开.env文件,添加一行:API_KEY=你的AI提供商Key(需替换为实际Key);

    3. 终端执行source .env(macOS/Linux)或.\.env(Windows)加载环境变量。

  • 方式2:命令行配置(推荐个人开发场景)

    1. 终端输入neovateneo启动工具;

    2. 在工具交互界面输入/login,按提示选择AI提供商(如SiliconFlow);

    3. 打开提供商官网(工具会提示链接),复制API Key,粘贴到工具中并回车确认。

步骤3:选择AI模型

配置完API Key后,需选择当前使用的AI模型:

  1. 在工具交互界面输入/model

  2. 工具会列出当前提供商支持的所有模型(如“SiliconFlow-7B”“SiliconFlow-13B”);

  3. 输入模型编号或名称,按回车确认(后续可随时用/model切换模型)。

步骤4:基础任务操作

以“给用户认证函数添加错误处理”为例,说明基础操作:

  1. 启动工具:neo

  2. 输入需求:Add error handling to the user authentication function(或中文“给用户认证函数添加错误处理”);

  3. 补充上下文(可选):若工具需要参考现有代码,输入read src/utils/auth.ts(读取认证函数文件),工具会自动将文件内容纳入Prompt;

  4. 查看AI结果:AI生成错误处理代码后,工具会展示具体修改建议(如“在函数开头添加参数非空判断,在catch中返回错误信息”);

  5. 执行修改:若认可建议,输入yes或直接按回车,工具会调用edit工具修改src/utils/auth.ts文件;

  6. 确认结果:工具执行完成后,会提示“文件修改成功”,可输入read src/utils/auth.ts查看修改后的代码。

步骤5:进阶操作(计划模式与工具调用)

  • 计划模式(拆分复杂任务): 当需求较复杂(如“重构整个订单模块为TypeScript”),可按shift+tab进入计划模式,工具会自动拆分任务步骤(如“1. 分析订单模块文件结构;2. 为每个文件添加TS类型;3. 修复类型错误;4. 验证功能正常”),开发者可修改步骤后,工具按步骤执行,提升精准度。

  • 手动调用工具: 除AI自动调用工具外,开发者也可手动调用工具:

    • 查看目录:ls src/service(查看service目录文件);

    • 读取文件:read src/config/db.ts(读取数据库配置文件);

    • 修改文件:write src/test.txt 这是测试内容(创建或覆盖test.txt文件);

    • 执行命令:bash npm run dev(启动项目,需确认权限)。

3. VSCode扩展使用步骤

若习惯用VSCode开发,可通过扩展集成Neovate Code:

步骤1:安装扩展

有两种安装方式:

  • 方式1:本地构建安装

    1. 克隆仓库:git clone https://github.com/neovateai/neovate-code.git

    2. 进入扩展目录:cd neovate-code/vscode-extension

    3. 安装依赖:pnpm install

    4. 构建扩展:bun run build

    5. VSCode中按Ctrl+Shift+P(Windows)或Cmd+Shift+P(macOS),输入“Extensions: Install from VSIX...”,选择构建生成的.vsix文件安装。

  • 方式2:市场安装(若已发布) 打开VSCode扩展面板,搜索“Neovate Code”,点击“安装”即可(当前仓库未明确提及市场发布,建议优先本地构建)。

步骤2:配置与使用

  1. 激活扩展:安装后重启VSCode,扩展会自动激活;

  2. 配置API Key:按Ctrl+Shift+P输入“Neovate Code: Login”,后续步骤与CLI一致;

  3. 绑定快捷键:扩展默认支持shift+enter触发“terminal-setup”(PR#275),可在VSCode快捷键设置中修改;

  4. 集成开发:在VSCode中打开项目文件,右键点击选择“Neovate Code: 描述需求”,输入需求后,工具会直接在当前文件中生成或修改代码,无需切换终端。

4. 常用快捷命令汇总

为提升操作效率,Neovate Code提供多个快捷命令,如下表:

快捷命令 功能描述 使用场景示例
/login 配置AI提供商API Key 首次使用或切换提供商时
/model 选择或切换AI模型 需求复杂度变化时(如从简单生成到复杂重构)
/init 生成NEOVATE.md文件(含项目配置与使用指南) 新项目初始化时,记录工具使用规范
/help 查看所有快捷命令与使用说明 忘记命令时
/quit 退出工具 完成任务后
shift+tab 切换计划模式(拆分/编辑任务步骤) 处理复杂需求时

常见问题解答(FAQ)

在使用Neovate Code过程中,开发者可能遇到安装、配置、功能使用等问题,以下汇总高频问题及解决方案:

常见问题 可能原因分析 解决方案
1. 执行npm install -g @neovate/code时安装失败,提示“权限不足” ① 全局npm目录权限不足(Linux/macOS);② Node.js版本过低 ① Linux/macOS:执行sudo npm install -g @neovate/code(输入系统密码);② 升级Node.js至v16+(推荐用nvm管理版本:nvm install 18
2. 启动工具后输入/login,选择提供商后提示“API Key无效” ① API Key输入错误;② Key已过期;③ 选择的提供商与Key不匹配 ① 重新复制粘贴Key,避免空格/换行;② 登录提供商官网检查Key有效期,过期则重新生成;③ 确认Key所属提供商(如SiliconFlow的Key不能用于其他提供商)
3. 输入需求后,AI长时间无响应(超过1分钟) ① 网络问题(无法连接AI模型服务器);② AI模型当前负载过高;③ API Key余额不足 ① 检查网络(如ping提供商API域名),开启代理(若需);② 等待5分钟后重试,或切换其他模型;③ 登录提供商官网查看余额,不足则充值
4. 工具提示“无权限执行write/edit/bash操作” ① 未开启权限确认;② 项目目录权限不足;③ 工具配置限制 ① 确保启动工具时未加--no-confirm参数(默认开启确认);② 赋予项目目录读写权限(如chmod -R 755 项目目录);③ 查看.env文件,确认无DISABLE_WRITE配置
5. VSCode扩展安装后无法激活,提示“依赖缺失” ① 扩展依赖未安装;② VSCode版本过低;③ 本地Node.js环境未配置 ① 进入vscode-extension目录执行pnpm install;② 升级VSCode至1.80+;③ 确认VSCode已关联本地Node.js(按Ctrl+Shift+P输入“Select Node.js Version”选择正确版本)
6. AI生成的代码存在语法错误或不符合需求 ① 需求描述不清晰;② 未提供足够上下文(如现有代码);③ 模型选择不当 ① 补充细节(如“生成Node.js+Express的用户登录接口,用JWT鉴权”);② 用read工具提供相关文件内容;③ 切换更适合的模型(如复杂任务用13B模型,而非7B模型)
7. 执行bun run build时提示“Bun版本不兼容” 未安装指定版本的Bun(AGENTS.md要求1.2.7) ① 卸载旧版本:npm uninstall -g bun;② 安装1.2.7版本:npm install -g bun@1.2.7;③ 验证版本:bun --version(需输出1.2.7)
8. 如何向项目提交贡献代码(PR) 不了解贡献流程,未按规范提交 ① 查看CONTRIBUTING.md,了解开发环境搭建与PR流程;② 新建分支:git checkout -b feature/你的功能;③ 提交代码前执行bun run lint修复规范问题;④ 推送分支后在GitHub提交PR,等待审核

相关链接

总结

Neovate Code作为一款开源的AI编码代理工具,以TypeScript为技术基石,通过CLI与VSCode扩展双端形态适配不同开发场景,核心围绕“自然语言交互-AI模型调用-安全工具执行”的流程,为开发者提供代码生成、bug修复、重构、测试编写、查询优化等全流程辅助能力。它兼容多AI提供商模型,支持灵活配置API Key,内置只读/写操作分离的工具集与权限确认机制,既保障使用安全,又降低操作门槛;同时,完善的贡献文档、标准化CI/CD流程与MIT开源协议,让个人开发者可快速上手,团队可基于其进行二次开发或集成到现有工作流。无论是个人开发中减少重复编码工作量,还是团队协作中优化代码审查与迁移效率,Neovate Code均能通过简单的交互方式解决编码流程中的实际痛点,是当前开发者生态中一款兼顾实用性、安全性与开放性的AI编码辅助工具。

打赏
THE END
作者头像
AI铺子
关注ai行业发展,专注ai工具推荐