$ semble --version
Traceback (most recent call last):
File ".../bin/semble", line 6, in <module>
from semble.cli import main
File ".../semble/cli.py", line 18, in <module>
from semble.installer.agents import AGENTS, IntegrationType
File ".../semble/installer/__init__.py", line 1, in <module>
from semble.installer.installer import run
File ".../semble/installer/installer.py", line 11, in <module>
from semble.installer.agents import (
File ".../semble/installer/agents.py", line 218, in <module>
mcp=McpConfig(_opencode_mcp_path(), "mcp", _OPENCODE_SERVER_CONFIG),
^^^^^^^^^^^^^^^^^^^^
File ".../semble/installer/agents.py", line 162, in _opencode_mcp_path
return jsonc if jsonc.exists() else (json_ if json_.exists() else jsonc)
^^^^^^^^^^^^^^
PermissionError: [Errno 1] Operation not permitted: '/Users/me/.config/opencode/opencode.jsonc'
Summary
Under a sandbox that does not grant access to
~/.config/opencode,semblefails to start withPermissionError.The failure happens at import time, so every subcommand is affected including
semble --version.Environment
uvx --from 'semble[mcp]' semble)sandbox-exec(Seatbelt) wrapperWhat happens
As an MCP server the same traceback appears on stderr and the client reports
MCP error -32000: Connection closed.Notes
semblestart normally, so it is the only blocker in this environment.stat()on this path withEPERMrather thanENOENT. Paths that simply do not exist still returnENOENTand cause no problem there.semble install; the MCP server is configured by hand, and opencode is unrelated to what this session is doing.