Sovereign-Computing.com

Reclaim your digital life. Own your sovereignty.

Illustration of a monitor showing a connected dashboard of people and files

How to Configure OpenWork for Local AI

Here’s how you’d do this entirely through the OpenWork UI — two approaches:


Method 1: Settings UI (Recommended for most users expected on Cloud App versions)

Step 1 — Open AI Provider Settings

In the OpenWork Cloud app (yes – the CLOUD App – we need to distinguish this early, OpenWork has two versions: a Desktop App and a Cloud App), go to:

Settings → AI Providers

Or you can click the account menu in the sidebar footer and select Settings, then navigate to the AI tab.

Step 2 — Add a Custom Provider

  1. Click “Add Provider” (or the + button).
  2. Look for an option like “Custom / OpenAI-Compatible” — this is where you’d add llama.cpp since it speaks the OpenAI API format.
  3. Fill in:
    • Provider name: llama.cpp (local) (or whatever you like)
    • Base URL: http://192.168.xxx.xxx:8088/v1 (whatever your IP is <eg. 192.168.1.100> and whatever your port number <eg. 8088> is)
    • API Key: You can leave this blank or enter any dummy string — llama.cpp doesn’t require one by default.

Step 3 — Add the Model

  1. In the model section, add:
    • Model ID: eg. Qwen3.8-27B-Q6 (this must match the --alias you pass to llama-server)
    • Display name: eg. Qwen3.8 27B Q6_K_M

Step 4 — Select It

  1. Go back to your session, click the model picker at the top, and select your new eg. Qwen3.8-27B-Q6 model.

Method 2: Config File (For Desktop App version)

Alternatively — and this is what OpenWork docs recommend for workspace-specific configs — you edit the opencode.jsonc file directly at:

/mnt/<your disk location ID provided by Linux>/<your OpenWork workspace folder eg. obsidianvault>/opencode.jsonc

The file tells OpenWork: “Hey, there’s an OpenAI-compatible provider called llamacpp at this URL, with this model.”


Quick Reference: Starting llama.cpp

Before any of the above works, you will definitely need the llama-server running. On the machine at say, eg. 192.168.1.10, run:

llama-server \
  -m /<the full directory location >/<the local  AI model filename eg. Qwen3.8-27B-UD-Q6_K_M.gguf> \
  --alias Qwen3.8-27B-Q6 \
  --port 8080 \
  --host 0.0.0.0

The --alias flag is critical — it’s the model ID that OpenWork will use to reference this model.


TL;DR: The UI path is Settings → AI Providers → Add Provider → Custom OpenAI-Compatible → fill in the URL and model ID. The config file path gives the same result, just a different entry point.

So, the PROBLEM here with OpenWork is that you will not see the “Custom / OpenAI-compatible” option anywhere if you are on the Desktop App version. Typing in ‘Custom’ into the search, and it does not come up with anything.

The “Custom provider” option is in the OpenWork Cloud dashboard (web UI), not in the desktop app’s settings. The desktop app’s “Add Provider” button only shows the catalog of pre-configured providers (Anthropic, OpenAI, Google, etc.).

Therefore, for custom/local providers, the official recommendation is to edit the config file directly (ie. opencode.jsonc). The Cloud UI has a “Custom provider” tab, but that’s for org-managed providers shared across teams.

Now you see the full picture. Yes, this is intentional by design. Here’s what’s going on:


The Desktop App “Add Provider” Button

The Settings → AI Providers → Add Provider modal in the desktop app only shows a catalog of pre-configured cloud providers (Anthropic, OpenAI, Google, OpenRouter, etc.). There is no “Custom / OpenAI-Compatible” option in that desktop UI dialog — that’s not a bug, it’s by design.


Where “Custom Provider” Actually Lives

The “Custom provider” option exists in the OpenWork Cloud dashboard (the web UI at app.openworklabs.com), under LLM Providers → Add Provider → Custom provider tab. That flow is designed for:

  • Organization admins who want to share a custom provider across a team
  • It stores the credential in the Cloud, then each desktop workspace imports it via Settings → Cloud → Import

For Solo/Local Use: Config File Is the Path

The docs are explicit about this:

“For solo use, configuring it directly in the desktop app is simpler.”

And by “configuring it directly,” they mean editing the config file — which is what we need to do with opencode.jsonc. There’s no GUI form in the desktop app for adding a custom local provider.


TL;DR

ApproachWhereWho it’s for
Catalog providers (Anthropic, OpenAI, etc.)Desktop → Settings → AI Providers → Add ProviderEveryone
Custom provider (OpenAI-compatible)Cloud dashboard → LLM Providers → Add Provider → CustomOrgs/teams
Local config file (opencode.jsonc)Edit the file in your workspaceSolo users, local models

So you’re not missing anything in the UI — the config file approach is the correct and intended way to add a local llama.cpp model. The “Custom” option simply doesn’t exist in the desktop settings panel.

Update Notes: I’ve given up on OpenCode after encounting its limitations and that it is still a free opensource solution that has yet reached its ‘finishing line’, its very much still a ‘work-in-progress’. So, I switched over to Hermes and has never looked back. Removed all traces of OpenCode and OpenWork and now I have my Hermes totally owning the Obsidian vault and running point for all my homelab projects.