# warshoow/claude-kit architecture

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

- Interactive diagram: https://gitdiagram.com/warshoow/claude-kit
- Repository: https://github.com/warshoow/claude-kit
- Video tour (about a minute): https://gitdiagram.com/warshoow/claude-kit/video

## Overview

claude-kit is a desktop app and CLI for managing Claude Code assets as reusable bundles and applying them to projects. The main workflow is browse or create/import assets, curate them into bundles, then apply a bundle to a selected project; project assets are linked into `.claude/`, with hooks and MCP configs handled specially. Separate capabilities include marketplace updates with review, AI generation/refinement and bundle harmonization, and bundle sharing. The graph follows the Vue-to-Tauri-to-core boundary; README-described features with unsampled implementation are shown only at their documented subsystem level.

Main entry points: [`src-tauri/src/main.rs`](https://github.com/warshoow/claude-kit/blob/master/src-tauri/src/main.rs) (Command bridge), [`crates/claude-kit-core/src/library.rs`](https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/library.rs) (Asset library), [`src/router/index.ts`](https://github.com/warshoow/claude-kit/blob/master/src/router/index.ts) (View routing), [`src/views`](https://github.com/warshoow/claude-kit/tree/master/src/views) (Bundle workflows)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Desktop interface"]
  node_app["App shell<br/>[App.vue]"]
  node_router["View routing<br/>[index.ts]"]
  node_browse["Browse and edit"]
  node_bundle_ui["Bundle workflows"]
  node_project_ui["Project dashboard<br/>[ProjectView.vue]"]
  node_settings_ui["Settings<br/>[SettingsView.vue]"]
  node_state["Application state<br/>[app.ts]"]
  node_api["Tauri API client<br/>[api.ts]"]
  node_tauri["Command bridge<br/>[main.rs]"]
end

subgraph group_library["Asset library"]
  node_library_core["Asset library<br/>[library.rs]"]
  node_library_store[("Library files")]
  node_marketplace_core["Marketplace import<br/>[marketplace.rs]"]
  node_updates["Plugin updates<br/>[update.rs]"]
end

subgraph group_bundles["Bundles and projects"]
  node_bundles_core["Bundle management<br/>[bundles.rs]"]
  node_bundle_store[("Bundle files")]
  node_project_core["Project apply<br/>[project.rs]"]
  node_project_files[("Claude project files")]
  node_recommend["Bundle recommendations<br/>[recommend.rs]"]
  node_harmonize["Bundle harmonization<br/>[harmonize.rs]"]
  node_bundle_chat["AI bundle chat<br/>[bundle_chat.rs]"]
end

subgraph group_integrations["External services"]
  node_ai_core["AI backend<br/>[ai.rs]"]
  node_settings_core["App settings<br/>[settings.rs]"]
  node_marketplaces["Marketplace catalogs"]
  node_ai_service["Claude CLI or API"]
end

node_user(("Developer"))
node_cli["Terminal CLI<br/>[main.rs]"]

node_user -->|"uses"| node_app
node_app -->|"navigates"| node_router
node_router -->|"routes to"| node_browse
node_router -->|"routes to"| node_bundle_ui
node_router -->|"routes to"| node_project_ui
node_router -->|"routes to"| node_settings_ui
node_browse -->|"manages assets"| node_state
node_bundle_ui -->|"manages bundles"| node_state
node_project_ui -->|"manages project"| node_state
node_settings_ui -->|"invokes"| node_api
node_state -->|"invokes"| node_api
node_api -->|"invokes commands"| node_tauri
node_tauri -->|"dispatches"| node_library_core
node_tauri -->|"dispatches"| node_marketplace_core
node_tauri -->|"dispatches"| node_updates
node_tauri -->|"dispatches"| node_bundles_core
node_tauri -->|"dispatches"| node_project_core
node_tauri -->|"dispatches"| node_recommend
node_tauri -->|"dispatches"| node_harmonize
node_tauri -->|"dispatches"| node_bundle_chat
node_tauri -->|"dispatches"| node_settings_core
node_library_core -->|"reads and writes"| node_library_store
node_marketplace_core -->|"imports assets"| node_library_core
node_marketplace_core -->|"loads catalogs"| node_marketplaces
node_updates -->|"fetches updates"| node_marketplaces
node_updates -->|"updates assets"| node_library_core
node_bundles_core -->|"reads and writes"| node_bundle_store
node_bundle_ui -->|"requests review"| node_harmonize
node_bundle_ui -->|"sends prompts"| node_bundle_chat
node_bundle_ui -->|"requests suggestions"| node_recommend
node_harmonize -->|"requests rewrites"| node_ai_core
node_bundle_chat -->|"requests generation"| node_ai_core
node_ai_core -.->|"streams requests"| node_ai_service
node_settings_core -->|"configures backend"| node_ai_core
node_project_core -->|"reads assets"| node_library_store
node_project_core -->|"links and merges"| node_project_files
node_tauri -->|"initializes layout"| node_library_core
node_cli -->|"reads bundle"| node_bundles_core
node_cli -->|"applies and inspects"| node_project_core
node_cli -->|"ensures library"| node_library_core

click node_app "https://github.com/warshoow/claude-kit/blob/master/src/App.vue"
click node_router "https://github.com/warshoow/claude-kit/blob/master/src/router/index.ts"
click node_browse "https://github.com/warshoow/claude-kit/tree/master/src/views"
click node_bundle_ui "https://github.com/warshoow/claude-kit/tree/master/src/views"
click node_project_ui "https://github.com/warshoow/claude-kit/blob/master/src/views/ProjectView.vue"
click node_settings_ui "https://github.com/warshoow/claude-kit/blob/master/src/views/SettingsView.vue"
click node_state "https://github.com/warshoow/claude-kit/blob/master/src/stores/app.ts"
click node_api "https://github.com/warshoow/claude-kit/blob/master/src/lib/api.ts"
click node_tauri "https://github.com/warshoow/claude-kit/blob/master/src-tauri/src/main.rs"
click node_library_core "https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/library.rs"
click node_marketplace_core "https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/marketplace.rs"
click node_updates "https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/update.rs"
click node_bundles_core "https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/bundles.rs"
click node_project_core "https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/project.rs"
click node_recommend "https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/recommend.rs"
click node_harmonize "https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/harmonize.rs"
click node_bundle_chat "https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/bundle_chat.rs"
click node_ai_core "https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/ai.rs"
click node_settings_core "https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/settings.rs"
click node_cli "https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-cli/src/main.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_app,node_router,node_browse,node_bundle_ui,node_project_ui,node_settings_ui,node_state,node_api,node_tauri toneBlue
class node_library_core,node_library_store,node_marketplace_core,node_updates toneAmber
class node_bundles_core,node_bundle_store,node_project_core,node_project_files,node_recommend,node_harmonize,node_bundle_chat toneMint
class node_ai_core,node_settings_core,node_marketplaces,node_ai_service toneRose
class node_user toneIndigo
class node_cli toneTeal
```

## Components

### Desktop interface

- [App shell](https://github.com/warshoow/claude-kit/blob/master/src/App.vue): `src/App.vue`
- [View routing](https://github.com/warshoow/claude-kit/blob/master/src/router/index.ts): `src/router/index.ts`
- [Browse and edit](https://github.com/warshoow/claude-kit/tree/master/src/views): `src/views`
- [Bundle workflows](https://github.com/warshoow/claude-kit/tree/master/src/views): `src/views`
- [Project dashboard](https://github.com/warshoow/claude-kit/blob/master/src/views/ProjectView.vue): `src/views/ProjectView.vue`
- [Settings](https://github.com/warshoow/claude-kit/blob/master/src/views/SettingsView.vue): `src/views/SettingsView.vue`
- [Application state](https://github.com/warshoow/claude-kit/blob/master/src/stores/app.ts): `src/stores/app.ts`
- [Tauri API client](https://github.com/warshoow/claude-kit/blob/master/src/lib/api.ts): `src/lib/api.ts`
- [Command bridge](https://github.com/warshoow/claude-kit/blob/master/src-tauri/src/main.rs): `src-tauri/src/main.rs`

### Asset library

- [Asset library](https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/library.rs): `crates/claude-kit-core/src/library.rs`
- **Library files**
- [Marketplace import](https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/marketplace.rs): `crates/claude-kit-core/src/marketplace.rs`
- [Plugin updates](https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/update.rs): `crates/claude-kit-core/src/update.rs`

### Bundles and projects

- [Bundle management](https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/bundles.rs): `crates/claude-kit-core/src/bundles.rs`
- **Bundle files**
- [Project apply](https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/project.rs): `crates/claude-kit-core/src/project.rs`
- **Claude project files**
- [Bundle recommendations](https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/recommend.rs): `crates/claude-kit-core/src/recommend.rs`
- [Bundle harmonization](https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/harmonize.rs): `crates/claude-kit-core/src/harmonize.rs`
- [AI bundle chat](https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/bundle_chat.rs): `crates/claude-kit-core/src/bundle_chat.rs`

### External services

- [AI backend](https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/ai.rs): `crates/claude-kit-core/src/ai.rs`
- [App settings](https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-core/src/settings.rs): `crates/claude-kit-core/src/settings.rs`
- **Marketplace catalogs**
- **Claude CLI or API**

### Other components

- **Developer**
- [Terminal CLI](https://github.com/warshoow/claude-kit/blob/master/crates/claude-kit-cli/src/main.rs): `crates/claude-kit-cli/src/main.rs`

## Connections

- Developer → App shell: uses
- App shell → View routing: navigates
- View routing → Browse and edit: routes to
- View routing → Bundle workflows: routes to
- View routing → Project dashboard: routes to
- View routing → Settings: routes to
- Browse and edit → Application state: manages assets
- Bundle workflows → Application state: manages bundles
- Project dashboard → Application state: manages project
- Settings → Tauri API client: invokes
- Application state → Tauri API client: invokes
- Tauri API client → Command bridge: invokes commands
- Command bridge → Asset library: dispatches
- Command bridge → Marketplace import: dispatches
- Command bridge → Plugin updates: dispatches
- Command bridge → Bundle management: dispatches
- Command bridge → Project apply: dispatches
- Command bridge → Bundle recommendations: dispatches
- Command bridge → Bundle harmonization: dispatches
- Command bridge → AI bundle chat: dispatches
- Command bridge → App settings: dispatches
- Asset library → Library files: reads and writes
- Marketplace import → Asset library: imports assets
- Marketplace import → Marketplace catalogs: loads catalogs
- Plugin updates → Marketplace catalogs: fetches updates
- Plugin updates → Asset library: updates assets
- Bundle management → Bundle files: reads and writes
- Bundle workflows → Bundle harmonization: requests review
- Bundle workflows → AI bundle chat: sends prompts
- Bundle workflows → Bundle recommendations: requests suggestions
- Bundle harmonization → AI backend: requests rewrites
- AI bundle chat → AI backend: requests generation
- AI backend → Claude CLI or API: streams requests
- App settings → AI backend: configures backend
- Project apply → Library files: reads assets
- Project apply → Claude project files: links and merges
- Command bridge → Asset library: initializes layout
- Terminal CLI → Bundle management: reads bundle
- Terminal CLI → Project apply: applies and inspects
- Terminal CLI → Asset library: ensures library
