# Agent Skills

## Install skills for best results

Agents get the basics right from the package name alone. [Skills](https://agentskills.io) teach them the current
APIs for the rest, like test fixtures and real-time managers. Install skill
[/data-client-setup](https://skills.sh/reactive/data-client/data-client-setup):

```bash
npx skills add reactive/data-client --skill data-client-setup
```

Then run skill `/data-client-setup`. It detects your framework and API style (REST, GraphQL,
custom), installs the matching skills below, wires up the provider, and migrates existing endpoints.

### Install all skills up front

To install every skill for your framework now instead, without letting your agent run installs:

```bash
npx skills add reactive/data-client \
  --skill data-client \
  --skill data-client-setup \
  --skill data-client-rest-setup \
  --skill data-client-endpoint-setup \
  --skill data-client-graphql-setup \
  --skill data-client-schema \
  --skill data-client-rest \
  --skill data-client-manager \
  --skill data-client-react \
  --skill data-client-react-testing
```

```bash
# run after installing Data Client: loads the skills its packages ship
npm install -D @tanstack/intent
npx intent install
```

In Claude Code, the plugin installs them in one step. With other agents,
[TanStack Intent](https://tanstack.com/intent) loads the skills each `@data-client/*` package ships for its version,
so they update with `npm update`. Its install adds a skill loading section to your `AGENTS.md`.

### Available Skills

- [**`/data-client`**](https://skills.sh/reactive/data-client/data-client) — starts here when you ask your agent to add or use Data Client, and routes it to setup or the skill for the task.
- [**`/data-client-setup`**](https://skills.sh/reactive/data-client/data-client-setup) — installs and configures Data Client for your framework and API style, along with the skills it needs.
- [**`/data-client-rest-setup`**](https://skills.sh/reactive/data-client/data-client-rest-setup) — sets up `@data-client/rest` and migrates existing
  `fetch`/`axios` clients.
- [**`/data-client-endpoint-setup`**](https://skills.sh/reactive/data-client/data-client-endpoint-setup) — wraps custom async functions with `Endpoint`
  for non-REST and non-GraphQL workflows.
- [**`/data-client-graphql-setup`**](https://skills.sh/reactive/data-client/data-client-graphql-setup) — configures `@data-client/graphql` and `GQLEndpoint`
  for GraphQL APIs.
- [**`/data-client-schema`**](https://skills.sh/reactive/data-client/data-client-schema) — designs `Entity`, `Collection`, `Union`, `Query`,
  and related schemas.
- [**`/data-client-rest`**](https://skills.sh/reactive/data-client/data-client-rest) — defines REST APIs with `resource()`, `RestEndpoint`,
  CRUD methods, and response parsing.
- [**`/data-client-manager`**](https://skills.sh/reactive/data-client/data-client-manager) — implements custom `Manager`s for websockets, SSE,
  polling, subscriptions, logging, and middleware.

* [**`/data-client-react`**](https://skills.sh/reactive/data-client/data-client-react) — uses `useSuspense`, `useFetch`, `useQuery`, `useLive`,
  and mutation hooks, and [debugs your running app](https://dataclient.io/docs/getting-started/debugging.md#debugging-with-agents) with Chrome DevTools MCP.
* [**`/data-client-react-testing`**](https://skills.sh/reactive/data-client/data-client-react-testing) — writes React tests with `renderDataHook`,
  fixtures, interceptors, and `nock`.

Browse the full catalog at [skills.sh/reactive/data-client](https://skills.sh/reactive/data-client).

## Set up by hand

To install the packages and add the provider yourself, follow [Installation](https://dataclient.io/docs/getting-started/installation.md).

## Docs for LLMs

Agents without skills can read these docs as plain markdown, following the [llms.txt](https://llmstxt.org) convention:

- [llms.txt](https://dataclient.io/llms.txt) — index of every page, with links to each page's markdown
- [llms-full.txt](https://dataclient.io/llms-full.txt) — all React, REST and GraphQL docs in one file

Any docs page is also available as markdown by adding `.md` to its URL, like [/docs/api/useSuspense.md](https://dataclient.io/docs/api/useSuspense.md).
