[BUG] Artifact tool not loaded in interactive Linux CLI session — same account works on macOS CLI (gate allow_cobalt_plinth?)

Status Fixed / completed
Reported on v2.1.223
Maintainer reply None cached
Activity 1 comment · opened Aug 7, 2026 · closed Aug 7, 2026

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_ARTIFACT unset; CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC unset
  • No enableArtifact: false / disableArtifact in any settings scope; no permissions.deny for Artifact; no managed settings (/etc/claude-code/managed-settings.json absent)
  • No ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN in 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)
  • --debug log 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.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗