본문으로 건너뛰기
cccskills
무료GitHub에 공개

3p

Reference for the 3p / enterprise / inference-gateway deployment of Claude Desktop on Linux - how /etc/claude-desktop/managed-settings.json is read, what "3p mode" changes (separate ~/.config/Claude-3p userData, hidden Chat tab, the false VM-download banner), how Cowork still runs under it, which hardcoded paths are safe vs split under the -3p switch, and how to verify it all from logs. Use when working on managed-settings.json, inferenceProvider/gateway/Bedrock/Vertex configs, the 3p setup SPA (ion-dist), the Claude-3p directory, or debugging managed-deployment Cowork.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

patrickjaja/claude-desktop-extra스타 696(GitHub 696 + cccskills 0)

실행 점수 미검증

설치 방법 보기

포함된 파일(1)

  • SKILL.md7.1 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

3p / enterprise / inference-gateway deployment on Linux

"3p" = third-party / managed deployment: Claude Desktop pointed at a non-Anthropic inference backend (Bedrock, Vertex, Azure, or a self-hosted gateway like LiteLLM) and/or an MDM-managed config. On Linux it is driven by /etc/claude-desktop/managed-settings.json. Minified names below are version-specific (they churn every release - see /linux); anchor on stable strings. Verified against v1.14271.0.

managed-settings.json (/etc/claude-desktop/managed-settings.json)

The official Linux build reads /etc/claude-desktop/managed-settings.json natively - it ships a Linux managed-config reader, so we no longer patch the win32-registry/macOS-plist reader the way the old MSIX pipeline did. (Historical note: on the MSIX, fix_enterprise_config_linux.nim injected a Linux JSON reader for the old enterprise.json path; that patch and path are obsolete now that the official build does it.) Schema is documented in memory project_enterprise_json_schema - the load-bearing facts:

  • Top-level managedMcpServers is an array (name+transport+url/command), NOT an object-keyed mcpServers map (that is silently dropped by the schema parser - no warning).
  • Inference-gateway keys: inferenceProvider ("gateway"/"bedrock"/"vertex"/…), inferenceGatewayBaseUrl, inferenceGatewayApiKey, inferenceGatewayAuthScheme, inferenceModels (array; first is default), disableDeploymentModeChooser:true.
  • Any of inferenceProvider / bootstrapUrl present + (disableDeploymentModeChooser OR persisted deploymentMode!=="1p") flips the app into 3p mode.

What "3p mode" changes (all upstream behavior, not our patches)

EffectWhyOur stance
userData -> ~/.config/Claude-3p/Upstream setPath("userData", base+"-3p") at bootstrap, guarded by !process.env.CLAUDE_USER_DATA_DIR. Logs [custom-3p] ....Intended - isolates 1p login from 3p. Keep it. (To collapse: export CLAUDE_USER_DATA_DIR in the launcher - it short-circuits the suffix. Not done by default.)
Chat tab hiddenchatTabEnabled:A=>A.chatTabEnabled===!0 (strict; default off in 3p). Cowork/Code stay (!==!1).Intended. To restore: add "chatTabEnabled": true to managed-settings.json (config-only, no patch).
3P setup SPA at app://localhost/setup-desktop-3pThe ion-dist config UI.fix_ion_dist_linux + fix_marketplace_linux. Config-key schema in baseline/ION.md.

[custom-3p] in main.log is upstream's own log namespace - do not mistake it for a patch tag.

Cowork under 3p: works the same as 1p, on the official native backend

Cowork runs on the official native Cowork VM backend bundled in the Linux .deb (cowork-linux-helper

  • QEMU/OVMF; requires /dev/kvm) - the same backend 1p uses. There is no separate daemon (the old claude-cowork-service is deprecated). The 3p OAuth bounce (issue #142 / session_stale_relogin) only fires for a genuinely broken token; a logged-in account with credits + valid Anthropic models does not bounce. (Provider model names matter: inferenceModels must be Anthropic models or the config-health gate reports config_model_rejected. A gpt-* entry, or no credits -> billing_error, makes a turn fail and looks like a bounce - it is not.)

The old "Download a one-time package" banner (getDownloadStatus() -> NotDownloaded because the local VM-image check never matched on the MSIX build) is no longer ours to patch: the official Linux build ships the native Cowork VM backend, so the historical fix_cowork_download_status_linux.nim patch is obsolete.

Does the Claude-3p split break anything? (hardcoded-path audit, verified)

No load-bearing path breaks. State isolates between Claude (1p) and Claude-3p (3p) by design; nothing crashes or cross-leaks. Rules:

  • Markers/sockets (quick-entry, SSO-callback) live in $XDG_RUNTIME_DIR (+CLAUDE_PROFILE), not .config -> unaffected by the userData switch.
  • All Electron userData (sessions, logs, claude_desktop_config.json, custom-themes JSON, screenshot restore-token) goes through app.getPath("userData"), which auto-relocates to Claude-3p. So it follows the split (e.g. a custom-theme set in 1p won't carry into 3p - cosmetic only).
  • CLI config uses CLAUDE_CONFIG_DIR (launcher); autostart .desktop files live in the XDG ~/.config/autostart/ spec dir and are CLAUDE_PROFILE-aware - both correctly not tied to the -3p userData.
  • The rule for new patches: write user state via app.getPath("userData") (auto-isolates), never a literal os.homedir()+"/.config/Claude". The Python screenshot fallback ~/.config/Claude/... in js/cu_linux_executor.js is dead code (the JS always passes the real getPath value via CLAUDE_PORTAL_TOKEN_PATH) - harmless, but don't copy that pattern.

Verify it loaded / works (logs at ~/.config/Claude-3p/logs/)

Note the dir: 3p logs to ~/.config/Claude-3p/, NOT ~/.config/Claude/. Reading the wrong dir gives stale/1p evidence.

L=~/.config/Claude-3p/logs/main.log
rg -a 'Enterprise config loaded|custom-3p\] (3P mode active|Credentials loaded|ConfigHealth)' "$L" | tail
# healthy gateway:  [custom-3p] ConfigHealth recomputed { state: 'healthy', provider: 'gateway' }
rg -a 'LocalAgentModeSessions.start|Turn succeeded|cycle_health|session_stale_relogin|config_model_rejected|billing_error' "$L" | tail
# Cowork spawn proof (official native VM backend):
rg -a 'Using Claude VM spawn|Spawn succeeded|vmStarted|Turn succeeded' ~/.config/Claude-3p/logs/cowork_vm_node.log | tail

Related

  • baseline/ION.md - 3P setup SPA bundle, patched patterns, config-key schema (inferenceProvider, deploymentOrganizationUuid, …) and the ~/.config/Claude-3p/claude_desktop_config.json path.
  • memory project_enterprise_json_schema - the exact managed-settings.json shape + how to confirm it loaded.
  • memory issue142_cowork_3p_oauth_regression - the OAuth-bounce mechanism (only bites a broken token).

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Explains the purpose, features, and architecture of claude-desktop-extra - which repackages Anthropic's official Claude Desktop Linux .deb for Arch/Fedora/RHEL/Nix/AppImage and layers Linux-only extras (Computer Use, themes, multi-profile, Quick Entry) on top via surgical JS patches. Use when onboarding, writing docs/READMEs, explaining what the project does, or reasoning about how the official build and our patches fit together.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

patrickjaja/claude-desktop-extra6962026년 10월 26일 업데이트

audit

무료

Full review of the claude-desktop-extra project - patches vs the official Linux .deb (still needed? new ones needed? did the surrounding code change?), docs accuracy, Linux compatibility across the distro/session matrix, and runtime logs. Orchestrates a team of sub-agents and produces a consolidated report with solution approaches.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

patrickjaja/claude-desktop-extra6962026년 10월 26일 업데이트

Take one or more claude-desktop-extra GitHub bug reports from triage to a shipped fix - read, classify ours vs upstream, reproduce without touching the user's running app, spec with the maintainer, implement and review in parallel, verify live, commit, release, and close the loop with the reporter. Self-improving - every run ends by folding what it learned back into this file. Invoke as "/check-issue <issue numbers or URLs>".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

patrickjaja/claude-desktop-extra6962026년 10월 26일 업데이트

comment

무료

Draft (and after approval, post) a reply on a claude-desktop-extra GitHub issue in this project's house voice - short, factual, friendly, no self-blame and no speculation - ending in one copy-pasteable command block that asks the reporter for the evidence we still need. Invoke as "/comment <issue number>".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

patrickjaja/claude-desktop-extra6962026년 10월 26일 업데이트

debug

무료

Debug a problem in claude-desktop-extra by pulling the right local evidence - the most recent local-agent-mode session transcript (your last prompt + the model's tool calls/errors) and the Claude Desktop logs - and asking you for anything else worth collecting for the specific issue. Invoke as "/debug <short description of what's broken>".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

patrickjaja/claude-desktop-extra6962026년 10월 26일 업데이트

deploy

무료

Trigger the claude-desktop-extra Build & Release GitHub Actions pipeline (build-and-release.yml). With no argument the skill inspects the changes since the last release and decides force_rebuild itself; "/deploy force" / "/deploy no-force" override.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

patrickjaja/claude-desktop-extra6962026년 10월 26일 업데이트

patrickjaja의 스킬 모두 보기

이 스킬의 문제 신고