# stolot0mt0m/claude-chromium-native-messaging architecture

> Architecture diagram of the GitHub repository stolot0mt0m/claude-chromium-native-messaging, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-23). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/stolot0mt0m/claude-chromium-native-messaging
- Repository: https://github.com/stolot0mt0m/claude-chromium-native-messaging

## Overview

This repository configures Chromium browsers to use Claude’s existing native messaging host; it does not implement the host or browser extension. The main workflow is to detect or select browsers, then register the host by installing a browser-specific manifest. The README also documents quick Linux installation and removal. Source excerpts were unavailable, so links show only relationships explicitly described in the README; script-level details and uncertain wiring are omitted.

Main entry points: [`install-linux.sh`](https://github.com/stolot0mt0m/claude-chromium-native-messaging/blob/main/install-linux.sh) (Quick Linux install), [`setup.sh`](https://github.com/stolot0mt0m/claude-chromium-native-messaging/blob/main/setup.sh) (Interactive setup), [`setup.ps1`](https://github.com/stolot0mt0m/claude-chromium-native-messaging/blob/main/setup.ps1) (Windows setup), [`uninstall-linux.sh`](https://github.com/stolot0mt0m/claude-chromium-native-messaging/blob/main/uninstall-linux.sh) (Linux uninstall)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_setup["Browser setup"]
  node_setup_sh["Interactive setup<br/>[setup.sh]"]
  node_setup_ps1["Windows setup<br/>[setup.ps1]"]
  node_linux_install["Quick Linux install<br/>[install-linux.sh]"]
  node_uninstall["Linux uninstall<br/>[uninstall-linux.sh]"]
end

subgraph group_registration["Host registration"]
  node_browser_manifests[("Browser manifest locations")]
end

subgraph group_config["Browser configuration"]
  node_browser_config["Browser definitions<br/>[browsers.json]"]
end

node_user(("User"))
node_installed_browsers["Installed Chromium browsers"]
node_claude_cli["Claude Code CLI"]
node_native_host["Native messaging host"]

node_user -->|"runs setup"| node_setup_sh
node_user -->|"runs setup"| node_setup_ps1
node_user -->|"runs installer"| node_linux_install
node_user -->|"runs remover"| node_uninstall
node_setup_sh -->|"reads definitions"| node_browser_config
node_setup_ps1 -->|"reads definitions"| node_browser_config
node_setup_sh -->|"detects browsers"| node_installed_browsers
node_setup_ps1 -->|"detects browsers"| node_installed_browsers
node_setup_sh -->|"configures selected"| node_browser_manifests
node_setup_ps1 -->|"configures selected"| node_browser_manifests
node_linux_install -->|"checks installation"| node_claude_cli
node_linux_install -->|"verifies host"| node_native_host
node_linux_install -->|"detects browsers"| node_installed_browsers
node_linux_install -->|"copies registration"| node_browser_manifests
node_uninstall -->|"removes registration"| node_browser_manifests

click node_setup_sh "https://github.com/stolot0mt0m/claude-chromium-native-messaging/blob/main/setup.sh"
click node_setup_ps1 "https://github.com/stolot0mt0m/claude-chromium-native-messaging/blob/main/setup.ps1"
click node_linux_install "https://github.com/stolot0mt0m/claude-chromium-native-messaging/blob/main/install-linux.sh"
click node_uninstall "https://github.com/stolot0mt0m/claude-chromium-native-messaging/blob/main/uninstall-linux.sh"
click node_browser_config "https://github.com/stolot0mt0m/claude-chromium-native-messaging/blob/main/config/browsers.json"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_setup_sh,node_setup_ps1,node_linux_install,node_uninstall,node_user,node_installed_browsers toneBlue
class node_browser_manifests toneAmber
class node_browser_config toneMint
class node_claude_cli,node_native_host toneIndigo
```

## Components

### Browser setup

- [Interactive setup](https://github.com/stolot0mt0m/claude-chromium-native-messaging/blob/main/setup.sh): `setup.sh`
- [Windows setup](https://github.com/stolot0mt0m/claude-chromium-native-messaging/blob/main/setup.ps1): `setup.ps1`
- [Quick Linux install](https://github.com/stolot0mt0m/claude-chromium-native-messaging/blob/main/install-linux.sh): `install-linux.sh`
- [Linux uninstall](https://github.com/stolot0mt0m/claude-chromium-native-messaging/blob/main/uninstall-linux.sh): `uninstall-linux.sh`

### Host registration

- **Browser manifest locations**

### Browser configuration

- [Browser definitions](https://github.com/stolot0mt0m/claude-chromium-native-messaging/blob/main/config/browsers.json): `config/browsers.json`

### Other components

- **User**
- **Installed Chromium browsers**
- **Claude Code CLI**
- **Native messaging host**

## Connections

- User → Interactive setup: runs setup
- User → Windows setup: runs setup
- User → Quick Linux install: runs installer
- User → Linux uninstall: runs remover
- Interactive setup → Browser definitions: reads definitions
- Windows setup → Browser definitions: reads definitions
- Interactive setup → Installed Chromium browsers: detects browsers
- Windows setup → Installed Chromium browsers: detects browsers
- Interactive setup → Browser manifest locations: configures selected
- Windows setup → Browser manifest locations: configures selected
- Quick Linux install → Claude Code CLI: checks installation
- Quick Linux install → Native messaging host: verifies host
- Quick Linux install → Installed Chromium browsers: detects browsers
- Quick Linux install → Browser manifest locations: copies registration
- Linux uninstall → Browser manifest locations: removes registration
