task update but no model output with LocalAI / Qwen3 8B #2633

Closed
opened 2026-02-16 17:36:33 -05:00 by yindo · 11 comments
Owner

Originally created by @meonkeys on GitHub (Nov 6, 2025).

Description

I'd like to use opencode with my self-hosted LocalAI model API server. It is hitting the server, the server responds, and the current task description is updated (in the upper right-hand corner), but it stops before actually doing anything in the main window.

Here's my ~/.config/opencode/opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "localai": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "LocalAI",
      "options": {
        "baseURL": "https://localai.example.com/v1"
      },
      "models": {
        "qwen3-8b": {
            "name": "Qwen3 8B",
            "reasoning": true
        }
      }
    }
  }
}

output of opencode run hello --print-logs --model localai/qwen3-8b > debug.txt 2>&1:

debug.txt
INFO  2025-11-05T19:38:59 +232ms service=default version=1.0.26 args=["run","hello","--print-logs","--model","localai/qwen3-8b"] opencode
INFO  2025-11-05T19:38:59 +1ms service=project directory=/home/meonkeys/Nextcloud/tmp fromDirectory
INFO  2025-11-05T19:38:59 +10ms service=config path=/home/meonkeys/.config/opencode/config.json loading
INFO  2025-11-05T19:38:59 +1ms service=config path=/home/meonkeys/.config/opencode/opencode.json loading
INFO  2025-11-05T19:38:59 +4ms service=config path=/home/meonkeys/.config/opencode/opencode.jsonc loading
INFO  2025-11-05T19:38:59 +2ms service=bun cmd=["/home/meonkeys/.opencode/bin/opencode","add","@opencode-ai/plugin@1.0.26","--exact"] cwd=/home/meonkeys/.config/opencode running
INFO  2025-11-05T19:38:59 +3ms service=bun cmd=["/home/meonkeys/.opencode/bin/opencode","add","@opencode-ai/plugin@1.0.26","--exact"] cwd=/home/meonkeys/.opencode running
INFO  2025-11-05T19:38:59 +0ms service=bun code=0 stdout=bun add v1.3.1 (89fa0f34)

installed @opencode-ai/plugin@1.0.26

[1.00ms] done
 stderr=Saved lockfile
 done
INFO  2025-11-05T19:38:59 +2ms service=bun code=0 stdout=bun add v1.3.1 (89fa0f34)

installed @opencode-ai/plugin@1.0.26

[1.00ms] done
 stderr=Saved lockfile
 done
INFO  2025-11-05T19:38:59 +2ms service=plugin path=opencode-copilot-auth@0.0.4 loading plugin
INFO  2025-11-05T19:38:59 +1ms service=plugin path=opencode-anthropic-auth@0.0.2 loading plugin
INFO  2025-11-05T19:38:59 +13ms service=bus type=* subscribing
INFO  2025-11-05T19:38:59 +0ms service=bus type=session.updated subscribing
INFO  2025-11-05T19:38:59 +0ms service=bus type=message.updated subscribing
INFO  2025-11-05T19:38:59 +1ms service=bus type=message.part.updated subscribing
INFO  2025-11-05T19:38:59 +0ms service=format init
INFO  2025-11-05T19:38:59 +0ms service=bus type=file.edited subscribing
INFO  2025-11-05T19:38:59 +0ms service=lsp serverIds=deno, typescript, vue, eslint, gopls, ruby-lsp, pyright, elixir-ls, zls, csharp, rust, clangd, svelte, astro, jdtls, lua-ls enabled LSP servers
INFO  2025-11-05T19:38:59 +1ms service=bus type=command.executed subscribing
INFO  2025-11-05T19:38:59 +16ms service=server method=POST path=/session request
INFO  2025-11-05T19:38:59 +2ms service=session id=ses_5aa786c67ffeT5M6rX7XskJ696 version=1.0.26 projectID=global directory=/home/meonkeys/Nextcloud/tmp title=New session - 2025-11-05T19:38:59.864Z time={"created":1762371539864,"updated":1762371539864} created
INFO  2025-11-05T19:38:59 +0ms service=bus type=session.created publishing
INFO  2025-11-05T19:38:59 +0ms service=bus type=session.updated publishing
INFO  2025-11-05T19:38:59 +1ms service=server duration=3 response
INFO  2025-11-05T19:38:59 +2ms service=server method=GET path=/config request
INFO  2025-11-05T19:38:59 +0ms service=server duration=0 response
INFO  2025-11-05T19:38:59 +2ms service=server method=GET path=/event request
INFO  2025-11-05T19:38:59 +0ms service=server event connected
INFO  2025-11-05T19:38:59 +2ms service=bus type=* subscribing
INFO  2025-11-05T19:38:59 +0ms service=server duration=2 response
INFO  2025-11-05T19:38:59 +2ms service=server method=POST path=/session/ses_5aa786c67ffeT5M6rX7XskJ696/message request
INFO  2025-11-05T19:38:59 +3ms service=session.prompt session=ses_5aa786c67ffeT5M6rX7XskJ696 prompt
INFO  2025-11-05T19:38:59 +0ms service=server duration=3 response
INFO  2025-11-05T19:38:59 +3ms service=bus type=message.updated publishing
INFO  2025-11-05T19:38:59 +1ms service=bus type=message.part.updated publishing
INFO  2025-11-05T19:38:59 +1ms service=bus type=session.updated publishing
INFO  2025-11-05T19:38:59 +3ms service=models.dev file={} refreshing
INFO  2025-11-05T19:38:59 +2ms service=provider init
INFO  2025-11-05T19:38:59 +2ms service=provider providerID=opencode found
INFO  2025-11-05T19:38:59 +0ms service=provider providerID=localai found
INFO  2025-11-05T19:38:59 +0ms service=provider providerID=localai modelID=qwen3-8b getModel
INFO  2025-11-05T19:38:59 +0ms service=provider status=started providerID=localai getSDK
INFO  2025-11-05T19:38:59 +52ms service=provider status=completed duration=52 providerID=localai getSDK
INFO  2025-11-05T19:38:59 +1ms service=provider providerID=localai modelID=qwen3-8b found
INFO  2025-11-05T19:38:59 +0ms service=session.lock sessionID=ses_5aa786c67ffeT5M6rX7XskJ696 locked
INFO  2025-11-05T19:38:59 +0ms service=session.prompt session=ses_5aa786c67ffeT5M6rX7XskJ696 sessionID=ses_5aa786c67ffeT5M6rX7XskJ696 locking
INFO  2025-11-05T19:38:59 +10ms service=bus type=message.updated publishing
INFO  2025-11-05T19:38:59 +6ms service=session.prompt session=ses_5aa786c67ffeT5M6rX7XskJ696 process
INFO  2025-11-05T19:38:59 +2ms service=session.prompt session=ses_5aa786c67ffeT5M6rX7XskJ696 type=start part
INFO  2025-11-05T19:38:59 +7ms service=bus type=message.updated publishing
INFO  2025-11-05T19:38:59 +1ms service=bus type=session.updated publishing
INFO  2025-11-05T19:39:39 +39445ms service=bus type=session.updated publishing
INFO  2025-11-05T19:39:39 +102ms service=session.prompt session=ses_5aa786c67ffeT5M6rX7XskJ696 type=start-step part
INFO  2025-11-05T19:39:39 +3ms service=bus type=message.part.updated publishing
INFO  2025-11-05T19:39:39 +34ms service=session.prompt session=ses_5aa786c67ffeT5M6rX7XskJ696 type=finish-step part
INFO  2025-11-05T19:39:39 +4ms service=bus type=message.part.updated publishing
INFO  2025-11-05T19:39:39 +1ms service=bus type=message.updated publishing
INFO  2025-11-05T19:39:39 +0ms service=session.prompt session=ses_5aa786c67ffeT5M6rX7XskJ696 type=finish part
INFO  2025-11-05T19:39:39 +1ms service=bus type=message.updated publishing
INFO  2025-11-05T19:39:39 +4ms service=bus type=message.updated publishing
INFO  2025-11-05T19:39:39 +0ms service=bus type=message.updated publishing
INFO  2025-11-05T19:39:39 +1ms service=session.compaction pruning
INFO  2025-11-05T19:39:39 +0ms service=session.lock sessionID=ses_5aa786c67ffeT5M6rX7XskJ696 unlocked
INFO  2025-11-05T19:39:39 +0ms service=session.prompt session=ses_5aa786c67ffeT5M6rX7XskJ696 sessionID=ses_5aa786c67ffeT5M6rX7XskJ696 unlocking
INFO  2025-11-05T19:39:39 +1ms service=bus type=session.idle publishing
INFO  2025-11-05T19:39:39 +0ms service=bus type=message.updated publishing
INFO  2025-11-05T19:39:39 +1ms service=default directory=/home/meonkeys/Nextcloud/tmp disposing instance
INFO  2025-11-05T19:39:39 +0ms service=state key=/home/meonkeys/Nextcloud/tmp waiting for state disposal to complete
INFO  2025-11-05T19:39:39 +0ms service=state key=/home/meonkeys/Nextcloud/tmp state disposal completed

OpenCode version

1.0.26

Steps to reproduce

  1. install opencode
  2. configure opencode to hit self-hosted LocalAI server
  3. enter prompt, e.g. "write python hello world"

Screenshot and/or share link

Image

Operating System

64-bit Ubuntu 24.04 LTS desktop

Terminal

gnome-terminal

Originally created by @meonkeys on GitHub (Nov 6, 2025). ### Description I'd like to use opencode with my self-hosted LocalAI model API server. It is hitting the server, the server responds, and the current task description is updated (in the upper right-hand corner), but it stops before actually doing anything in the main window. Here's my `~/.config/opencode/opencode.json`: ```json { "$schema": "https://opencode.ai/config.json", "provider": { "localai": { "npm": "@ai-sdk/openai-compatible", "name": "LocalAI", "options": { "baseURL": "https://localai.example.com/v1" }, "models": { "qwen3-8b": { "name": "Qwen3 8B", "reasoning": true } } } } } ``` output of `opencode run hello --print-logs --model localai/qwen3-8b > debug.txt 2>&1`: <details> <summary>debug.txt</summary> ``` INFO 2025-11-05T19:38:59 +232ms service=default version=1.0.26 args=["run","hello","--print-logs","--model","localai/qwen3-8b"] opencode INFO 2025-11-05T19:38:59 +1ms service=project directory=/home/meonkeys/Nextcloud/tmp fromDirectory INFO 2025-11-05T19:38:59 +10ms service=config path=/home/meonkeys/.config/opencode/config.json loading INFO 2025-11-05T19:38:59 +1ms service=config path=/home/meonkeys/.config/opencode/opencode.json loading INFO 2025-11-05T19:38:59 +4ms service=config path=/home/meonkeys/.config/opencode/opencode.jsonc loading INFO 2025-11-05T19:38:59 +2ms service=bun cmd=["/home/meonkeys/.opencode/bin/opencode","add","@opencode-ai/plugin@1.0.26","--exact"] cwd=/home/meonkeys/.config/opencode running INFO 2025-11-05T19:38:59 +3ms service=bun cmd=["/home/meonkeys/.opencode/bin/opencode","add","@opencode-ai/plugin@1.0.26","--exact"] cwd=/home/meonkeys/.opencode running INFO 2025-11-05T19:38:59 +0ms service=bun code=0 stdout=bun add v1.3.1 (89fa0f34) installed @opencode-ai/plugin@1.0.26 [1.00ms] done stderr=Saved lockfile done INFO 2025-11-05T19:38:59 +2ms service=bun code=0 stdout=bun add v1.3.1 (89fa0f34) installed @opencode-ai/plugin@1.0.26 [1.00ms] done stderr=Saved lockfile done INFO 2025-11-05T19:38:59 +2ms service=plugin path=opencode-copilot-auth@0.0.4 loading plugin INFO 2025-11-05T19:38:59 +1ms service=plugin path=opencode-anthropic-auth@0.0.2 loading plugin INFO 2025-11-05T19:38:59 +13ms service=bus type=* subscribing INFO 2025-11-05T19:38:59 +0ms service=bus type=session.updated subscribing INFO 2025-11-05T19:38:59 +0ms service=bus type=message.updated subscribing INFO 2025-11-05T19:38:59 +1ms service=bus type=message.part.updated subscribing INFO 2025-11-05T19:38:59 +0ms service=format init INFO 2025-11-05T19:38:59 +0ms service=bus type=file.edited subscribing INFO 2025-11-05T19:38:59 +0ms service=lsp serverIds=deno, typescript, vue, eslint, gopls, ruby-lsp, pyright, elixir-ls, zls, csharp, rust, clangd, svelte, astro, jdtls, lua-ls enabled LSP servers INFO 2025-11-05T19:38:59 +1ms service=bus type=command.executed subscribing INFO 2025-11-05T19:38:59 +16ms service=server method=POST path=/session request INFO 2025-11-05T19:38:59 +2ms service=session id=ses_5aa786c67ffeT5M6rX7XskJ696 version=1.0.26 projectID=global directory=/home/meonkeys/Nextcloud/tmp title=New session - 2025-11-05T19:38:59.864Z time={"created":1762371539864,"updated":1762371539864} created INFO 2025-11-05T19:38:59 +0ms service=bus type=session.created publishing INFO 2025-11-05T19:38:59 +0ms service=bus type=session.updated publishing INFO 2025-11-05T19:38:59 +1ms service=server duration=3 response INFO 2025-11-05T19:38:59 +2ms service=server method=GET path=/config request INFO 2025-11-05T19:38:59 +0ms service=server duration=0 response INFO 2025-11-05T19:38:59 +2ms service=server method=GET path=/event request INFO 2025-11-05T19:38:59 +0ms service=server event connected INFO 2025-11-05T19:38:59 +2ms service=bus type=* subscribing INFO 2025-11-05T19:38:59 +0ms service=server duration=2 response INFO 2025-11-05T19:38:59 +2ms service=server method=POST path=/session/ses_5aa786c67ffeT5M6rX7XskJ696/message request INFO 2025-11-05T19:38:59 +3ms service=session.prompt session=ses_5aa786c67ffeT5M6rX7XskJ696 prompt INFO 2025-11-05T19:38:59 +0ms service=server duration=3 response INFO 2025-11-05T19:38:59 +3ms service=bus type=message.updated publishing INFO 2025-11-05T19:38:59 +1ms service=bus type=message.part.updated publishing INFO 2025-11-05T19:38:59 +1ms service=bus type=session.updated publishing INFO 2025-11-05T19:38:59 +3ms service=models.dev file={} refreshing INFO 2025-11-05T19:38:59 +2ms service=provider init INFO 2025-11-05T19:38:59 +2ms service=provider providerID=opencode found INFO 2025-11-05T19:38:59 +0ms service=provider providerID=localai found INFO 2025-11-05T19:38:59 +0ms service=provider providerID=localai modelID=qwen3-8b getModel INFO 2025-11-05T19:38:59 +0ms service=provider status=started providerID=localai getSDK INFO 2025-11-05T19:38:59 +52ms service=provider status=completed duration=52 providerID=localai getSDK INFO 2025-11-05T19:38:59 +1ms service=provider providerID=localai modelID=qwen3-8b found INFO 2025-11-05T19:38:59 +0ms service=session.lock sessionID=ses_5aa786c67ffeT5M6rX7XskJ696 locked INFO 2025-11-05T19:38:59 +0ms service=session.prompt session=ses_5aa786c67ffeT5M6rX7XskJ696 sessionID=ses_5aa786c67ffeT5M6rX7XskJ696 locking INFO 2025-11-05T19:38:59 +10ms service=bus type=message.updated publishing INFO 2025-11-05T19:38:59 +6ms service=session.prompt session=ses_5aa786c67ffeT5M6rX7XskJ696 process INFO 2025-11-05T19:38:59 +2ms service=session.prompt session=ses_5aa786c67ffeT5M6rX7XskJ696 type=start part INFO 2025-11-05T19:38:59 +7ms service=bus type=message.updated publishing INFO 2025-11-05T19:38:59 +1ms service=bus type=session.updated publishing INFO 2025-11-05T19:39:39 +39445ms service=bus type=session.updated publishing INFO 2025-11-05T19:39:39 +102ms service=session.prompt session=ses_5aa786c67ffeT5M6rX7XskJ696 type=start-step part INFO 2025-11-05T19:39:39 +3ms service=bus type=message.part.updated publishing INFO 2025-11-05T19:39:39 +34ms service=session.prompt session=ses_5aa786c67ffeT5M6rX7XskJ696 type=finish-step part INFO 2025-11-05T19:39:39 +4ms service=bus type=message.part.updated publishing INFO 2025-11-05T19:39:39 +1ms service=bus type=message.updated publishing INFO 2025-11-05T19:39:39 +0ms service=session.prompt session=ses_5aa786c67ffeT5M6rX7XskJ696 type=finish part INFO 2025-11-05T19:39:39 +1ms service=bus type=message.updated publishing INFO 2025-11-05T19:39:39 +4ms service=bus type=message.updated publishing INFO 2025-11-05T19:39:39 +0ms service=bus type=message.updated publishing INFO 2025-11-05T19:39:39 +1ms service=session.compaction pruning INFO 2025-11-05T19:39:39 +0ms service=session.lock sessionID=ses_5aa786c67ffeT5M6rX7XskJ696 unlocked INFO 2025-11-05T19:39:39 +0ms service=session.prompt session=ses_5aa786c67ffeT5M6rX7XskJ696 sessionID=ses_5aa786c67ffeT5M6rX7XskJ696 unlocking INFO 2025-11-05T19:39:39 +1ms service=bus type=session.idle publishing INFO 2025-11-05T19:39:39 +0ms service=bus type=message.updated publishing INFO 2025-11-05T19:39:39 +1ms service=default directory=/home/meonkeys/Nextcloud/tmp disposing instance INFO 2025-11-05T19:39:39 +0ms service=state key=/home/meonkeys/Nextcloud/tmp waiting for state disposal to complete INFO 2025-11-05T19:39:39 +0ms service=state key=/home/meonkeys/Nextcloud/tmp state disposal completed ``` </details> ### OpenCode version 1.0.26 ### Steps to reproduce 1. install opencode 2. configure opencode to hit self-hosted LocalAI server 3. enter prompt, e.g. "write python hello world" ### Screenshot and/or share link <img width="1801" height="1176" alt="Image" src="https://github.com/user-attachments/assets/00e1cd46-3e08-48e7-a696-885ac3d819e5" /> ### Operating System 64-bit Ubuntu 24.04 LTS desktop ### Terminal gnome-terminal
yindo added the bug label 2026-02-16 17:36:33 -05:00
yindo closed this issue 2026-02-16 17:36:33 -05:00
Author
Owner

@github-actions[bot] commented on GitHub (Nov 6, 2025):

This issue might be a duplicate of existing issues. Please check:

  • #2940: Very similar hanging behavior where OpenCode hangs after receiving instructions and becomes unresponsive
  • #3975: OpenCode hangs in various scenarios including when resuming sessions
  • #2102: Tool hanging behavior with custom providers (chutes), while other providers work normally
  • #1735: Custom provider configuration issues with max_tokens parameter causing errors

The symptoms in #2940 are particularly similar - task updates but OpenCode becomes unresponsive and requires manual intervention. The difference is the provider (GitHub Copilot vs LocalAI) but the core hanging behavior appears identical.

Feel free to ignore if none of these address your specific case.

@github-actions[bot] commented on GitHub (Nov 6, 2025): This issue might be a duplicate of existing issues. Please check: - #2940: Very similar hanging behavior where OpenCode hangs after receiving instructions and becomes unresponsive - #3975: OpenCode hangs in various scenarios including when resuming sessions - #2102: Tool hanging behavior with custom providers (chutes), while other providers work normally - #1735: Custom provider configuration issues with max_tokens parameter causing errors The symptoms in #2940 are particularly similar - task updates but OpenCode becomes unresponsive and requires manual intervention. The difference is the provider (GitHub Copilot vs LocalAI) but the core hanging behavior appears identical. Feel free to ignore if none of these address your specific case.
Author
Owner

@meonkeys commented on GitHub (Nov 6, 2025):

It's not hanging, it is still interactive. I don't see any errors or warnings nor anything obviously useful/relevant in the logs.

Do I need any special features enabled in my model server? MCP, agents, tools, functions... I'm not sure if I have any of that set up. I'm just using a basic "all-in-one" LocalAI install with Qwen3 8B added, but it does work fine so far (via its web UI, via Python code as an openai-compatible API, via clients like the Nextcloud AI assistant and via a Vim AI plugin I've been playing with).

Is Qwen3 8B a suitable model? FWIW, I also tried the default chat completion model that comes with LocalAI ("gpt-4"), and it behaved the same (title generates, nothing else happens).

Is https://github.com/mudler/LocalAI/issues/6117 related / preventing opencode from working as expected?

@meonkeys commented on GitHub (Nov 6, 2025): It's not hanging, it is still interactive. I don't see any errors or warnings nor anything obviously useful/relevant in the logs. Do I need any special features enabled in my model server? MCP, agents, tools, functions... I'm not sure if I have any of that set up. I'm just using a basic ["all-in-one" LocalAI install](https://localai.io/basics/container/#all-in-one-images) with [Qwen3 8B](https://huggingface.co/Qwen/Qwen3-8B) added, but it does work fine so far (via its web UI, via Python code as an openai-compatible API, via clients like the Nextcloud AI assistant and via a Vim AI plugin I've been playing with). Is [Qwen3 8B](https://huggingface.co/Qwen/Qwen3-8B) a suitable model? FWIW, I also tried the default chat completion model that comes with LocalAI ("[gpt-4](https://localai.io/basics/container/#all-in-one-images)"), and it behaved the same (title generates, nothing else happens). Is https://github.com/mudler/LocalAI/issues/6117 related / preventing opencode from working as expected?
Author
Owner

@rekram1-node commented on GitHub (Nov 6, 2025):

Does it actually stream and stream properly?

Given the title generates but streams dont work it seems like it doesnt follow spec but i could be wrong

@rekram1-node commented on GitHub (Nov 6, 2025): Does it actually stream and stream properly? Given the title generates but streams dont work it seems like it doesnt follow spec but i could be wrong
Author
Owner

@meonkeys commented on GitHub (Nov 6, 2025):

Stream: Yes. Stream properly: I don't know. How would I check that?

@meonkeys commented on GitHub (Nov 6, 2025): Stream: Yes. Stream properly: I don't know. How would I check that?
Author
Owner

@rekram1-node commented on GitHub (Nov 6, 2025):

it may be more work than it's worth for u but if the vercel ai sdk for openai compatible streamText works for ur setup, it would probably shed some light

@rekram1-node commented on GitHub (Nov 6, 2025): it may be more work than it's worth for u but if the [vercel ai sdk for openai compatible](https://ai-sdk.dev/providers/openai-compatible-providers) `streamText` works for ur setup, it would probably shed some light
Author
Owner

@rekram1-node commented on GitHub (Nov 6, 2025):

u could write a simple typescript thing that pings ur file and says hello, an llm can set this up for u

@rekram1-node commented on GitHub (Nov 6, 2025): u could write a simple typescript thing that pings ur file and says hello, an llm can set this up for u
Author
Owner

@IgorWarzocha commented on GitHub (Nov 6, 2025):

Somehow I got involved. Love troubleshooting backends I don't know.

LocalAI is not fully OpenAI API compliant. Streaming has compliance issues that break OpenCode's response processing:

  1. Empty finish_reason: LocalAI sends "finish_reason": "" instead of "stop" or null
  2. Empty initial chunks: Sends empty content chunks that cause streaming clients to terminate early
  3. Missing proper stream termination: Doesn't properly signal completion to OpenCode's processor

Related LocalAI issues - pretty old...

I curl-tested both streaming and non-streaming:

Following some vibe-exploring... OpenCode has no way to disable streaming. GitHub issue https://github.com/sst/opencode/issues/785 confirms this - users cannot configure non-streaming mode, and OpenCode always uses streamText() internally.

Sorry, not very helpful. Seems like LocalAI has some issues it doesn't wanna resolve.

@IgorWarzocha commented on GitHub (Nov 6, 2025): Somehow I got involved. Love troubleshooting backends I don't know. LocalAI is not fully OpenAI API compliant. Streaming has compliance issues that break OpenCode's response processing: 1. **Empty finish_reason**: LocalAI sends `"finish_reason": ""` instead of `"stop"` or `null` 2. **Empty initial chunks**: Sends empty `content` chunks that cause streaming clients to terminate early 3. **Missing proper stream termination**: Doesn't properly signal completion to OpenCode's processor Related LocalAI issues - pretty old... - [#1194: "Streaming messages not compliant with openAI spec"](https://github.com/mudler/LocalAI/issues/1194) - [#5102: "Unknown ChatFinishReason value"](https://github.com/mudler/LocalAI/issues/5102) - [#1886: "LocalAI sends empty chunk to chatbot_ui and closes stream"](https://github.com/mudler/LocalAI/issues/1886) - [#1744: "Streaming does not work"](https://github.com/mudler/LocalAI/issues/1744) I curl-tested both streaming and non-streaming: - LocalAI non-streaming works perfectly (proper finish_reason, complete response) [localai-non-streaming-response.txt](https://github.com/user-attachments/files/23401134/localai-non-streaming-response.txt) - LocalAI streaming is broken (empty finish_reason, empty chunks) [localai-streaming-raw-response.txt](https://github.com/user-attachments/files/23401133/localai-streaming-raw-response.txt) Following some vibe-exploring... OpenCode has no way to disable streaming. GitHub issue https://github.com/sst/opencode/issues/785 confirms this - users cannot configure non-streaming mode, and OpenCode always uses `streamText()` internally. Sorry, not very helpful. Seems like LocalAI has some issues it doesn't wanna resolve.
Author
Owner

@meonkeys commented on GitHub (Nov 6, 2025):

Ah thanks, sounds like some leads worth tracking down.

I'm giving up on this for now so, maintainers, please do what you wish with this issue or just close it.

Side note: I got ollama working locally with Qwen3 8B. I increased the context window (per the docs), and was able to do some vibe coding. Nice!

@meonkeys commented on GitHub (Nov 6, 2025): Ah thanks, sounds like some leads worth tracking down. I'm giving up on this for now so, maintainers, please do what you wish with this issue or just close it. Side note: I got ollama working locally with Qwen3 8B. I increased the context window (per the [docs](https://opencode.ai/docs/providers/#ollama)), and was able to do some vibe coding. Nice!
Author
Owner

@rekram1-node commented on GitHub (Nov 6, 2025):

awesome, yeah given this sounds like an external issue ill go ahead and close

@rekram1-node commented on GitHub (Nov 6, 2025): awesome, yeah given this sounds like an external issue ill go ahead and close
Author
Owner

@mudler commented on GitHub (Nov 7, 2025):

Sorry, not very helpful. Seems like LocalAI has some issues it doesn't wanna resolve.

It's not that we don't want resolve, but we lack bandwidth, as we are pure FOSS, community project. And, we are happy to take contributions!

I'm not sure if https://github.com/mudler/LocalAI/issues/1194 fits the bill here, but happy to help as much as I can to get opencode to work with LocalAI

@mudler commented on GitHub (Nov 7, 2025): > Sorry, not very helpful. Seems like LocalAI has some issues it doesn't wanna resolve. It's not that we don't want resolve, but we lack bandwidth, as we are pure FOSS, community project. And, we are happy to take contributions! I'm not sure if https://github.com/mudler/LocalAI/issues/1194 fits the bill here, but happy to help as much as I can to get opencode to work with LocalAI
Author
Owner

@IfedayoPeter commented on GitHub (Nov 9, 2025):

Ah thanks, sounds like some leads worth tracking down.

I'm giving up on this for now so, maintainers, please do what you wish with this issue or just close it.

Side note: I got ollama working locally with Qwen3 8B. I increased the context window (per the docs), and was able to do some vibe coding. Nice!

can you kindly share what your config file looks like

@IfedayoPeter commented on GitHub (Nov 9, 2025): > Ah thanks, sounds like some leads worth tracking down. > > I'm giving up on this for now so, maintainers, please do what you wish with this issue or just close it. > > Side note: I got ollama working locally with Qwen3 8B. I increased the context window (per the [docs](https://opencode.ai/docs/providers/#ollama)), and was able to do some vibe coding. Nice! can you kindly share what your config file looks like
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#2633