# raycast/extensions architecture

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

- Interactive diagram: https://gitdiagram.com/raycast/extensions
- Repository: https://github.com/raycast/extensions

## Overview

Raycast Extensions is a catalog of independent extensions, not one integrated runtime. Users invoke an extension command and receive a result from its feature logic, often backed by a service or local state. The graph highlights representative search, account, and saved-data workflows visible in the supplied tree and excerpts; it does not imply that separate extensions call one another. Coverage is necessarily selective because the repository contains many more extensions than can be meaningfully mapped here.

Main entry points: [`extensions/buildkite/src/search-pipelines.tsx`](https://github.com/raycast/extensions/blob/main/extensions/buildkite/src/search-pipelines.tsx) (Pipeline search), [`extensions/dictionary/src/hooks/useEngine.ts`](https://github.com/raycast/extensions/blob/main/extensions/dictionary/src/hooks/useEngine.ts) (Dictionary lookup), [`extensions/1bookmark/src/components/CachedQueryClientProvider.tsx`](https://github.com/raycast/extensions/blob/main/extensions/1bookmark/src/components/CachedQueryClientProvider.tsx) (Bookmark client provider), [`extensions/any-website-search/src/saved-sites.ts`](https://github.com/raycast/extensions/blob/main/extensions/any-website-search/src/saved-sites.ts) (Saved-site data)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_search["Search Extensions"]
  node_anysearch["Website search"]
  node_siteedit["Manage search sites"]
  node_dict["Dictionary lookup<br/>[useEngine.ts]"]
end

subgraph group_integrations["Service Integrations"]
  node_buildkite["Pipeline search"]
  node_buildclient["Buildkite client"]
  node_pipelines["Pipeline list view"]
  node_buildview["Buildkite view<br/>[View.tsx]"]
  node_copilot["Repository search"]
  node_oauth["GitHub authorization<br/>[oauth.ts]"]
  node_bookmarkclient["Bookmark API client<br/>[client.util.ts]"]
  node_bookmarktrpc["tRPC utilities<br/>[trpc.util.ts]"]
end

subgraph group_state["Saved State"]
  node_sitedata[("Saved-site data<br/>[saved-sites.ts]")]
  node_bookmarkprovider["Bookmark client provider"]
  node_colorstorage["Color history storage<br/>[useColorStorage.ts]"]
  node_colorsaver[("Color persistence<br/>[colorSaver.ts]")]
end

subgraph group_platform["Raycast Platform"]
  node_raycast{{"Raycast runtime"}}
end

node_user(("Raycast user"))
node_externaldict(("Dictionary services"))

node_user -->|"searches sites"| node_anysearch
node_user -->|"configures sites"| node_siteedit
node_siteedit -->|"updates saved sites"| node_sitedata
node_anysearch -->|"loads saved sites"| node_sitedata
node_sitedata -->|"reads and writes files"| node_raycast
node_user -->|"looks up words"| node_dict
node_dict -->|"fetches definitions"| node_externaldict
node_dict -->|"shows lookup status"| node_raycast
node_user -->|"searches pipelines"| node_buildkite
node_buildkite -->|"queries pipelines"| node_buildclient
node_buildkite -->|"renders results"| node_pipelines
node_buildkite -->|"wraps command"| node_buildview
node_user -->|"searches repositories"| node_copilot
node_copilot -->|"gets authorized client"| node_oauth
node_user -.->|"opens bookmarks"| node_bookmarkprovider
node_bookmarkprovider -->|"creates client"| node_bookmarkclient
node_bookmarkprovider -->|"provides client"| node_bookmarktrpc
node_bookmarkclient -->|"uses utilities"| node_bookmarktrpc
node_user -.->|"manages colors"| node_colorstorage
node_colorstorage -->|"loads and saves"| node_colorsaver

click node_anysearch "https://github.com/raycast/extensions/blob/main/extensions/any-website-search/src/search-any-site.tsx"
click node_siteedit "https://github.com/raycast/extensions/blob/main/extensions/any-website-search/src/edit-search-engine.tsx"
click node_sitedata "https://github.com/raycast/extensions/blob/main/extensions/any-website-search/src/saved-sites.ts"
click node_dict "https://github.com/raycast/extensions/blob/main/extensions/dictionary/src/hooks/useEngine.ts"
click node_buildkite "https://github.com/raycast/extensions/blob/main/extensions/buildkite/src/search-pipelines.tsx"
click node_buildclient "https://github.com/raycast/extensions/blob/main/extensions/buildkite/src/api/withBuildkiteClient.tsx"
click node_pipelines "https://github.com/raycast/extensions/blob/main/extensions/buildkite/src/components/PipelineListSection.tsx"
click node_buildview "https://github.com/raycast/extensions/blob/main/extensions/buildkite/src/components/View.tsx"
click node_copilot "https://github.com/raycast/extensions/blob/main/extensions/github-copilot/src/hooks/useRepositorySearch.ts"
click node_oauth "https://github.com/raycast/extensions/blob/main/extensions/github-copilot/src/lib/oauth.ts"
click node_bookmarkprovider "https://github.com/raycast/extensions/blob/main/extensions/1bookmark/src/components/CachedQueryClientProvider.tsx"
click node_bookmarkclient "https://github.com/raycast/extensions/blob/main/extensions/1bookmark/src/utils/client.util.ts"
click node_bookmarktrpc "https://github.com/raycast/extensions/blob/main/extensions/1bookmark/src/utils/trpc.util.ts"
click node_colorstorage "https://github.com/raycast/extensions/blob/main/extensions/color-casket/src/hooks/useColorStorage.ts"
click node_colorsaver "https://github.com/raycast/extensions/blob/main/extensions/color-casket/src/hooks/colorSaver.ts"

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_anysearch,node_siteedit,node_dict,node_user toneBlue
class node_buildkite,node_buildclient,node_pipelines,node_buildview,node_copilot,node_oauth,node_bookmarkclient,node_bookmarktrpc toneAmber
class node_sitedata,node_bookmarkprovider,node_colorstorage,node_colorsaver toneMint
class node_raycast toneRose
class node_externaldict toneIndigo
```

## Components

### Search Extensions

- [Website search](https://github.com/raycast/extensions/blob/main/extensions/any-website-search/src/search-any-site.tsx): `extensions/any-website-search/src/search-any-site.tsx`
- [Manage search sites](https://github.com/raycast/extensions/blob/main/extensions/any-website-search/src/edit-search-engine.tsx): `extensions/any-website-search/src/edit-search-engine.tsx`
- [Dictionary lookup](https://github.com/raycast/extensions/blob/main/extensions/dictionary/src/hooks/useEngine.ts): `extensions/dictionary/src/hooks/useEngine.ts`

### Service Integrations

- [Pipeline search](https://github.com/raycast/extensions/blob/main/extensions/buildkite/src/search-pipelines.tsx): `extensions/buildkite/src/search-pipelines.tsx`
- [Buildkite client](https://github.com/raycast/extensions/blob/main/extensions/buildkite/src/api/withBuildkiteClient.tsx): `extensions/buildkite/src/api/withBuildkiteClient.tsx`
- [Pipeline list view](https://github.com/raycast/extensions/blob/main/extensions/buildkite/src/components/PipelineListSection.tsx): `extensions/buildkite/src/components/PipelineListSection.tsx`
- [Buildkite view](https://github.com/raycast/extensions/blob/main/extensions/buildkite/src/components/View.tsx): `extensions/buildkite/src/components/View.tsx`
- [Repository search](https://github.com/raycast/extensions/blob/main/extensions/github-copilot/src/hooks/useRepositorySearch.ts): `extensions/github-copilot/src/hooks/useRepositorySearch.ts`
- [GitHub authorization](https://github.com/raycast/extensions/blob/main/extensions/github-copilot/src/lib/oauth.ts): `extensions/github-copilot/src/lib/oauth.ts`
- [Bookmark API client](https://github.com/raycast/extensions/blob/main/extensions/1bookmark/src/utils/client.util.ts): `extensions/1bookmark/src/utils/client.util.ts`
- [tRPC utilities](https://github.com/raycast/extensions/blob/main/extensions/1bookmark/src/utils/trpc.util.ts): `extensions/1bookmark/src/utils/trpc.util.ts`

### Saved State

- [Saved-site data](https://github.com/raycast/extensions/blob/main/extensions/any-website-search/src/saved-sites.ts): `extensions/any-website-search/src/saved-sites.ts`
- [Bookmark client provider](https://github.com/raycast/extensions/blob/main/extensions/1bookmark/src/components/CachedQueryClientProvider.tsx): `extensions/1bookmark/src/components/CachedQueryClientProvider.tsx`
- [Color history storage](https://github.com/raycast/extensions/blob/main/extensions/color-casket/src/hooks/useColorStorage.ts): `extensions/color-casket/src/hooks/useColorStorage.ts`
- [Color persistence](https://github.com/raycast/extensions/blob/main/extensions/color-casket/src/hooks/colorSaver.ts): `extensions/color-casket/src/hooks/colorSaver.ts`

### Raycast Platform

- **Raycast runtime**

### Other components

- **Raycast user**
- **Dictionary services**

## Connections

- Raycast user → Website search: searches sites
- Raycast user → Manage search sites: configures sites (evidence: `extensions/any-website-search/src/edit-search-engine.tsx`)
- Manage search sites → Saved-site data: updates saved sites (evidence: `extensions/any-website-search/src/edit-search-engine.tsx`)
- Website search → Saved-site data: loads saved sites (evidence: `extensions/any-website-search/src/search-any-site.tsx`)
- Saved-site data → Raycast runtime: reads and writes files (evidence: `extensions/any-website-search/src/saved-sites.ts`)
- Raycast user → Dictionary lookup: looks up words (evidence: `extensions/dictionary/src/hooks/useEngine.ts`)
- Dictionary lookup → Dictionary services: fetches definitions (evidence: `extensions/dictionary/src/hooks/useEngine.ts`)
- Dictionary lookup → Raycast runtime: shows lookup status (evidence: `extensions/dictionary/src/hooks/useEngine.ts`)
- Raycast user → Pipeline search: searches pipelines (evidence: `extensions/buildkite/src/search-pipelines.tsx`)
- Pipeline search → Buildkite client: queries pipelines (evidence: `extensions/buildkite/src/search-pipelines.tsx`)
- Pipeline search → Pipeline list view: renders results (evidence: `extensions/buildkite/src/search-pipelines.tsx`)
- Pipeline search → Buildkite view: wraps command (evidence: `extensions/buildkite/src/search-pipelines.tsx`)
- Raycast user → Repository search: searches repositories (evidence: `extensions/github-copilot/src/hooks/useRepositorySearch.ts`)
- Repository search → GitHub authorization: gets authorized client (evidence: `extensions/github-copilot/src/hooks/useRepositorySearch.ts`)
- Raycast user → Bookmark client provider: opens bookmarks
- Bookmark client provider → Bookmark API client: creates client (evidence: `extensions/1bookmark/src/components/CachedQueryClientProvider.tsx`)
- Bookmark client provider → tRPC utilities: provides client (evidence: `extensions/1bookmark/src/components/CachedQueryClientProvider.tsx`)
- Bookmark API client → tRPC utilities: uses utilities (evidence: `extensions/1bookmark/src/utils/client.util.ts`)
- Raycast user → Color history storage: manages colors
- Color history storage → Color persistence: loads and saves (evidence: `extensions/color-casket/src/hooks/useColorStorage.ts`)
