Agent skill

Apollo Router

by apollographql in apollographql/skills

Version-aware guide for configuring and running Apollo Router for federated GraphQL supergraphs.

MITAuto-check passedBackend & APIs

Install Apollo Router

skills CLI
$ npx skills add apollographql/skills --skill apollo-router -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install apollographql/skills apollo-router --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/apollographql/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/apollo-router .claude/skills/apollo-router && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
apollo-router
GitHub stars
117
Token cost
~5.4k tokens
SKILL.md length
2,272 words
Files
31 (incl. references)
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

Version-aware guide for configuring and running Apollo Router for federated GraphQL supergraphs.

  • Works in 7 steps: Version Selection → Environment Selection → Feature Selection → …
  • Setting up Apollo Router to run a supergraph
  • SKILL.md covers Step 1: Version Selection, Step 2: Environment Selection, Step 3: Feature Selection and Step 4: Gather Parameters, plus 11 more sections
  • Needs APOLLO_KEY

What it does

Apollo Router is an agent skill from apollographql/skills. Version-aware guide for configuring and running Apollo Router for federated GraphQL supergraphs. Generates correct YAML for both Router v1.x and v2.x. Use this skill when: (1) setting up Apollo Router to run a supergraph, (2) configuring routing, headers, or CORS, (3) implementing custom plugins (Rhai scripts or coprocessors), (4) configuring telemetry (tracing, metrics, logging), (5) troubleshooting Router performance or connectivity issues, (6) securing the graph with JWT, declarative field-level authorization…

Its SKILL.md is about 5.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 34 other files, including reference files (for example `divergence-map.md`, `references/configuration.md` and `references/connectors.md`). Compatibility notes: Linux/macOS/Windows. Requires a composed supergraph schema from Rover or GraphOS.

It sits in Backend & APIs, covering Authentication, GraphQL and Authorization and RBAC. It works with Apollo GraphQL and GraphQL. The repository describes itself as: Apollo GraphQL Agent Skills. The licence is MIT.

When your agent uses it

  • Setting up Apollo Router to run a supergraph
  • Configuring routing
  • Implementing custom plugins (Rhai scripts
  • Configuring telemetry (tracing

Example prompts

  • “/apollo-router”

Requirements

  • Docker
  • A credential in APOLLO_KEY
  • Compatibility (from SKILL.md): Linux/macOS/Windows. Requires a composed supergraph schema from Rover or GraphOS.
  • Pre-approved tools (allowed-tools): Bash(router:*), Bash(./router:*), Bash(rover:*), Bash(curl:*), Bash(docker:*), Read, Write, Edit, Glob, Grep

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Version Selection
  2. Environment Selection
  3. Feature Selection
  4. Gather Parameters
  5. Generate Config
  6. Validate
  7. Conditional Next Steps Handoff

What it can do on your machine

Read from SKILL.md and the folder at commit 5f02fcf. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(router:*)
    • Bash(./router:*)
    • Bash(rover:*)
    • Bash(curl:*)
    • Bash(docker:*)
    • Read
    • Write
    • Edit
    • Glob
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • APOLLO_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Linux/macOS/Windows. Requires a composed supergraph schema from Rover or GraphOS.

    From compatibility in the SKILL.md frontmatter.

Context cost

Apollo Router loads about 5.4k tokens when it runs, and up to ~20k if it reads all its reference files. Until then it costs about 163 tokens; SKILL.md has 2,272 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~163
When it runs · the whole SKILL.md, loaded when a task matches
~5.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~20k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from apollographql/skills at commit 5f02fcf, republished under its MIT licence (© apollographql). 2,272 words, ~5,387 tokens.

Download SKILL.mdSave it as .claude/skills/apollo-router/SKILL.md (or your agent's skills folder). This skill also uses 30 other files; get the full folder from GitHub.
name
apollo-router
description
Version-aware guide for configuring and running Apollo Router for federated GraphQL supergraphs. Generates correct YAML for both Router v1.x and v2.x. Use this skill when: (1) setting up Apollo Router to run a supergraph, (2) configuring routing, headers, or CORS, (3) implementing custom plugins (Rhai scripts or coprocessors), (4) configuring telemetry (tracing, metrics, logging), (5) troubleshooting Router performance or connectivity issues, (6) securing the graph with JWT, declarative field-level authorization directives, or persisted-query safelisting, (7) managing router.yaml as version-controlled config with CI/CD validation.
allowed-tools
Bash(router:*), Bash(./router:*), Bash(rover:*), Bash(curl:*), Bash(docker:*), Read, Write, Edit, Glob, Grep
compatibility
Linux/macOS/Windows. Requires a composed supergraph schema from Rover or GraphOS.
license
MIT
metadata.author
apollographql
metadata.version
2.5.0

Apollo Router Config Generator

Apollo Router is a high-performance graph router written in Rust for running Apollo Federation 2 supergraphs. It sits in front of your subgraphs and handles query planning, execution, and response composition.

This skill generates version-correct configuration. Router v1 and v2 have incompatible config schemas in several critical sections (CORS, JWT auth, connectors). Always determine the target version before generating any config.

Step 1: Version Selection

Ask the user before generating any config:

Which Apollo Router version are you targeting?

  [1] Router v2.x (recommended — current LTS, required for Connectors)
  [2] Router v1.x (legacy — end-of-support announced, security patches only)
  [3] Not sure — help me decide

If the user picks [3], display:

Quick guide:

  • Pick v2 if: you're starting fresh, using Apollo Connectors for REST APIs,
    or want backpressure-based overload protection.
  • Pick v1 if: you have an existing deployment and haven't migrated yet.
    Note: Apollo ended active support for v1.x. The v2.10 LTS (Dec 2025)
    is the current baseline. Migration is strongly recommended.

  Tip: If you have an existing router.yaml, you can auto-migrate it:
    router config upgrade router.yaml

Store the selection as ROUTER_VERSION=v1|v2 to gate all subsequent template generation.

Step 2: Environment Selection

Ask: Production or Development?

  • Production: security-hardened defaults (introspection off, sandbox off, homepage off, subgraph errors hidden, auth required, health check on)
  • Development: open defaults (introspection on, sandbox on, errors exposed, text logging)

Load the appropriate base template from:

  • templates/{version}/production.yaml
  • templates/{version}/development.yaml

Step 3: Feature Selection

Ask which features to include:

  • JWT Authentication
  • Declarative Authorization (field-level @authenticated / @requiresScopes / @policy directives — requires GraphOS + request claims)
  • CORS (almost always yes for browser clients)
  • Operation Limits
  • Traffic Shaping / Rate Limiting
  • Telemetry (Prometheus, OTLP tracing, JSON logging)
  • APQ (Automatic Persisted Queries — performance/bandwidth only, NOT a security control)
  • Persisted Query Safelisting (GraphOS PQL operation allowlist — a security control; distinct from APQ)
  • Connectors (REST API integration — Router v2 only; GA key is connectors, early v2 preview key was preview_connectors)
  • Subscriptions
  • Header Propagation
  • Response Caching (entity + root field caching with Redis — Router v2 only, v2.6.0+)

Step 4: Gather Parameters

For each selected feature, collect required values.

  • Use section templates from templates/{version}/sections/ for auth, cors, headers, limits, telemetry, and traffic-shaping.
  • For Connectors in v2, use templates/v2/sections/connectors.yaml as the source.
  • For APQ and subscriptions, copy the snippet from the selected base template (templates/{version}/production.yaml or templates/{version}/development.yaml) or from references.
  • Only offer Connectors when ROUTER_VERSION=v2.
CORS
  • List of allowed origins (never use "*" for production)
JWT Authentication
  • JWKS URL
  • Issuer(s) — note: v1 uses singular issuer, v2 uses plural issuers array
Declarative Authorization (field-level)

Field- and type-level access control enforced in the router, via the @authenticated, @requiresScopes, and @policy directives applied in subgraph schemas. This is the layer that the global authorization.require_authentication gate cannot express. It is a GraphOS feature (Enterprise; Developer/Standard plans require Router v2.6.0+) and requires a router connected to GraphOS. Directives are enabled by default — config only turns them off.

Confirm prerequisites before recommending these:

  • Router connected to GraphOS (Router v1.29.1+; Developer/Standard plans need v2.6.0+).
  • A claims source. Directives evaluate the claims at the apollo::authentication::jwt_claims context key. Populate it via JWT authentication (configure that feature too) or a coprocessor that injects claims.
  • @policy additionally requires a Supergraph plugin (Rhai script or coprocessor) to evaluate each policy — the router extracts required policies into apollo::authorization::required_policies but does not decide them itself.

Ask:

  • Which fields/types need protection, and at what level? (@authenticated = any valid identity; @requiresScopes = specific scopes; @policy = custom logic.)
  • Where do scopes/claims come from? (JWT claims vs. coprocessor-injected.)

The directives live in the subgraph schemas, not in router.yaml. The router config only enables/disables the feature and (for @policy) wires the evaluating plugin. See references/configuration.md → Authorization.

Persisted Query Safelisting (GraphOS PQL)

Not the same as APQ. APQ (apq) is a runtime bandwidth optimization that caches any operation a client sends — it provides no security. Safelisting uses a GraphOS-managed Persisted Query List (PQL) that clients register at build time; the router then rejects operations not on the list. This is the "persisted query safelisting" security control. It is a GraphOS feature requiring a router connected to GraphOS (APOLLO_KEY + APOLLO_GRAPH_REF).

Pick a security level (increasing restrictiveness):

LevelConfigBehavior
Audit (recommended first)persisted_queries.log_unknown: trueLogs unregistered operations; rejects nothing. Use to confirm all clients are registered before enforcing.
Safelistsafelist.enabled: trueRejects operations not in the PQL. IDs and full strings both accepted if registered.
Safelist, IDs onlysafelist.enabled: true + require_id: trueRejects unregistered operations and any freeform operation string, even if the string is registered.

Then gather:

  • Is the router GraphOS-connected? Safelisting needs the PQL fetched from GraphOS (or local_manifests for offline licenses).
  • Have clients published their operations to the PQL (via rover persisted-queries publish in their CI/CD)? If not, start in audit mode.
  • When enabling safelist, APQ must be disabled (apq.enabled: false) — they are mutually exclusive.

Config key history: GA persisted_queries since v1.32.0 (was preview_persisted_queries in v1.25.0–v1.32.0); GA in all v2. See references/configuration.md → Persisted Query Safelisting.

Connectors (v2 only)
  • Subgraph name and source name (used as connectors.sources.<subgraph>.<source>)
  • Optional $config values for connector runtime configuration
  • If migrating old v2 preview config, rename preview_connectors to connectors
Operation Limits

Present the tuning guidance:

Operation depth limit controls how deeply nested a query can be.

  Router default: 100 (permissive — allows very deep queries)
  Recommended starting point: 50

  Lower values (15–25) are more secure but will reject legitimate queries
  in schemas with deep entity relationships or nested fragments.
  Higher values (75–100) are safer for compatibility but offer less
  protection against depth-based abuse.

  Tip: Run your router in warn_only mode first to see what depths your
  real traffic actually uses, then tighten:
    limits:
      warn_only: true

What max_depth would you like? [default: 50]

The same principle applies to max_height, max_aliases, and max_root_fields.

Telemetry
  • OTEL collector endpoint (default: http://otel-collector:4317)
  • Prometheus listen port (default: 9090)
  • Trace sampling rate (default: 0.1 = 10%)
Traffic Shaping
  • Client-facing rate limit capacity (default: 1000 req/s)
  • Router timeout (default: 60s)
  • Subgraph timeout (default: 30s)
Response Caching (v2 only, v2.6.0+)

Security: data leakage risk. Before generating any response cache config, you MUST ask the user which types and fields return user-specific data. Cached data defaults to shared — subgraph responses without Cache-Control: private are visible to all users. User-specific subgraphs must return Cache-Control: private and have private_id configured on the router.

  • Ask: Which subgraphs serve user-specific data? (e.g., accounts, profiles, carts)
  • Ask: How do you identify users? (JWT sub claim, session token, API key)
  • Redis URL (default: redis://localhost:6379)
  • Default TTL (default: 5m)
  • Enable active invalidation? If yes: invalidation listen address and shared key
  • Use section template: templates/v2/sections/response-caching.yaml
  • For security requirements, schema directives, and advanced config: references/response-caching.md (start with the Security section)

Step 5: Generate Config

  1. Load the correct version template from templates/{version}/
  2. Assemble section templates for supported sectioned features, then merge base-template snippets for APQ/subscriptions as needed
  3. Inject user-provided parameters
  4. Add a comment block at the top stating the target version

Step 6: Validate

Run the post-generation checklist:

  • All env vars referenced in config are documented
  • CORS origins don't include wildcards (production)
  • Rate limiting is on router: (client-facing), not only all: (subgraph)
  • JWT uses issuers (v2) not issuer (v1), or vice versa
  • If production: introspection=false, sandbox=false, subgraph_errors=false
  • Health check is enabled
  • Homepage is disabled (production)
  • Run: router config validate <file> if Router binary is available

Required Validation Gate (always run)

After generating or editing any router.yaml, you MUST:

  1. Run validation/checklist.md and report pass/fail for each checklist item.
  2. Run router config validate <path-to-router.yaml> if Router CLI is available.
  3. If Router CLI is unavailable, state that explicitly and still complete the checklist.
  4. Do not present the configuration as final until validation is completed.

Configuration as Code (git + CI/CD)

router.yaml is the router's contract with every request — treat it like application code, not an ops afterthought. Whenever you generate or edit config, steer the user toward this workflow:

  • Commit router.yaml to version control. It should live in git alongside the service, with changes reviewed via pull request. This gives you history, blame, and rollback for the most safety-critical file in the API layer.
  • Never commit secrets. Keep APOLLO_KEY, JWKS URLs, Redis URLs, and invalidation keys out of the file — reference them with ${env.*} expansion and inject at deploy time. The committed file should be safe to read by anyone with repo access.
  • Validate in CI. Run router config validate router.yaml on every PR so a malformed or version-mismatched config fails the build before it ships. Pin the Router version used in CI to the version you deploy.
  • Pair config changes with schema checks. Schema changes flow through rover subgraph check / rover subgraph publish (the rover skill); config changes flow through this validate-in-CI gate. Both gate the same deploy.
  • Promote the same file across environments. Differences between dev and prod should be expressed through env vars, not divergent committed files, so what you reviewed is what runs.

A minimal CI step (provide actual commands only if asked):

yaml
# Validate router config on every pull request
- run: router config validate router.yaml

Step 7: Conditional Next Steps Handoff

After answering any Apollo Router request (config generation, edits, validation, or general Router guidance), decide whether the user already has runnable prerequisites:

  • GraphOS-managed path: APOLLO_KEY + APOLLO_GRAPH_REF, or
  • Local path: a composed supergraph.graphql plus reachable subgraphs

If prerequisites are already present, do not add extra handoff text.

If prerequisites are missing or unknown, end with a concise Next steps handoff (1-3 lines max) that is skill-first and command-free:

  1. Suggest the rover skill to compose or fetch the supergraph schema.
  2. Suggest continuing with apollo-router once the supergraph is ready to validate and run with the generated config.
  3. If subgraphs are missing, suggest apollo-server, graphql-schema, and graphql-operations skills to scaffold and test.

Do not include raw shell commands in this handoff unless the user explicitly asks for commands.

Show full SKILL.md (857 more words)Show less

Quick Start (skill-first)

  1. Use this apollo-router skill to generate or refine router.yaml for your environment.
  2. Choose a runtime path:
    • GraphOS-managed path: provide APOLLO_KEY and APOLLO_GRAPH_REF (no local supergraph composition required).
    • Local supergraph path: use graphql-schema + apollo-server to define/run subgraphs, then use graphql-operations for smoke tests, then use the rover skill to compose or fetch supergraph.graphql.
  3. Use this apollo-router skill to validate readiness (validation/checklist.md) and walk through runtime startup inputs.

Default endpoint remains http://localhost:4000 when using standard Router listen defaults.

If the user asks for executable shell commands, provide them on request. Otherwise keep Quick Start guidance skill-oriented.

Running Modes

ModeCommandUse Case
Local schemarouter --supergraph ./schema.graphqlDevelopment, CI/CD
GraphOS managedAPOLLO_KEY=... APOLLO_GRAPH_REF=my-graph@prod routerProduction with auto-updates
Developmentrouter --dev --supergraph ./schema.graphqlLocal development
Hot reloadrouter --hot-reload --supergraph ./schema.graphqlSchema changes without restart

Environment Variables

VariableDescription
APOLLO_KEYAPI key for GraphOS
APOLLO_GRAPH_REFGraph reference (graph-id@variant)
APOLLO_ROUTER_CONFIG_PATHPath to router.yaml
APOLLO_ROUTER_SUPERGRAPH_PATHPath to supergraph schema
APOLLO_ROUTER_LOGLog level (off, error, warn, info, debug, trace)
APOLLO_ROUTER_LISTEN_ADDRESSOverride listen address

Reference Files

CLI Reference

router [OPTIONS]

Options:
  -s, --supergraph <PATH>    Path to supergraph schema file
  -c, --config <PATH>        Path to router.yaml configuration
      --dev                  Enable development mode
      --hot-reload           Watch for schema changes
      --log <LEVEL>          Log level (default: info)
      --listen <ADDRESS>     Override listen address
  -V, --version              Print version
  -h, --help                 Print help

Ground Rules

  • ALWAYS determine the target Router version (v1 or v2) before generating config
  • DEFAULT to v2 for new projects
  • ALWAYS include a comment block at top of generated config stating the target version
  • ALWAYS use --dev mode for local development (enables introspection and sandbox)
  • ALWAYS disable introspection, sandbox, and homepage in production
  • PREFER GraphOS managed mode for production (automatic updates, metrics)
  • USE --hot-reload for local development with file-based schemas
  • NEVER expose APOLLO_KEY in logs or version control
  • USE environment variables (${env.VAR}) for all secrets and sensitive config
  • PREFER YAML configuration over command-line arguments for complex setups
  • TEST configuration changes locally before deploying to production
  • WARN if user enables allow_any_origin or wildcard CORS in production
  • RECOMMEND router config upgrade router.yaml for v1 → v2 migration instead of regenerating from scratch
  • MUST run validation/checklist.md after every router config generation or edit
  • MUST run router config validate <file> when Router CLI is available
  • MUST report when CLI validation could not run (for example, Router binary missing)
  • MUST append a brief conditional handoff when runtime prerequisites are missing or unknown
  • MUST make this handoff skill-first and avoid raw shell commands unless the user explicitly requests commands
  • MUST keep Quick Start guidance skill-first and command-free unless the user explicitly requests commands
  • MUST state that Rover is required only for the local supergraph path; GraphOS-managed runtime does not require local Rover composition
  • USE max_depth: 50 as the default starting point, not 15 (too aggressive) or 100 (too permissive)
  • RECOMMEND warn_only: true for initial limits rollout to observe real traffic before enforcing
  • ONLY offer Response Caching when ROUTER_VERSION=v2 (requires v2.6.0+)
  • ALWAYS use ${env.*} for Redis URLs, passwords, and invalidation shared keys
  • NEVER enable response_cache.debug: true in production config
  • RECOMMEND combining Cache-Control headers (passive TTL) with @cacheTag (active invalidation) for production
  • ALWAYS ask which fields return user-specific data before generating response cache config — never assume all data is safe to cache as shared
  • ALWAYS configure private_id for subgraphs that serve user-specific data, and ensure those subgraphs return Cache-Control: private (via @cacheControl(scope: PRIVATE) in Apollo Server, or by setting the header directly in other frameworks)
  • NEVER generate response cache config without addressing private data — if the user says "no user-specific data", confirm explicitly before proceeding
  • ALWAYS bind the invalidation endpoint to 127.0.0.1, NEVER 0.0.0.0 in production
  • NEVER conflate APQ with persisted-query safelisting — APQ (apq) is a bandwidth optimization with no security value; safelisting (persisted_queries.safelist) is the operation allowlist. If a user asks to "lock down which queries can run", point them to safelisting, not APQ
  • ALWAYS disable APQ (apq.enabled: false) when enabling persisted_queries.safelist — they are mutually exclusive
  • RECOMMEND starting persisted queries in audit mode (log_unknown: true) to confirm all clients are registered before turning on safelist.enabled
  • STATE that persisted-query safelisting requires a GraphOS-connected router (PQL fetched via APOLLO_KEY + APOLLO_GRAPH_REF, or local_manifests for offline licenses)
  • USE persisted_queries (GA, v1.32.0+ and all v2), NOT preview_persisted_queries (v1.25.0–v1.32.0)
  • TREAT global authorization.require_authentication and declarative directives as different layers: the former gates the whole request, the latter (@authenticated / @requiresScopes / @policy) does field- and type-level filtering
  • STATE that declarative authorization directives require a GraphOS-connected router (v1.29.1+; Developer/Standard plans need v2.6.0+) and a claims source (JWT auth or a coprocessor populating apollo::authentication::jwt_claims)
  • NOTE that authorization directives are ENABLED BY DEFAULT — authorization.directives.enabled: false only turns them off; never imply config is required to "turn them on"
  • STATE that @policy additionally requires a Rhai script or coprocessor at the Supergraph stage to evaluate apollo::authorization::required_policies
  • PLACE authorization directives in subgraph schemas, NEVER in router.yaml — router config only enables/disables the feature
  • RECOMMEND committing router.yaml to version control and running router config validate in CI on every PR, with all secrets referenced via ${env.*} and injected at deploy time
  • NEVER commit secrets (APOLLO_KEY, JWKS/Redis URLs, invalidation keys) to the config file; the committed router.yaml must be safe to share with anyone holding repo access

© apollographql, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 30 other files (references) in skills/apollo-router of apollographql/skills.

  • SKILL.md
  • divergence-map.md
  • references/configuration.md
  • references/connectors.md
  • references/headers.md
  • references/plugins.md
  • references/response-caching.md
  • references/telemetry.md
  • references/troubleshooting.md
  • templates/v1/development.yaml
  • templates/v1/production.yaml
  • templates/v1/sections/auth.yaml
  • templates/v1/sections/cors.yaml
  • templates/v1/sections/headers.yaml
  • templates/v1/sections/limits.yaml
  • templates/v1/sections/telemetry.yaml
  • templates/v1/sections/traffic-shaping.yaml
  • … and 14 more

Open the folder on GitHubat commit 5f02fcf

Compare with similar skills

Apollo Router next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Apollo Router compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Apollo Router this skillapollographql/skills117—~5.4kAutomated safety check: PassMIT
API Auditbriiirussell/cybersecurity-skills413—~2.8kAutomated safety check: NotesMIT
Discover APIrand/cc-polymath181—~1.5kAutomated safety check: PassMIT
Neo4j Graphql Skillneo4j-contrib/neo4j-skills114—~3.8kAutomated safety check: NotesMIT
API Designeraiskillstore/marketplace430—~3.6kAutomated safety check: PassNone
GraphQL Operations with CodegenChrisWiles/claude-code-showcase6.1k3 repos~1.5kAutomated safety check: PassNone

Similar skills

  • API Audit

    briiirussell/cybersecurity-skills

    Audit REST, GraphQL, and RPC APIs against the OWASP API Security Top 10 (2023).

    413 GitHub stars~2.8k tokensUpdated 4 mo ago
    Backend & APIsAuto-check: notes
  • Discover API

    rand/cc-polymath

    Automatically discover API design skills when working with REST APIs, GraphQL schemas, API authentication, OAuth, JWT, rate limiting, API versioning, error handling, or endpoint design.

    181 GitHub stars~1.5k tokensUpdated 7 mo ago
    Backend & APIsAuto-check passed
  • Neo4j Graphql Skill

    neo4j-contrib/neo4j-skills

    Build and configure a GraphQL API backed by Neo4j using @neo4j/graphql v7 (current) or v5 (LTS).

    114 GitHub stars~3.8k tokensUpdated 2 days ago
    Backend & APIsAuto-check: notes
  • API Designer

    aiskillstore/marketplace

    Design and document RESTful and GraphQL APIs with OpenAPI/Swagger specifications, authentication patterns, versioning strategies, and best practices.

    430 GitHub stars~3.6k tokensUpdated today
    Backend & APIsAuto-check passed
  • GraphQL Operations with Codegen

    ChrisWiles/claude-code-showcase

    Sets the rules for writing GraphQL queries and mutations in .gql files, running codegen, and using generated Apollo hooks with proper error and loading handling.

    6.1k GitHub starsUsed in 3 repos~1.5k tokens
    Backend & APIsAuto-check passed
  • Pii Detector

    goSprinto/compliance-skills

    Proactive PII add-on — augments the main response with PII guidance.

    133 GitHub stars~1.6k tokensUpdated 4 mo ago
    Backend & APIsAuto-check passed

More from apollographql/skills

All 12 skills in this repo
  • Graphos Factory

    apollographql/skills

    Build and iterate on an Apollo Connectors subgraph for a GraphOS supergraph from a REST API, with or without an OpenAPI or Swagger spec, in a dedicated git workspace that records what the API…

    117 GitHub stars~15k tokensUpdated yesterday
    Auto-check passed
  • Apollo Client

    apollographql/skills

    Guide for building React applications with Apollo Client 4.x.

    117 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Apollo Connectors

    apollographql/skills

    DEPRECATED: superseded by the graphos-factory skill (npx skills add apollographql/skills@graphos-factory), which builds and maintains a Connectors subgraph from a REST API with recorded decisions…

    117 GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • Apollo Federation

    apollographql/skills

    Guide for authoring Apollo Federation subgraph schemas. An agent skill from apollographql/skills.

    117 GitHub stars~1k tokensUpdated yesterday
    Auto-check passed
  • Apollo iOS

    apollographql/skills

    Guide for building Apple-platform applications with Apollo iOS, the strongly-typed GraphQL client for Swift.

    117 GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Apollo Router Plugin Creator

    apollographql/skills

    Guide for writing Apollo Router native Rust plugins. An agent skill from apollographql/skills.

    117 GitHub stars~4.1k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Apollo Router

What does Apollo Router do?

Version-aware guide for configuring and running Apollo Router for federated GraphQL supergraphs. Apollo Router is an agent skill from apollographql/skills. Version-aware guide for configuring and running Apollo Router for federated GraphQL supergraphs.

When should I use Apollo Router?

Apollo Router fits situations like: setting up Apollo Router to run a supergraph; configuring routing; implementing custom plugins (Rhai scripts; configuring telemetry (tracing.

How do I install Apollo Router in Claude Code?

Run `npx skills add apollographql/skills --skill apollo-router -a claude-code`. Or copy the skill folder (skills/apollo-router in apollographql/skills) into .claude/skills/apollo-router in your project. Claude Code loads it when a task matches its description.

How do I install Apollo Router in Codex?

Run `npx skills add apollographql/skills --skill apollo-router -a codex`. Or copy the skill folder (skills/apollo-router in apollographql/skills) into .agents/skills/apollo-router in your project. Codex loads it when a task matches its description.

Can I use Apollo Router in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add apollographql/skills --skill apollo-router -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/apollo-router, .gemini/skills/apollo-router, .github/skills/apollo-router and .opencode/skills/apollo-router in your project.

What does Apollo Router need to run?

Going by SKILL.md and its folder, Apollo Router needs credentials named APOLLO_KEY. Our summary lists: Docker; A credential in APOLLO_KEY. Its frontmatter pre-approves these tools: Bash(router:*), Bash(./router:*), Bash(rover:*), Bash(curl:*), Bash(docker:*), Read, Write, Edit, Glob, Grep. Compatibility (from SKILL.md): Linux/macOS/Windows. Requires a composed supergraph schema from Rover or GraphOS..

Does Apollo Router access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Apollo Router safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Apollo Router use?

Apollo Router is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Apollo Router use?

About 5.4k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 15k tokens, read only when the agent opens those files.

What are the alternatives to Apollo Router?

Skills that share tags, products or a category with Apollo Router: API Audit (briiirussell/cybersecurity-skills, 413 stars), Discover API (rand/cc-polymath, 181 stars), Neo4j Graphql Skill (neo4j-contrib/neo4j-skills, 114 stars) and API Designer (aiskillstore/marketplace, 430 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Apollo Router?

apollographql (a GitHub organization) maintains it in apollographql/skills, which has 117 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 7, 2026.

Source: apollographql/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.