# cheriwen/codexplusplus architecture

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

- Interactive diagram: https://gitdiagram.com/cheriwen/codexplusplus
- Repository: https://github.com/cheriwen/codexplusplus

## Overview

Codex++ is an external launcher and management tool that enhances Codex without modifying its installation: the launcher starts Codex and injects scripts through CDP, while the manager configures features and runs maintenance actions. The main path is manager or silent-launcher entry → Rust backend → Codex launch/injection and bridge requests. Major documented branches include relay configuration, scripts, session tools, provider sync, worktrees, Zed remote opening, and updates. Some branches are represented from README claims and tree paths; their internal wiring was not sampled.

Main entry points: [`crates/codex-plus-core/src/launcher.rs`](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/launcher.rs) (Launch orchestration), [`crates/codex-plus-core/src/routes.rs`](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/routes.rs) (Bridge request routes), [`apps/codex-plus-launcher/src/main.rs`](https://github.com/cheriwen/codexplusplus/blob/main/apps/codex-plus-launcher/src/main.rs) (Silent launcher), [`apps/codex-plus-manager/src/App.tsx`](https://github.com/cheriwen/codexplusplus/blob/main/apps/codex-plus-manager/src/App.tsx) (Manager UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["User entrypoints"]
  node_silent["Silent launcher<br/>[main.rs]"]
  node_manager["Manager UI<br/>[App.tsx]"]
end

subgraph group_control["Management control"]
  node_tauri["Manager commands<br/>[commands.rs]"]
  node_installer["Entry management<br/>[mod.rs]"]
  node_settings["Settings and profiles<br/>[settings.rs]"]
  node_updates["Update checks<br/>[update.rs]"]
end

subgraph group_runtime["Launch and injection"]
  node_launcher["Launch orchestration<br/>[launcher.rs]"]
  node_cdp["CDP injection<br/>[cdp.rs]"]
  node_bridge["Injected bridge<br/>[bridge.rs]"]
  node_routes["Bridge request routes<br/>[routes.rs]"]
end

subgraph group_features["Enhancement features"]
  node_proxy["Relay proxy<br/>[proxy.rs]"]
  node_scripts["User scripts<br/>[user_scripts.rs]"]
  node_enhance["UI enhancements<br/>[assets.rs]"]
  node_worktree["Upstream worktrees"]
  node_zedopen["Zed remote open<br/>[zed_remote.rs]"]
end

subgraph group_data["Session data"]
  node_databridge["Session data service<br/>[main.rs]"]
  node_storage["SQLite session adapter<br/>[storage.rs]"]
  node_backup["Session backups<br/>[backup.rs]"]
  node_sync["Provider sync<br/>[provider_sync.rs]"]
end

node_user(("User"))
node_codex["Codex App"]
node_api["Relay API"]
node_github["GitHub Releases"]
node_zed["Zed Remote"]

node_user -->|"starts silently"| node_silent
node_user -->|"opens controls"| node_manager
node_manager -->|"invokes commands"| node_tauri
node_tauri -->|"reads and writes"| node_settings
node_tauri -->|"manages entrypoints"| node_installer
node_silent -->|"starts launch"| node_launcher
node_launcher -->|"loads configuration"| node_settings
node_launcher -->|"launches process"| node_codex
node_launcher -->|"requests injection"| node_cdp
node_cdp -->|"injects via CDP"| node_codex
node_cdp -->|"installs bridge"| node_bridge
node_bridge -->|"dispatches requests"| node_routes
node_routes -->|"manages scripts"| node_scripts
node_routes -->|"creates worktrees"| node_worktree
node_routes -->|"requests remote open"| node_zedopen
node_routes -->|"dispatches session actions"| node_databridge
node_databridge -->|"runs data operations"| node_storage
node_storage -->|"writes and restores"| node_backup
node_launcher -.->|"syncs before launch"| node_sync
node_launcher -.->|"starts relay mode"| node_proxy
node_proxy -.->|"forwards requests"| node_api
node_launcher -.->|"injects enhancement assets"| node_enhance
node_zedopen -.->|"opens remote context"| node_zed
node_manager -->|"checks updates"| node_updates
node_silent -->|"checks updates"| node_updates
node_updates -->|"checks releases"| node_github

click node_silent "https://github.com/cheriwen/codexplusplus/blob/main/apps/codex-plus-launcher/src/main.rs"
click node_manager "https://github.com/cheriwen/codexplusplus/blob/main/apps/codex-plus-manager/src/App.tsx"
click node_tauri "https://github.com/cheriwen/codexplusplus/blob/main/apps/codex-plus-manager/src-tauri/src/commands.rs"
click node_installer "https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/install/mod.rs"
click node_settings "https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/settings.rs"
click node_launcher "https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/launcher.rs"
click node_cdp "https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/cdp.rs"
click node_bridge "https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/bridge.rs"
click node_routes "https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/routes.rs"
click node_proxy "https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/proxy.rs"
click node_scripts "https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/user_scripts.rs"
click node_enhance "https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/assets.rs"
click node_worktree "https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/upstream_worktree.rs"
click node_zedopen "https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/zed_remote.rs"
click node_updates "https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/update.rs"
click node_databridge "https://github.com/cheriwen/codexplusplus/blob/main/apps/codex-plus-launcher/src/main.rs"
click node_storage "https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-data/src/storage.rs"
click node_backup "https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-data/src/backup.rs"
click node_sync "https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-data/src/provider_sync.rs"

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_silent,node_manager,node_user toneBlue
class node_tauri,node_installer,node_settings,node_updates toneAmber
class node_launcher,node_cdp,node_bridge,node_routes,node_api toneMint
class node_proxy,node_scripts,node_enhance,node_worktree,node_zedopen toneRose
class node_databridge,node_storage,node_backup,node_sync,node_codex,node_github,node_zed toneIndigo
```

## Components

### User entrypoints

- [Silent launcher](https://github.com/cheriwen/codexplusplus/blob/main/apps/codex-plus-launcher/src/main.rs): `apps/codex-plus-launcher/src/main.rs`
- [Manager UI](https://github.com/cheriwen/codexplusplus/blob/main/apps/codex-plus-manager/src/App.tsx): `apps/codex-plus-manager/src/App.tsx`

### Management control

- [Manager commands](https://github.com/cheriwen/codexplusplus/blob/main/apps/codex-plus-manager/src-tauri/src/commands.rs): `apps/codex-plus-manager/src-tauri/src/commands.rs`
- [Entry management](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/install/mod.rs): `crates/codex-plus-core/src/install/mod.rs`
- [Settings and profiles](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/settings.rs): `crates/codex-plus-core/src/settings.rs`
- [Update checks](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/update.rs): `crates/codex-plus-core/src/update.rs`

### Launch and injection

- [Launch orchestration](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/launcher.rs): `crates/codex-plus-core/src/launcher.rs`
- [CDP injection](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/cdp.rs): `crates/codex-plus-core/src/cdp.rs`
- [Injected bridge](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/bridge.rs): `crates/codex-plus-core/src/bridge.rs`
- [Bridge request routes](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/routes.rs): `crates/codex-plus-core/src/routes.rs`

### Enhancement features

- [Relay proxy](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/proxy.rs): `crates/codex-plus-core/src/proxy.rs`
- [User scripts](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/user_scripts.rs): `crates/codex-plus-core/src/user_scripts.rs`
- [UI enhancements](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/assets.rs): `crates/codex-plus-core/src/assets.rs`
- [Upstream worktrees](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/upstream_worktree.rs): `crates/codex-plus-core/src/upstream_worktree.rs`
- [Zed remote open](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-core/src/zed_remote.rs): `crates/codex-plus-core/src/zed_remote.rs`

### Session data

- [Session data service](https://github.com/cheriwen/codexplusplus/blob/main/apps/codex-plus-launcher/src/main.rs): `apps/codex-plus-launcher/src/main.rs`
- [SQLite session adapter](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-data/src/storage.rs): `crates/codex-plus-data/src/storage.rs`
- [Session backups](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-data/src/backup.rs): `crates/codex-plus-data/src/backup.rs`
- [Provider sync](https://github.com/cheriwen/codexplusplus/blob/main/crates/codex-plus-data/src/provider_sync.rs): `crates/codex-plus-data/src/provider_sync.rs`

### Other components

- **User**
- **Codex App**
- **Relay API**
- **GitHub Releases**
- **Zed Remote**

## Connections

- User → Silent launcher: starts silently
- User → Manager UI: opens controls
- Manager UI → Manager commands: invokes commands
- Manager commands → Settings and profiles: reads and writes
- Manager commands → Entry management: manages entrypoints
- Silent launcher → Launch orchestration: starts launch
- Launch orchestration → Settings and profiles: loads configuration
- Launch orchestration → Codex App: launches process
- Launch orchestration → CDP injection: requests injection
- CDP injection → Codex App: injects via CDP
- CDP injection → Injected bridge: installs bridge
- Injected bridge → Bridge request routes: dispatches requests
- Bridge request routes → User scripts: manages scripts
- Bridge request routes → Upstream worktrees: creates worktrees
- Bridge request routes → Zed remote open: requests remote open
- Bridge request routes → Session data service: dispatches session actions
- Session data service → SQLite session adapter: runs data operations
- SQLite session adapter → Session backups: writes and restores
- Launch orchestration → Provider sync: syncs before launch
- Launch orchestration → Relay proxy: starts relay mode
- Relay proxy → Relay API: forwards requests
- Launch orchestration → UI enhancements: injects enhancement assets
- Zed remote open → Zed Remote: opens remote context
- Manager UI → Update checks: checks updates
- Silent launcher → Update checks: checks updates
- Update checks → GitHub Releases: checks releases
