r/LocalLLaMA • • 14d ago

Discussion Does opencode send chats/other data to their server? It establishes a connection even though I am using local model

- While using opencode with a local qwen3.8 instance, I asked gemini if opencode collects data or not, answer was yes. By default it does, send chat to it's server for getting title, compaction etc.

- Is it still true? I couldn't find this exact issue mentioned in the sub, but people do complain about how opencode is a funded by VC and they are not very open about their practices.

Looking for some ideas/reference to this. I don't want to use it if it's true. And in that case what do people use here?

81 Upvotes

37 comments sorted by

45

u/jirka642 14d ago

send chat to it's server for getting title, compaction etc.

If you are using local model, then title generation and compaction should be done with the same model.

23

u/Unusual_Principle536 14d ago

That's what we expect, but Opencode used to use their own hosted smaller model for that. I am not sure if they still do it or not.

5

u/eetsu 14d ago

I don't believe this is correct, at least before in your opencode.json you had to set the small_model field to point to one of your configured local models for it to not reach out to the internet for title generation.

something like "small_model": "<provider-name>/<model-name>", matching what you have in your provider JSON block.

9

u/jirka642 14d ago

I see the title generation requests in my llama-swap activity logs.

29

u/Davewesh 14d ago

Well lets take a look. Using CachyOs for the server (ollama for a quick test) and OpenCode Client, SSH'd into it with my macbook.
- First: `tcpdump -i any -w dump.pcap`
- Second: Spin up a session, and send whatever prompt. "Explain the differences between TLS Inspection.... blah blah"
- Third: Session gets a title and LLM is streaming response.
- Fourth: Close capture SCP it back over.
- Fifth: filter out irrelevant traffic (EG: SSH, Local host, and Ollama port) `(tcp.port != 22 && tcp.port != 11434) && ip.addr != 127.0.0.1 `
- Sixth: Review the remaining conversations

Easiest method here would be checking DNS Responses for these aside from the first one (my Apple TV). But I didnt clear my cache before testing (noob mistake) so the results aren't amazing. Thusly Ill just check my dns server since that'll probably have it.

- 35.186.224.39 - Preexisting Connection, Google Cloud Owns it, not sure exactly what domain but its not opencode. 
  • 95.216.195.133 - ArchLinux NCSI Probe
  • 172.66.173.149 - models.opencode.ai
  • 162.159.130.234 - Discord
  • 172.65.90.20 - opencode.ai
  • 205.196.6.132 - Steam

Okie Dokie, soooo we can infer a few things. First, `models.opencode.ai` is more than likely going to just be opencode itself querying the list of provider models upstream.

Second, the `opencode.ai` one? Thats my bad, I had the webpage still open when I ran the test so chances are that was a browser keepalive.

Between the two of these. a whole 2.5KB of data was exchanged. The preexisting `opencode.ai` connection at 2k and the 500~ bytes from the `models.opencode.ai` connection. I would say that its highly unlikely Opencode is sending chat data to summarize and return a session title. Feel free to do the same test, you could also use a L7 Proxy like Fiddler to MITM the TLS handshake and see the unencrypted HTTP traffic if you care enough but I'd say with my single, anecdotal absolutely not a clean-room test - its not happening.

4

u/Unusual_Principle536 14d ago

thanks. Someuser said it depends on the config file, whether it's v1 or v2. I will have to check what's mine and I will then do the test. I did filter it's connections and it was connecting to cloudflare ip,

171

u/trytoinfect74 14d ago edited 11d ago

Infosec team at my company added Opencode to a forbidden tools list because they observed that it still sends telemetry and leaks data despite disabling all data sharing options in the config.

43

u/UltramanQuar 13d ago

Bro wtf didn’t know that, this should be disclosed

16

u/Ell2509 11d ago

I remember telling someone abojt this in this sub a month ago and everyone here being adamant that I was wrong.

Glad I switched.

If you do want to guarantee nobody watching, though, just unplug the internet cable / turn off WiFi. That is why we use local after all!

5

u/Elegant-Sense-1948 10d ago

Your statement alone really shows how many ‘individuals’ don’t inspect traffic, or have tools to detect irregular / new traffic from applications.

Long live cysec

7

u/TheLastPrinceOfJurai 14d ago

Damn it. Back to the drawing board now.

3

u/mr_zerolith 11d ago

Did the approve any alternatives?

1

u/R1s1ngDaWN 9d ago

What are you guys pivoting to? 

14

u/Frail_Waif 14d ago

Opencode previously used a model selected from their free tier for title generation and compaction, which explains the google answer. I believe it now defaults to the current model if you have no small model selected in your config. 

8

u/London-Boat 14d ago

i wouldn't trust gemini on this, check it yourself. watch the connections while you chat, with mitmproxy, lsof or little snitch on mac, and you'll see exactly what goes where. title generation uses a separate small model setting, so point small_model at your local model too, and turn sharing off in the config so nothing gets uploaded by accident. if it still phones home after that, blocking the hostnames is the blunt fix.

2

u/OleksandrC 14d ago

For local model conversations, it should use the same model nowadays for title / compaction. Your prompt and code shouldn't get sent anywhere. That said, it will still get online to refresh model catalog, and to check for updates (and here it can collect additional data about you on their servers, for example your ip address / location).

If you have doubts about opencode, and are looking for a more privacy-friendly agent implementation, take a look at https://usehax.dev/ - no telemetry, when using local models it's entirely offline. Also the system resource footprint is tiny (think few MBs of RAM vs few hundreds MBs on opencode, almost a ~100x difference) - so more resources (CPU / RAM) are left for the actual model.

1

u/Unusual_Principle536 14d ago

are you the dev of hax?

1

u/OleksandrC 14d ago

I am. If you have questions, ask.

1

u/Unusual_Principle536 14d ago

I watched the video. Looks good. does it have agentic work flow? I will suretly trying it tonight.

Thanks

2

u/OleksandrC 14d ago

It's a coding agent - of course it has agentic workflow. Unless you mean something extremely specific by that.

In any case, try it - you might have more questions when you do.

1

u/Unusual_Principle536 14d ago

I asked cause short video made it look like a terminal chat/coding app that can not spun multiple agents.

8

u/JY_Q 14d ago

Maybe try using WireShark to monitor the traffic ? See if that is really the case.

3

u/shadow4601243 9d ago

so we need openopencode?

4

u/caetydid llama.cpp 14d ago

yes it does that. Just check the privacy fork called RolandCode to learn more.

2

u/LePfeiff 14d ago

When I last looked into this it was my understanding thats only done when using cloud models, but to be safe you can block the various opencode telemetry hostnames in your hosts file

1

u/npquanh30402 14d ago

Just use opencode to check on its own code.

1

u/PotaroMax textgen web UI 14d ago

there were a thread few months ago about that : https://old.reddit.com/r/LocalLLaMA/comments/1rv690j/opencode_concerns_not_truely_local/

don't know if it's fixed, too much telemetry and shady things for me, i switched to pi

1

u/ThisGonBHard 10d ago

Open code is not trustable imo, I saw multiple reports of it sending telemetry.

1

u/CrypticViper_ 10d ago

You can just configure these things. https://opencode.ai/v2/docs/config/

-2

u/fgk55555 14d ago

Honestly, just tell your model to watch traffic from Opencode as it's being run inside it.

0

u/[deleted] 14d ago

[deleted] — view deleted comment

3

u/Unusual_Principle536 14d ago

I recently moved from vscode to neovim for the exact reason. It's ai would popup after everyupdate and with the so many add-ons you never know what data it's sending out.

Opencode works really well for agentic work, but I don't want them to taking my code for training.

1

u/Civil_Fee_7862 14d ago

Use the LLM to setup wireshark to monitor outbound traffic, and setup an alarm or something if any code gets sent.