diff --git a/versioned_docs/version-3.x/migrate-prisma.md b/versioned_docs/version-3.x/migrate-prisma.md
index 1f91aa26..b5a3f638 100644
--- a/versioned_docs/version-3.x/migrate-prisma.md
+++ b/versioned_docs/version-3.x/migrate-prisma.md
@@ -32,7 +32,7 @@ ZenStack v3 doesn't depend on Prisma at runtime. Its CLI has a peer dependency o
- Remove `prisma` and `@prisma/client` from your project dependencies.
- Install ZenStack packages
-
+
- Install a database driver
@@ -87,7 +87,7 @@ Replace `new PrismaClient()` with `new ZenStackClient(schema, ...)` where `schem
```ts title='db.ts'
-import { ZenStackClient } from '@zenstackhq/runtime';
+import { ZenStackClient } from '@zenstackhq/orm';
import { schema } from './zenstack/schema';
import { PostgresDialect } from 'kysely';
import { Pool } from 'pg';
@@ -105,7 +105,7 @@ export const db = new ZenStackClient(schema, {
```ts title='db.ts'
-import { ZenStackClient } from '@zenstackhq/runtime';
+import { ZenStackClient } from '@zenstackhq/orm';
import { SqliteDialect } from 'kysely';
import SQLite from 'better-sqlite3';
import { schema } from './zenstack/schema';
diff --git a/versioned_docs/version-3.x/orm/access-control/query.md b/versioned_docs/version-3.x/orm/access-control/query.md
index a337abb7..a998b4ab 100644
--- a/versioned_docs/version-3.x/orm/access-control/query.md
+++ b/versioned_docs/version-3.x/orm/access-control/query.md
@@ -13,7 +13,7 @@ After defining access control policies in ZModel, it's time to enjoy their benef
Similar to the schema side, access control's runtime aspect is encapsulated in the `@zenstackhq/plugin-policy` package too, as a Runtime Plugin (more about this topic [later](../plugins/index.md)). You should install it on the raw ORM client to get a new client instance with access control enforcement.
```ts
-import { ZenStackClient } from '@zenstackhq/runtime';
+import { ZenStackClient } from '@zenstackhq/orm';
import { PolicyPlugin } from '@zenstackhq/plugin-policy';
// create an unprotected, "raw" ORM client
diff --git a/versioned_docs/version-3.x/orm/client.md b/versioned_docs/version-3.x/orm/client.md
index c190ebb9..7ae246cb 100644
--- a/versioned_docs/version-3.x/orm/client.md
+++ b/versioned_docs/version-3.x/orm/client.md
@@ -25,7 +25,7 @@ The samples below only show creating a client using SQLite (via [better-sqlite3]
```ts title='db.ts'
-import { ZenStackClient } from '@zenstackhq/runtime';
+import { ZenStackClient } from '@zenstackhq/orm';
import { SqliteDialect } from 'kysely';
import SQLite from 'better-sqlite3';
import { schema } from './zenstack/schema';
@@ -43,7 +43,7 @@ export const db = new ZenStackClient(schema, {
```ts title='db.ts'
-import { ZenStackClient } from '@zenstackhq/runtime';
+import { ZenStackClient } from '@zenstackhq/orm';
import { schema } from './zenstack/schema';
import { PostgresDialect } from 'kysely';
import { Pool } from 'pg';
@@ -63,7 +63,7 @@ export const db = new ZenStackClient(schema, {
The created `db` object has the full ORM API inferred from the type of the `schema` parameter. When necessary, you can also explicitly get the inferred client type like:
```ts
-import type { ClientContract } from '@zenstackhq/runtime';
+import type { ClientContract } from '@zenstackhq/orm';
import type { SchemaType } from '@/zenstack/schema';
export type DbClient = ClientContract;
diff --git a/versioned_docs/version-3.x/orm/errors.md b/versioned_docs/version-3.x/orm/errors.md
index eeaf4141..4ce578a9 100644
--- a/versioned_docs/version-3.x/orm/errors.md
+++ b/versioned_docs/version-3.x/orm/errors.md
@@ -5,7 +5,7 @@ description: ORM Errors
# Errors
-The ORM uses the following error classes from `@zenstackhq/runtime` to represent different types of failures:
+The ORM uses the following error classes from `@zenstackhq/orm` to represent different types of failures:
## `InputValidationError`
diff --git a/versioned_docs/version-3.x/orm/inferred-types.md b/versioned_docs/version-3.x/orm/inferred-types.md
index 0b347ecc..a418dbca 100644
--- a/versioned_docs/version-3.x/orm/inferred-types.md
+++ b/versioned_docs/version-3.x/orm/inferred-types.md
@@ -19,7 +19,7 @@ Most of the time, you don't need to explicitly type the input and output of the
- `ModelResult`
- The `ModelResult` generic type from `@zenstackhq/runtime` allows you to infer the exact model type given field selection and relation inclusion information.
+ The `ModelResult` generic type from `@zenstackhq/orm` allows you to infer the exact model type given field selection and relation inclusion information.
## Samples
diff --git a/versioned_docs/version-3.x/orm/quick-start.md b/versioned_docs/version-3.x/orm/quick-start.md
index b4f54b97..b399fa1a 100644
--- a/versioned_docs/version-3.x/orm/quick-start.md
+++ b/versioned_docs/version-3.x/orm/quick-start.md
@@ -46,7 +46,7 @@ You can also always configure a project manually with the following steps:
1. Install dependencies
-
+
2. Create a `zenstack/schema.zmodel` file
diff --git a/versioned_docs/version-3.x/reference/api.md b/versioned_docs/version-3.x/reference/api.md
index 591870dd..ef5b993a 100644
--- a/versioned_docs/version-3.x/reference/api.md
+++ b/versioned_docs/version-3.x/reference/api.md
@@ -6,7 +6,7 @@ sidebar_label: API
# API Reference
-## `@zenstackhq/runtime`
+## `@zenstackhq/orm`
### `class ZenStackClient`
diff --git a/versioned_docs/version-3.x/reference/plugins/policy.md b/versioned_docs/version-3.x/reference/plugins/policy.md
index 103ceaf9..298220f5 100644
--- a/versioned_docs/version-3.x/reference/plugins/policy.md
+++ b/versioned_docs/version-3.x/reference/plugins/policy.md
@@ -146,7 +146,7 @@ The following functions can be used in policy conditions:
The plugin exports a runtime plugin `PolicyPlugin` that can be installed on the ORM client to enable access control enforcement.
```ts
-import { ZenStackClient } from '@zenstackhq/runtime';
+import { ZenStackClient } from '@zenstackhq/orm';
import { PolicyPlugin } from '@zenstackhq/plugin-policy';
const db = new ZenStackClient(...);
diff --git a/versioned_docs/version-3.x/reference/zmodel/attribute.md b/versioned_docs/version-3.x/reference/zmodel/attribute.md
index 19bae0e1..7e299e8b 100644
--- a/versioned_docs/version-3.x/reference/zmodel/attribute.md
+++ b/versioned_docs/version-3.x/reference/zmodel/attribute.md
@@ -365,7 +365,7 @@ _Params_:
attribute @@meta(_ name: String, _ value: Any)
```
-Adds arbitrary metadata to a model. The metadata can be accessed by custom plugins for code generation, or at runtime from the `modelMeta` object exported from `@zenstackhq/runtime/model-meta`. The `value` parameter can be an arbitrary literal expression, including object literals.
+Adds arbitrary metadata to a model. The metadata can be accessed by custom plugins for code generation, or at runtime from the `modelMeta` object exported from `@zenstackhq/orm/model-meta`. The `value` parameter can be an arbitrary literal expression, including object literals.
```zmodel
model User {
@@ -482,7 +482,7 @@ attribute @json()
attribute @meta(_ name: String, _ value: Any)
```
-Adds arbitrary metadata to a field. The metadata can be accessed by custom plugins for code generation, or at runtime from the `modelMeta` object exported from `@zenstackhq/runtime/model-meta`. The `value` parameter can be an arbitrary literal expression, including object literals.
+Adds arbitrary metadata to a field. The metadata can be accessed by custom plugins for code generation, or at runtime from the `modelMeta` object exported from `@zenstackhq/orm/model-meta`. The `value` parameter can be an arbitrary literal expression, including object literals.
```zmodel
model User {