[BUG] Artifact tool not loaded in interactive Linux CLI session — same account works on macOS CLI (gate allow_cobalt_plinth?)
Environment
- Claude Code: 2.1.223 (native install)
- OS: Linux (LXC container, kernel 6.17.4-2-pve), TERM=xterm-256color
- Auth: OAuth /login with claude.ai account, subscriptionType: team
- Provider: Anthropic API (no Bedrock/Vertex/Foundry)
Problem
The built-in Artifact tool is never loaded in interactive sessions on this Linux machine, while the same claude.ai account gets the Artifact tool in Claude Code CLI on macOS (and artifacts work on claude.ai web / desktop app as expected).
What I ruled out
CLAUDE_CODE_DISABLE_ARTIFACTunset;CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICunset- No
enableArtifact: false/disableArtifactin any settings scope; nopermissions.denyfor Artifact; no managed settings (/etc/claude-code/managed-settings.jsonabsent) - No
ANTHROPIC_API_KEY/ANTHROPIC_AUTH_TOKENin env - Fresh
/login+ new session — tool still absent (confirmed via/context) - Network from the container reaches api.anthropic.com, statsigapi.net, claude.ai normally
- Happens in plain interactive
claude(not only-p/headless, and not related to--dangerously-skip-permissions) --debuglog has no artifact-related lines
Analysis
Inspecting the 2.1.223 binary, availability resolves to the allow_cobalt_plinth gate after env/settings/plan checks all pass:
if (CLAUDE_CODE_DISABLE_ARTIFACT) return false;
// enableArtifact settings check → passes (unset)
// plan check: team ✓
return Is("allow_cobalt_plinth"); // ← evaluates false on this machine
Since the same account passes the gate on macOS but not on Linux, the gate (or its evaluation attributes) seems to differentiate by device/platform/environment. If Linux (or container environments) is intentionally excluded from the rollout, it would help to surface the reason (e.g. a line in --debug or /status) instead of silently omitting the tool.
Expected
Artifact tool loads in interactive Linux CLI sessions for an eligible team-plan OAuth account, or the exclusion reason is observable in --debug//status.
Actual
Tool silently absent from the tool roster on Linux; present on macOS with the same account.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗