乐于分享
好东西不私藏

这玩意儿太香了!本地跑AI编程助手,Copilot可以扔了

这玩意儿太香了!本地跑AI编程助手,Copilot可以扔了

上个月把Copilot会员停了。不是用不起,是真觉得有点亏。

不是吐槽Copilot本身——它确实挺好用的,AI写代码这块确实顶。但我琢磨了一下:我每个月花几十块,图个啥?让一个云端AI看我的代码、帮我补全、还得联网才能用。万一哪天真来个数据泄露,我那些写了半年的业务代码就在人家服务器上躺着,想想还是有点膈应。

然后我就开始找替代品。要求很简单:本地跑、不联网也能用、数据不外泄、有开放API能自己接

找了一圈,最后盯上了 Tabby

这玩意儿在GitHub上已经 3.3万星了,说实话我一开始都没注意到它,因为名字太像那个终端工具Tabby了。但人家写的是 Self-hosted AI coding assistant,自托管的AI编程助手,而且是完全开源的,用Apache许可证。


先说最重要的——怎么装。

其实官方给了一个一行命令就能跑起来的方案:

docker run -it \  --gpus all \  -p 8080:8080 \  -v $HOME/.tabby:/data \  tabbyml/tabby \  serve --model StarCoder-1B --device cuda --chat-model Qwen2-1.5B-Instruct

前提是你有GPU并且装了NVIDIA驱动和CUDA。没有GPU也能跑,用CPU模式,只是会慢一些:

docker run -it \  -p 8080:8080 \  -v $HOME/.tabby:/data \  tabbyml/tabby \  serve --model StarCoder-1B --device cpu

装完之后,浏览器打开 http://localhost:8080,就能看到Tabby的Web界面了。界面挺简洁的,主要有两个功能区:代码补全聊天面板

第一次用的话,它会让你选一个模型。默认用的是StarCoder-1B,参数不多(1B),消费级GPU能跑。如果你显存够大(8G以上),可以换成Qwen2-1.5B或者更大的模型,补全质量会明显上一个档次。


功能一:代码补全

这是Tabby的核心功能,跟Copilot的体验非常像。

你写代码的时候,它会在光标下方弹出一行或者几行灰色文字,那就是它猜你想写的。按Tab键接受,按Esc拒绝。

支持的语言很多,官方说支持100多种,实际用下来Python、JavaScript、TypeScript、Go、Rust这些主流语言都没问题,补全质量也挺稳。

有意思的是,它不只补全你正在写的函数,还会根据上下文推断你可能需要什么。比如你刚写完一个数据库查询,它会提示你接下来可能要对结果做处理。这种”读懂上下文”的补全,用起来比普通snippet高级多了。

还有个功能我比较喜欢:支持私有文档作为上下文。v0.29版本加了自定义文档的功能,你可以把自己的接口文档、SDK说明扔给Tabby,让它在补全的时候参考。这个很适合公司内部框架或者自研SDK的场景。

功能二:聊天面板

Tabby有个侧边栏聊天窗口,可以直接问它问题。

比如我让它解释某段代码、帮我写一个排序算法、或者问某个API怎么调用,都能比较快地给出回答。回答质量说实话比纯搜索引擎强,但跟ChatGPT比还是差点意思——毕竟是小模型嘛,不能要求太高。

不过有个功能挺实用的:GitLab MR作为上下文。如果你用GitLab,它可以把一个Merge Request的代码diff作为上下文丢给Tabby,让它在review或者写代码的时候知道这次改动的内容是什么。这个在团队协作场景下很有用。

功能三:模型自由

这是Tabby跟Copilot拉开差距的地方。

Copilot绑定了OpenAI和GitHub自家的模型,但Tabby完全开放——你可以接各种模型提供商。官方支持的包括:

  • • StarCoder(默认)
  • • Qwen系列(Qwen2-1.5B、Qwen2-7B等)
  • • DeepSeek系列
  • • Llama系列
  • • 还有各家商业模型的API(比如Anthropic、OpenAI的API都能接)

换模型也很简单,下载模型权重之后改一下启动命令里的--model参数就行。如果你想用商业API,只需要在启动时配置一下API Key,它就会走云端模型,同时保持一样的接口。

这个设计很聪明:轻量任务用本地小模型,省显存;复杂任务切到云端大模型,不浪费资源

功能四:OpenAPI接口

Tabby自带一个OpenAPI接口,默认在http://localhost:8080/v1下。

这意味着你可以把它接进任何支持Copilot协议的工具里。比如VS Code的Copilot插件、JetBrains的AI助手,理论上都能桥接过来用。官方也有客户端插件,但如果你用的IDE官方没出插件,这个接口就是你的后路。

我自己是把这个API接进了Neovim,用的是Tabby.nvim插件。体验还不错,至少比我之前用Copilot的感觉自由多了。


插件支持

Tabby有官方维护的IDE插件,主流编辑器基本都覆盖了:

  • • VS Code:官方插件市场搜tabby,装完配置一下服务地址http://localhost:8080就能用
  • • IntelliJ全系(IDEA、PyCharm、WebStorm等):插件市场搜Tabby,支持代码补全和聊天
  • • Neovim:社区插件tabby.nvim,支持补全和聊天
  • • Vim:也有相应的插件

安装流程都差不多:装插件 → 指向本地服务地址 → 开始用。不需要任何账号,也不需要联网激活。


我的实际感受

用了一个多月,说说主观体验。

优点:

  1. 1. 隐私这块确实放心了。所有代码都跑在本地,没有任何数据离开我的机器。用Copilot的时候每次弹补全我都会想一下”这段代码会不会被传走”,现在完全没这心理负担了。
  2. 2. 响应速度挺快。在我3080显卡上,StarCoder-1B的补全延迟大概几十毫秒,基本感觉不到。对比联网的Copilot,有时候网络抽风的时候那个等待感是真的烦。
  3. 3. 配置灵活。换模型、调参数、接API,都可以通过配置文件和环境变量搞定,不用点来点去的。
  4. 4. 免费。不用每月交钱,对于个人开发者来说这点很实在。

缺点:

  1. 1. 补全质量跟Copilot比还是有差距。这个要承认,Copilot用的模型更大、训练数据更丰富,补全的准确率和自然度确实强一些。尤其是复杂业务逻辑的补全,Copilot更懂我想干嘛。Tabby的补全有时候会出现”看起来对但跑不起来”的情况,需要多按几次Esc。
  2. 2. GPU显存要求。消费级GPU要跑起来至少得6G显存以上。Mac用户如果没独显就很难受了,只能跑CPU模式,会比较慢。
  3. 3. 聊天功能比较鸡肋。小模型的聊天体验跟大模型比差距明显,大部分时候我还是更愿意用ChatGPT问问题。Tabby的聊天更适合问一些跟本地代码库相关的上下文问题。

适合谁?

Tabby比较适合以下几类人:

  • • 对代码隐私有要求、不想让代码上传到云端的(这个是最大卖点)
  • • 个人开发者或者小团队,想省钱又想要AI辅助编程的
  • • 技术能力强、喜欢自己折腾配置的(它的灵活度很高,但也意味着需要一些动手能力)
  • • 在内网环境开发、没有外网访问权限的(这个场景Copilot完全没法用,Tabby就很合适)

如果你对补全质量要求极高、不想折腾、也不在乎每个月那点钱,Copilot还是更省心的选择。这个没有对错,就是看需求。


怎么快速体验?

建议先别急着深度配置,用Docker一行命令跑起来体验一下。如果感觉延迟能接受、补全质量够用,再考虑换成更大的模型或者长期部署。

# 有NVIDIA显卡的用这个docker run -it --gpus all -p 8080:8080 -v $HOME/.tabby:/data tabbyml/tabby serve --model StarCoder-1B --device cuda# 没有GPU的用这个docker run -it -p 8080:8080 -v $HOME/.tabby:/data tabbyml/tabby serve --model StarCoder-1B --device cpu

体验完之后如果想长期用,可以去官方文档看看怎么配置开机自启、怎么换更大的模型、怎么接商业API。文档写得挺清楚的,跟着走就行。


好了,今天就聊这么多。

如果你也在找Copilot替代品,或者对本地AI编程有兴趣,试完Tabby之后欢迎回来交流心得。有问题可以留言,看到会回。

我们下期见。