apollo-client
Guide for building React applications with Apollo Client 4.x. Use this skill when: (1) setting up Apollo Client in a React…
Guide for authoring Apollo Federation subgraph schemas. Use this skill when: (1) creating new subgraph schemas for a federated supergraph, (2) defining or modifying entities with @key, (3) sharing types/fields across subgraphs with @shareable, (4) working with federation
Claude Code
$ npx -y skills add apollographql/skills --skill apollo-federation --agent claude-code
Codex
$ npx skills add apollographql/skills --skill apollo-federation -a codex -y
Cursor
$ npx skills add apollographql/skills --skill apollo-federation -a cursor -y
Gemini CLI
$ npx skills add apollographql/skills --skill apollo-federation -a gemini-cli -y
GitHub Copilot
$ npx skills add apollographql/skills --skill apollo-federation -a github-copilot -y
OpenCode
$ npx skills add apollographql/skills --skill apollo-federation -a opencode -y
Windsurf
$ npx skills add apollographql/skills --skill apollo-federation -a windsurf -y
name: apollo-federation description: > Guide for authoring Apollo Federation subgraph schemas. Use this skill when: (1) creating new subgraph schemas for a federated supergraph, (2) defining or modifying entities with @key, (3) sharing types/fields across subgraphs with @shareable, (4) working with federation directives (@external, @requires, @provides, @override, @inaccessible), (5) troubleshooting composition errors, (6) any task involving federation schema design patterns. license: MIT compatibility: Works with any Federation 2.x compatible subgraph library (Apollo Server, GraphQL Yoga, etc.) metadata: author: apollographql version: "1.0.2" allowed-tools: Bash(rover:*) Read Write Edit Glob Grep
Apollo Federation enables composing multiple GraphQL APIs (subgraphs) into a unified supergraph.
Every Federation 2 subgraph must opt-in via `@link`:
extend schema
@link(url: "https://specs.apollo.dev/federation/v2.12",
import: ["@key", "@shareable", "@external", "@requires", "@provides"])Import only the directives your subgraph uses. The version shown (`v2.12`) is illustrative — check the [Federation changelog](https://www.apollographql.com/docs/graphos/schema-design/federated-schemas/reference/versions) for currently supported versions before copying it verbatim.
> A subgraph's `@link` version is a floor, not the composition version — see > [Federation versions](references/composition.md#federation-versions-floor-vs-composition) > for the full explanation.
| Directive | Purpose | Example | |-----------|---------|---------| | `@key` | Define entity with unique key | `type Product @key(fields: "id")` | | `@shareable` | Allow multiple subgraphs to resolve field | `type Position @shareable { x: Int! }` | | `@external` | Reference field from another subgraph | `weight: Int @external` | | `@requires` | Computed field depending on external fields | `shippingCost: Int @requires(fields: "weight")` | | `@provides` | Conditionally resolve external field | `@provides(fields: "name")` | | `@override` | Migrate field to this subgraph | `@override(from: "Products")` | | `@inaccessible` | Hide from API schema | `internalId: ID! @inaccessible` | | `@interfaceObject` | Add fields to entity interface | `type Media @interfaceObject` |
Detailed documentation for specific topics:
type Product @key(fields: "id") {
id: ID!
name: String!
price: Int
}# Products subgraph
type Product @key(fields: "id") {
id: ID!
name: String!
price: Int
}
# Reviews subgraph
type Product @key(fields: "id") {
id: ID!
reviews: [Review!]!
averageRating: Float
}type Product @key(fields: "id") {
id: ID!
size: Int @external
weight: Int @external
shippingEstimate: String @requires(fields: "size weight")
}type Money @shareable {
amount: Int!
currency: String!
}type Product @key(fields: "id", resolvable: false) {
id: ID!
}A collection of skills for AI coding agents working with Apollo GraphQL tools and technologies. Apollo Skills follow the Agent Skills format and are available on skills.sh.
Guide for building React applications with Apollo Client 4.x. Use this skill when: (1) setting up Apollo Client in a React…
DEPRECATED: superseded by the graphos-factory skill (npx skills add apollographql/skills@graphos-factory), which builds and…
Guide for building Apple-platform applications with Apollo iOS, the strongly-typed GraphQL client for Swift. Use this skill when:…
Guide for building applications with Apollo Kotlin, the GraphQL client library for Android and Kotlin. Use this skill when: (1)…
Guide for using Apollo MCP Server to connect AI agents with GraphQL APIs. Use this skill when: (1) setting up or configuring…
Guide for writing Apollo Router native Rust plugins. Use this skill when: (1) users want to create a new router plugin, (2) users…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.