这玩意儿太香了!本地跑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. 隐私这块确实放心了。所有代码都跑在本地,没有任何数据离开我的机器。用Copilot的时候每次弹补全我都会想一下”这段代码会不会被传走”,现在完全没这心理负担了。 -
2. 响应速度挺快。在我3080显卡上,StarCoder-1B的补全延迟大概几十毫秒,基本感觉不到。对比联网的Copilot,有时候网络抽风的时候那个等待感是真的烦。 -
3. 配置灵活。换模型、调参数、接API,都可以通过配置文件和环境变量搞定,不用点来点去的。 -
4. 免费。不用每月交钱,对于个人开发者来说这点很实在。
缺点:
-
1. 补全质量跟Copilot比还是有差距。这个要承认,Copilot用的模型更大、训练数据更丰富,补全的准确率和自然度确实强一些。尤其是复杂业务逻辑的补全,Copilot更懂我想干嘛。Tabby的补全有时候会出现”看起来对但跑不起来”的情况,需要多按几次Esc。 -
2. GPU显存要求。消费级GPU要跑起来至少得6G显存以上。Mac用户如果没独显就很难受了,只能跑CPU模式,会比较慢。 -
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之后欢迎回来交流心得。有问题可以留言,看到会回。
我们下期见。
夜雨聆风