Skip to content

OpenCode desktop can't load configured models when started before omac serve #252

Description

@Sebastian-Galindez-TNG

Duplicate check

  • I have searched the existing issues

Context / Summary

When launching the toolchain in the wrong order, OpenCode Desktop first and omac serve second, the configured models are not visible in OpenCode Desktop. The order of starting the processes should not matter

Problem / What

Starting OpenCode Desktop first and then omac serve opencode -- --port 4096 afterwards leaves OpenCode Desktop unable to load the configured models. The models only appear after restarting OpenCode Desktop.

Suggested fix / Ask

Check if this is an omac related issue and fix it.

Non-goals

No response

Evidence / Environment

Reproduction steps

  1. Start OpenCode Desktop.
  2. Start omac serve opencode -- --port 4096 (same machine/workdir).
  3. Try to load the configured models in OpenCode Desktop → models not found/unavailable.
  4. Restart OpenCode Desktop → models load correctly.

System

  • OS: macOS 26.6.2
  • OpenCode Desktop: 1.18.19
  • omac: 0.8.0
  • in OpenCode desktop the omac server (http://localhost:4096) is configured as the default server without username or password.

omac doctor Output

omac 0.8.0
OS: macos
workdir: /Users/sebastian/git_repos
[ok] keychain backend: reachable
[ok] launcher config: /Users/sebastian/.config/omac/config.yaml
[ok] registry: 1 skill(s) registered (0 workdir, 1 global)
  [ok] skill-marketplace    binary=yes missing_required_secrets=0
Inner harnesses:
  [ok]   opencode     binary=opencode found
  [warn] claude-code  binary=claude not on $PATH
  [warn] codex        binary=codex not on $PATH
  [warn] copilot      binary=copilot not on $PATH
  [warn] pi           binary=pi not on $PATH
  [warn] codewhale    binary=codewhale not on $PATH
  [ok] built-in omac-write-a-skill (opencode): present
[ok] sandbox profile "tng-default" uses the built-in sandbox
[ok] built-in sandbox: kernel backend available
[ok] network prompt: dialog backend available
  [warn] sandbox profile "tng-default" Allow ~/.cache
         impact:      cache roots are writable/readable inside the sandbox, which can leak host-derived caches and weaken per-project isolation
         remediation: remove the broad grant; let the sandbox start empty and grant specific cache subpaths only when needed
  [warn] sandbox profile "tng-default" Allow ~/Library/Caches
         impact:      cache roots are writable/readable inside the sandbox, which can leak host-derived caches and weaken per-project isolation
         remediation: remove the broad grant; let the sandbox start empty and grant specific cache subpaths only when needed
  [warn] sandbox profile "tng-default" Allow ~/go
         impact:      tool home ~/go is writable inside the sandbox, exposing host-installed toolchains and credentials
         remediation: use GOPATH inside the sandbox or grant only ~/go/bin read
  [warn] sandbox profile "tng-default" Allow ~/.rustup
         impact:      tool home ~/.rustup is writable inside the sandbox, exposing host-installed toolchains and credentials
         remediation: point RUSTUP_HOME at an isolated location inside the sandbox
  [warn] sandbox profile "tng-default" Allow ~/.cargo
         impact:      tool home ~/.cargo is writable inside the sandbox, exposing host-installed toolchains and credentials
         remediation: use an isolated CARGO_HOME and project-local .cargo/config.toml; export CARGO_REGISTRIES_<NAME>_TOKEN in the environment that starts omac. If the sandbox profile sets environment.allow_vars, include that exact variable so the sandboxed harness inherits it; sidecar.env_passthrough configures only the sidecar. NAME is the registry key uppercased with '-' replaced by '_'
sandbox profile lint (2 finding(s), advisory):
  [medium] filesystem.read: overlaps known secret path /Users/sebastian/.gitconfig not in baseline (git config (may embed tokens)) (~/.gitconfig)
  [medium] network.allow_tcp_connect: direct outbound TCP to SSH/RDP port (22)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions