> ## Documentation Index
> Fetch the complete documentation index at: https://sdk.docs.xano.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Add-ons

> Find, install, register and remove marketplace add-ons such as @xano-sdk/auth and @xano-sdk/zod with the xanosdk marketplace commands.

An add-on is an npm package built for the Xano SDK. The marketplace is the public catalogue of
them, and six `xanosdk marketplace` commands find one and change what your project has
installed.

## Find one

The read commands need no login:

```bash theme={null}
npx xanosdk marketplace list                    # every published add-on, newest first
npx xanosdk marketplace search vector           # match a keyword
npx xanosdk marketplace details @xano-sdk/auth  # what it installs and how to register it
```

`details` prints the tables, endpoints and functions the add-on adds, what you supply yourself,
and the registration to paste into `xano/index.ts`. `--prompt` prints the publisher's wiring
instructions for a coding agent instead:

```bash theme={null}
npx xanosdk marketplace details @xano-sdk/auth --prompt
```

## Install a workspace add-on

A **workspace** add-on adds def objects to the backend you deploy. `@xano-sdk/auth`, for
example, adds a `user` table and `auth/signup`, `auth/login` and `auth/me` endpoints.

```bash theme={null}
npx xanosdk marketplace install @xano-sdk/auth   # or the short name: install auth
```

Then register it in `xano/index.ts`. Its register function takes your `workspace()` and returns
it, so you chain your own objects after it:

```ts theme={null}
import { workspace } from "@xano/sdk";
import { registerAuth } from "@xano-sdk/auth";
import { notes, api, createNote } from "./notes.js";

export default registerAuth(workspace("my-app"), { canonical: "authn" })
  .registerTables([notes])
  .registerApiGroups([api])
  .registerQueries([createNote]);
```

Deploy as usual. The add-on's endpoints appear in `xano/routes.gen.ts` like your own.

## Install a toolchain add-on

A **toolchain** add-on extends the CLI instead and adds nothing to the workspace, so there is
nothing to register. `@xano-sdk/zod` writes runtime validators into `routes.gen.ts`, and
`@xano-sdk/xanoscript` writes a XanoScript file per object on every export.

```bash theme={null}
npx xanosdk marketplace install zod
```

`install` asks the add-on's questions and stores your answers in `package.json` under the
`"xanosdk"` key. To answer them again:

```bash theme={null}
npx xanosdk marketplace reinstall @xano-sdk/xanoscript
```

`install` prints which kind arrived, because the next step differs.

## Remove one

```bash theme={null}
npx xanosdk marketplace remove @xano-sdk/zod
```

`remove` uninstalls the package and drops its settings and the lines it contributed. Use it
rather than `npm uninstall`, which leaves those behind. It refuses to remove a workspace add-on
your backend still imports and names the files: drop the import and registration first.

## Why not npm install

`marketplace install` runs npm for you and adds three things: it refuses to run outside a
project, it refuses a name the marketplace does not list (exit 8), and it configures any
toolchain add-on that arrived. You can also scaffold a project with add-ons already installed
and registered:

```bash theme={null}
npx @xano/sdk init my-app --marketplace @xano-sdk/auth,@xano-sdk/vector
```

## Next

* Every verb's behavior, peer ranges and the reconcile rules:
  [marketplace reference](/reference/marketplace).
* Write your own add-on: [module contract](/reference/module-contract).
* Use zod with your routes: [Typed frontend](/build/typed-frontend).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.