Explains the architecture of claude-desktop-bin (AUR) — the unofficial-but-native Linux app that repackages Anthropic's Electron + app.asar + Claude Code CLI + MCPs on Arch/Wayland/Hyprland. Trigger whenever the user asks about Claude Desktop on Linux, claude-desktop-bin, the Cowork tab, Chat/Cowork/Code tabs, MCP sandboxing on Linux, why MCPs see restricted paths while Bash has full access, how to extend or debug their Claude setup, add custom MCPs, inspect the app.asar, or the Electron-GUI-to-Claude-Code-CLI-backend relationship. Also triggers on "native Linux Claude", "bypass nativo", "Electron + Claude Code backend", Hyprland Claude integration. Even without explicit mention of claude-desktop-bin, use this for questions about the local Claude app's structure, process tree, MCP behavior on Linux, or making Linux more capable than macOS/Windows official builds.
No hay build oficial de Claude Desktop para Linux, pero el paquete AUR claude-desktop-bin re-ensambla las mismas piezas oficiales que usan las builds de macOS/Windows, corriendo directo sobre el stack libre de Linux. El resultado es funcionalmente equivalente — y en muchos aspectos superior para uso agentico — porque no hay capas de seguridad privativas (TCC, Gatekeeper, SmartScreen) encima.
Frase operativa: "mismas piezas, ensamblaje distinto, entorno mas libre".
ps)┌─────────────────────────────────────────────────────┐
│ Capa 1: GUI Electron │
│ /usr/lib/claude-desktop-bin/com.anthropic.* │
│ + app.asar (empaquetado oficial Anthropic) │
│ Electron 39, Wayland, CSD, input v3 │
├─────────────────────────────────────────────────────┤
│ Capa 2: Backend agentico │
│ /home/x/.local/bin/claude (Claude Code CLI) │
│ spawneado por Electron como child process │
│ --model claude-opus-4-7 --permission-prompt-tool │
│ --allowedTools Task,Bash,...,mcp__* │
├─────────────────────────────────────────────────────┤
│ Capa 3: MCPs (procesos hijo del CLI) │
│ filesystem, computer-use, claude-in-chrome, │
│ chrome-devtools, playwright, plex, cowork, │
│ gmail, calendar, asana, supabase, vercel, ... │
└─────────────────────────────────────────────────────┘
La GUI es presentacion. El cerebro es el CLI. Los MCPs son las manos.
El sidebar de claude-desktop-bin tiene tres modos, todos built-in:
</>) — integracion con Claude CodePrueba de que es built-in: el binario registra URL schemes custom operon-artifact://, cowork-artifact://, cowork-file://, app:// directamente en el runtime Electron.
--disable-features=CustomTitlebar
--enable-transparent-visuals
--no-sandbox
--enable-features=UseOzonePlatform,WaylandWindowDecorations,GlobalShortcutsPortal
--ozone-platform=wayland
--enable-wayland-ime
--wayland-text-input-version=3
UseOzonePlatform + ozone-platform=wayland → Wayland-first, no XWaylandWaylandWindowDecorations → CSD (client-side decorations), cero dependencia del WM para bordesGlobalShortcutsPortal → XDG Portal para atajos globales sin rootwayland-text-input-version=3 → IME moderno (chino, japones, acentos)--no-sandbox → necesario para Wayland+Electron, no implica inseguridad del agente| Aspecto | macOS/Windows oficial | Linux AUR |
|---|---|---|
| Bash nativo sin emulacion | ⚠️ (zsh ok / WSL) | ✅ |
| Sin firma/notarization bloqueando binarios | ❌ | ✅ |
| Sin TCC/Full Disk Access/SmartScreen | ❌ | ✅ |
| MCPs custom en minutos | ✅ | ✅✅ (mas facil) |
| Control del WM | ❌ | ✅ (Hyprland/sway/i3/etc.) |
Introspeccion via /proc, systemd, cgroups | ❌ | ✅ |
| XDG Portals estandar | ⚠️ | ✅ |
| Modificar el asar si se requiere | ❌ | ✅ (asar extract + re-empaquetar) |
ps -eo pid,comm,args | grep -iE 'claude\|electron'pacman -Q claude-desktop-bin + /home/x/.local/bin/claude --versioncat /home/x/.config/Claude/*.json o buscar en --allowedTools del proceso--standard-schemes / --secure-schemes del proceso Electron/home/x/.config/Claude/local-agent-mode-sessions/<uuid>/--ozone-platform en launch args, echo $WAYLAND_DISPLAYhyprctl clients | grep -i claudePunto importante: mcp__filesystem__list_allowed_directories devuelve solo uploads/ de la sesion, pero eso es diseño del servidor MCP filesystem, NO del entorno. El agente corre con uid del usuario y puede:
Bash sin restriccion de rutasmkdir /home/x/cualquier-cosals /, cat /etc/os-release, etc.Para ampliar el scope del filesystem MCP: editar settings.json con las rutas que quieras permitir, o usar Bash.
~/.config/Claude/claude_desktop_config.json (o settings.json segun version) con el bloque mcpServers~/.claude/skills/<nombre>/SKILL.md con frontmatter YAMLsettings.json (ver skill update-config)~/.config/hypr/hyprland.conf) apuntando a claude-desktopnpx @electron/asar extract /usr/lib/claude-desktop-bin/app.asar /tmp/claude-app (read-only recommended)com.anthropic.claude-desktop.claude-desktop-bin 1.3109.0-3 (AUR)claude-opus-4-7