# runkids/skillshare architecture

> Architecture diagram of the GitHub repository runkids/skillshare, 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/runkids/skillshare
- Repository: https://github.com/runkids/skillshare

## Overview

skillshare is a cross-platform manager for AI-agent skills and related resources. The main workflow is to maintain shared source content and configuration, then sync skills, agents, extras, MCP connections, and plugins to agent targets; users can also install content from Git hosts and audit it before use. A web dashboard exposes these operations alongside project, hub, backup, and management features. The README documents product capabilities; sampled source confirms selected UI/API, search, preview, hub indexing, MCP, and plugin behavior, so uncertain internal wiring is omitted.

Main entry points: [`cmd/skillshare/main.go`](https://github.com/runkids/skillshare/blob/main/cmd/skillshare/main.go) (CLI commands), [`internal/sync/sync.go`](https://github.com/runkids/skillshare/blob/main/internal/sync/sync.go) (Sync engine), [`internal/server/handler_search.go`](https://github.com/runkids/skillshare/blob/main/internal/server/handler_search.go) (API handlers), [`internal/install/install.go`](https://github.com/runkids/skillshare/blob/main/internal/install/install.go) (Install and update)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["User Interfaces"]
  node_cli["CLI commands<br/>[main.go]"]
  node_web["Web dashboard<br/>[App.tsx]"]
  node_api["UI API client<br/>[client.ts]"]
  node_server["HTTP server<br/>[server.go]"]
  node_handlers["API handlers<br/>[handler_search.go]"]
end

subgraph group_content["Content Workflow"]
  node_source["Shared content<br/>[skill.go]"]
  node_configuration["Targets and projects<br/>[targets.go]"]
  node_sync["Sync engine<br/>[sync.go]"]
  node_audit["Security audit<br/>[audit.go]"]
  node_install["Install and update<br/>[install.go]"]
end

subgraph group_integrations["Agent Integrations"]
  node_targets["AI agent targets"]
  node_mcp["MCP connections<br/>[service.go]"]
  node_plugins["Plugin management<br/>[service.go]"]
  node_extras["Extras and agents<br/>[extras.go]"]
  node_git["Git hosting"]
end

subgraph group_services["Management Services"]
  node_search["Search and preview<br/>[search.go]"]
  node_hub["Hub index<br/>[index.go]"]
  node_backups["Backup and restore<br/>[backup.go]"]
  node_project["Project resources<br/>[project.go]"]
end

node_user(("User"))

node_user -->|"runs commands"| node_cli
node_user -->|"uses dashboard"| node_web
node_web -->|"requests data"| node_api
node_api -->|"sends HTTP"| node_server
node_server -->|"dispatches requests"| node_handlers
node_cli -->|"runs sync"| node_sync
node_sync -->|"reads resources"| node_source
node_sync -->|"reads target settings"| node_configuration
node_sync -->|"syncs resources"| node_targets
node_cli -->|"runs audit"| node_audit
node_cli -->|"installs content"| node_install
node_install -.->|"fetches sources"| node_git
node_install -->|"scans installs"| node_audit
node_cli -->|"manages connections"| node_mcp
node_mcp -->|"writes native configs"| node_targets
node_cli -->|"manages plugins"| node_plugins
node_plugins -->|"applies plugins"| node_targets
node_sync -->|"syncs extras"| node_extras
node_handlers -->|"searches content"| node_search
node_handlers -->|"builds local index"| node_hub
node_search -.->|"fetches previews"| node_git
node_cli -->|"backs up data"| node_backups
node_cli -->|"manages projects"| node_project

click node_cli "https://github.com/runkids/skillshare/blob/main/cmd/skillshare/main.go"
click node_web "https://github.com/runkids/skillshare/blob/main/ui/src/App.tsx"
click node_api "https://github.com/runkids/skillshare/blob/main/ui/src/api/client.ts"
click node_server "https://github.com/runkids/skillshare/blob/main/internal/server/server.go"
click node_handlers "https://github.com/runkids/skillshare/blob/main/internal/server/handler_search.go"
click node_source "https://github.com/runkids/skillshare/blob/main/internal/resource/skill.go"
click node_configuration "https://github.com/runkids/skillshare/blob/main/internal/config/targets.go"
click node_sync "https://github.com/runkids/skillshare/blob/main/internal/sync/sync.go"
click node_audit "https://github.com/runkids/skillshare/blob/main/internal/audit/audit.go"
click node_install "https://github.com/runkids/skillshare/blob/main/internal/install/install.go"
click node_mcp "https://github.com/runkids/skillshare/blob/main/internal/mcp/service.go"
click node_plugins "https://github.com/runkids/skillshare/blob/main/internal/plugin/service.go"
click node_extras "https://github.com/runkids/skillshare/blob/main/internal/sync/extras.go"
click node_search "https://github.com/runkids/skillshare/blob/main/internal/search/search.go"
click node_hub "https://github.com/runkids/skillshare/blob/main/internal/hub/index.go"
click node_backups "https://github.com/runkids/skillshare/blob/main/internal/backup/backup.go"
click node_project "https://github.com/runkids/skillshare/blob/main/internal/config/project.go"

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_cli,node_web,node_api,node_server,node_handlers,node_user toneBlue
class node_source,node_configuration,node_sync,node_audit,node_install toneAmber
class node_targets,node_mcp,node_plugins,node_extras,node_git toneMint
class node_search,node_hub,node_backups,node_project toneRose
```

## Components

### User Interfaces

- [CLI commands](https://github.com/runkids/skillshare/blob/main/cmd/skillshare/main.go): `cmd/skillshare/main.go`
- [Web dashboard](https://github.com/runkids/skillshare/blob/main/ui/src/App.tsx): `ui/src/App.tsx`
- [UI API client](https://github.com/runkids/skillshare/blob/main/ui/src/api/client.ts): `ui/src/api/client.ts`
- [HTTP server](https://github.com/runkids/skillshare/blob/main/internal/server/server.go): `internal/server/server.go`
- [API handlers](https://github.com/runkids/skillshare/blob/main/internal/server/handler_search.go): `internal/server/handler_search.go`

### Content Workflow

- [Shared content](https://github.com/runkids/skillshare/blob/main/internal/resource/skill.go): `internal/resource/skill.go`
- [Targets and projects](https://github.com/runkids/skillshare/blob/main/internal/config/targets.go): `internal/config/targets.go`
- [Sync engine](https://github.com/runkids/skillshare/blob/main/internal/sync/sync.go): `internal/sync/sync.go`
- [Security audit](https://github.com/runkids/skillshare/blob/main/internal/audit/audit.go): `internal/audit/audit.go`
- [Install and update](https://github.com/runkids/skillshare/blob/main/internal/install/install.go): `internal/install/install.go`

### Agent Integrations

- **AI agent targets**
- [MCP connections](https://github.com/runkids/skillshare/blob/main/internal/mcp/service.go): `internal/mcp/service.go`
- [Plugin management](https://github.com/runkids/skillshare/blob/main/internal/plugin/service.go): `internal/plugin/service.go`
- [Extras and agents](https://github.com/runkids/skillshare/blob/main/internal/sync/extras.go): `internal/sync/extras.go`
- **Git hosting**

### Management Services

- [Search and preview](https://github.com/runkids/skillshare/blob/main/internal/search/search.go): `internal/search/search.go`
- [Hub index](https://github.com/runkids/skillshare/blob/main/internal/hub/index.go): `internal/hub/index.go`
- [Backup and restore](https://github.com/runkids/skillshare/blob/main/internal/backup/backup.go): `internal/backup/backup.go`
- [Project resources](https://github.com/runkids/skillshare/blob/main/internal/config/project.go): `internal/config/project.go`

### Other components

- **User**

## Connections

- User → CLI commands: runs commands
- User → Web dashboard: uses dashboard
- Web dashboard → UI API client: requests data
- UI API client → HTTP server: sends HTTP
- HTTP server → API handlers: dispatches requests
- CLI commands → Sync engine: runs sync
- Sync engine → Shared content: reads resources
- Sync engine → Targets and projects: reads target settings
- Sync engine → AI agent targets: syncs resources
- CLI commands → Security audit: runs audit
- CLI commands → Install and update: installs content
- Install and update → Git hosting: fetches sources
- Install and update → Security audit: scans installs
- CLI commands → MCP connections: manages connections
- MCP connections → AI agent targets: writes native configs
- CLI commands → Plugin management: manages plugins
- Plugin management → AI agent targets: applies plugins
- Sync engine → Extras and agents: syncs extras
- API handlers → Search and preview: searches content
- API handlers → Hub index: builds local index
- Search and preview → Git hosting: fetches previews
- CLI commands → Backup and restore: backs up data
- CLI commands → Project resources: manages projects
