# Add methods to Prisma Client (/docs/orm/prisma-client/client-extensions/client)

Location: ORM > Prisma Client > Client Extensions > Add methods to Prisma Client

You can use the `client` [Prisma Client extensions](/orm/prisma-client/client-extensions) component to add top-level methods to Prisma Client.

Extend Prisma Client [#extend-prisma-client]

Use the `$extends` [client-level method](/orm/reference/prisma-client-reference#client-methods) to create an *extended client*. An extended client is a variant of the standard Prisma Client that is wrapped by one or more extensions. Use the `client` extension component to add top-level methods to Prisma Client.

To add a top-level method to Prisma Client, use the following structure:

```ts
const prisma = new PrismaClient().$extends({
  client?: { ... }
})
```

Example [#example]

The following example uses the `client` component to add two methods to Prisma Client:

* `$log` outputs a message.
* `$totalQueries` returns the number of queries executed by the current client instance.

```ts
let total = 0;
const prisma = new PrismaClient().$extends({
  client: {
    $log: (s: string) => console.log(s),
    async $totalQueries() {
      return total;
    },
  },
  query: {
    $allModels: {
      async $allOperations({ query, args }) {
        total += 1;
        return query(args);
      },
    },
  },
});

async function main() {
  prisma.$log("Hello world");
  const totalQueries = await prisma.$totalQueries();
  console.log(totalQueries);
}
```

## Related pages

- [`Add custom fields and methods to query results`](https://www.prisma.io/docs/orm/prisma-client/client-extensions/result): Extend the functionality of Prisma Client, result component
- [`Add custom methods to your models`](https://www.prisma.io/docs/orm/prisma-client/client-extensions/model): Extend the functionality of Prisma Client, model component
- [`Create custom Prisma Client queries`](https://www.prisma.io/docs/orm/prisma-client/client-extensions/query): Extend the functionality of Prisma Client, query component
- [`Shared packages & examples`](https://www.prisma.io/docs/orm/prisma-client/client-extensions/extension-examples): Explore the Prisma Client extensions that have been built by Prisma and its community
- [`Shared Prisma Client extensions`](https://www.prisma.io/docs/orm/prisma-client/client-extensions/shared-extensions): Share extensions or import shared extensions into your Prisma project