# Packages

IC Reactor ships as a small set of focused packages. Some are runtime libraries
you install in applications, while others are tooling packages used during code
generation and local development.
**Tip:** Most frontend apps start with [@ic-reactor/react](https://ic-reactor.b3pay.net/v3/packages/react). Add
  [@ic-reactor/candid](https://ic-reactor.b3pay.net/v3/packages/candid) when you need runtime Candid
  discovery, and reach for the tooling packages when you want generated code.

## Runtime Packages

[@ic-reactor/react](https://ic-reactor.b3pay.net/v3/packages/react)
  [@ic-reactor/core](https://ic-reactor.b3pay.net/v3/packages/core)
  [@ic-reactor/candid](https://ic-reactor.b3pay.net/v3/packages/candid)
  [@ic-reactor/parser](https://ic-reactor.b3pay.net/v3/packages/parser)
## Tooling Packages

[@ic-reactor/cli](https://ic-reactor.b3pay.net/v3/packages/cli)
  [@ic-reactor/vite-plugin](https://ic-reactor.b3pay.net/v3/packages/vite-plugin)
  [@ic-reactor/codegen](https://ic-reactor.b3pay.net/v3/packages/codegen)
## How They Fit Together

- `@ic-reactor/react` depends on `@ic-reactor/core` and re-exports the runtime classes.
- `@ic-reactor/candid` builds on `@ic-reactor/core` and can optionally use `@ic-reactor/parser` for local Candid compilation.
- `@ic-reactor/cli` and `@ic-reactor/vite-plugin` both use `@ic-reactor/codegen` under the hood.
- The tooling packages help you generate declarations and hooks, while the runtime packages execute queries, mutations, auth flows, and dynamic canister calls.