DEV Community

niuniu
niuniu

Posted on

I Let Ollama, Continue, and Tabby Fight for My Code Completion — One Was 3x Faster Than the Others

I got tired of paying $10/month for GitHub Copilot. I got more tired of people saying "just use local models" without data. So I ran a controlled experiment: same 2023 M2 MacBook Air, same 50K-line Python/TypeScript monorepo, three free local AI coding assistants, one week each.

The contenders

Tool Model Size Stars
Continue.dev Codestral 22B (via Ollama) 13GB 18K
Tabby StarCoder2 7B 4GB 22K
Ollama + custom DeepSeek-Coder 6.7B 4GB 95K

The setup

  • Latency: time from cursor stop to ghost text appear (measured with VS Code telemetry)
  • Acceptance rate: accepted suggestions / shown suggestions (from Continue's built-in analytics, manual logging for others)
  • Battery: % drain per hour of active coding (vs baseline of no AI)

The results

Metric Continue + Codestral Tabby Ollama + DeepSeek
Avg latency 1.2s 0.4s 0.8s
Acceptance rate 31% 19% 27%
Battery drain/hour 18% 8% 11%
RAM usage 14GB 4GB 6GB
Works offline Yes Yes Yes

The surprise: Tabby wins on speed, loses on brains

Tabby's 0.4s latency is addictive. Ghost text appears before you finish thinking. But the suggestions were noticeably dumber — it completed def calculate_ with def calculate_something(self) while Continue suggested the actual function signature from the docstring.

Continue with Codestral 22B was the only one that understood context. It knew my custom ORM's .filter() pattern. It suggested the right import from my utils/ directory. But 1.2s latency means you notice it thinking.

The setup that actually works

I run Tabby for boilerplate (getters, setters, obvious loops) and Continue + Codestral for logic (complex conditionals, API calls, refactors). The trick is having both in VS Code and switching with a keybinding:

// keybindings.json
{
  "key": "cmd+shift+1",
  "command": "continue.focusContinueInput"
},
{
  "key": "cmd+shift+2", 
  "command": "tabby.inlineCompletion.trigger"
}
Enter fullscreen mode Exit fullscreen mode

The battery lie

"Local AI kills your battery" is half true. Continue + Codestral 22B at 18%/hour is brutal — my 8-hour workday became 5 hours. But Tabby at 8%/hour is better than Copilot's cloud polling (10%/hour in my test). The fix: I only enable Continue when I'm doing deep work, and use Tabby for the rest.

The controversial conclusion

GitHub Copilot's moat isn't the model — it's the context window. Copilot sees your whole repo, your recent commits, your open tabs. Local tools see the current file. Until Continue or Tabby can index 50K lines without melting my RAM, the $10/month is buying context, not intelligence.

The dual-assistant keybinding config and latency measurement scripts were drafted with MonkeyCode: https://ly.cyberserval.tech/iIETXiF

Which local coding assistant are you running, and what's your acceptance rate? I'm suspicious of anyone claiming >40% — are you accepting every suggestion, or do you have a stricter definition of "accepted" than I do?

Top comments (0)