diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml
index 1f8bb2db..6ea4ff5d 100644
--- a/.github/workflows/deploy-docs.yml
+++ b/.github/workflows/deploy-docs.yml
@@ -58,7 +58,7 @@ jobs:
run: pnpm install --no-frozen-lockfile
- name: Build with VitePress
- run: pnpm --filter @memoh/docs build
+ run: pnpm --filter @memohai/docs build
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
diff --git a/AGENTS.md b/AGENTS.md
index 84ca918b..e1a7eae7 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -35,7 +35,7 @@ Infrastructure dependencies:
- **Framework**: Vue 3 (Composition API)
- **Build Tool**: Vite
- **State Management**: Pinia + Pinia Colada
-- **UI**: Tailwind CSS 4 + custom component library (`@memoh/ui`) + Reka UI
+- **UI**: Tailwind CSS 4 + custom component library (`@memohai/ui`) + Reka UI
- **i18n**: vue-i18n
- **Markdown**: markstream-vue + Shiki + Mermaid + KaTeX
- **Package Manager**: pnpm monorepo
@@ -147,12 +147,12 @@ Memoh/
│ │ ├── types/ # TypeScript type definitions
│ │ ├── storage.ts # Browser context storage
│ │ └── models.ts # Zod request schemas
-│ └── web/ # Main web app (@memoh/web, Vue 3)
+│ └── web/ # Main web app (@memohai/web, Vue 3)
├── packages/ # Shared TypeScript libraries
-│ ├── ui/ # Shared UI component library (@memoh/ui)
-│ ├── sdk/ # TypeScript SDK (@memoh/sdk, auto-generated from OpenAPI)
-│ ├── cli/ # CLI tool (@memoh/cli, Commander.js)
-│ └── config/ # Shared configuration utilities (@memoh/config)
+│ ├── ui/ # Shared UI component library (@memohai/ui)
+│ ├── sdk/ # TypeScript SDK (@memohai/sdk, auto-generated from OpenAPI)
+│ ├── cli/ # CLI tool (@memohai/cli, Commander.js)
+│ └── config/ # Shared configuration utilities (@memohai/config)
├── spec/ # OpenAPI specifications (swagger.json, swagger.yaml)
├── db/ # Database
│ ├── migrations/ # SQL migration files
@@ -247,7 +247,7 @@ Migrations live in `db/migrations/` and follow a dual-update convention:
1. Write handlers in `internal/handlers/` with swaggo annotations.
2. Run `mise run swagger-generate` to update the OpenAPI docs (output in `spec/`).
3. Run `mise run sdk-generate` to update the frontend TypeScript SDK (`packages/sdk/`).
-4. The frontend calls APIs via the auto-generated `@memoh/sdk`.
+4. The frontend calls APIs via the auto-generated `@memohai/sdk`.
### Agent Development
@@ -265,7 +265,7 @@ Migrations live in `db/migrations/` and follow a dual-update convention:
- Use Vue 3 Composition API with `
diff --git a/apps/web/src/components/provider-icon/icons.ts b/apps/web/src/components/provider-icon/icons.ts
index 74455b1a..48149d2a 100644
--- a/apps/web/src/components/provider-icon/icons.ts
+++ b/apps/web/src/components/provider-icon/icons.ts
@@ -65,10 +65,10 @@ import {
YiColor,
Zhipu,
ZhipuColor,
-} from '@memoh/icon'
+} from '@memohai/icon'
/**
- * Maps preset icon names (stored in DB) to @memoh/icon Vue components.
+ * Maps preset icon names (stored in DB) to @memohai/icon Vue components.
* The key is the SVG filename without extension (e.g. 'openai', 'deepseek-color').
*/
export const iconMap: Record = {
diff --git a/apps/web/src/components/search-provider-logo/index.vue b/apps/web/src/components/search-provider-logo/index.vue
index d41ffad1..4b78a29d 100644
--- a/apps/web/src/components/search-provider-logo/index.vue
+++ b/apps/web/src/components/search-provider-logo/index.vue
@@ -4,8 +4,8 @@
:class="containerClass"
>
= {
brave: Brave,
diff --git a/apps/web/src/components/searchable-select-popover/index.vue b/apps/web/src/components/searchable-select-popover/index.vue
index a0623e2b..2959e63b 100644
--- a/apps/web/src/components/searchable-select-popover/index.vue
+++ b/apps/web/src/components/searchable-select-popover/index.vue
@@ -123,7 +123,7 @@ import {
PopoverTrigger,
PopoverContent,
Button,
-} from '@memoh/ui'
+} from '@memohai/ui'
import { computed, ref, watch } from 'vue'
export interface SearchableSelectOption {
diff --git a/apps/web/src/components/sidebar/index.vue b/apps/web/src/components/sidebar/index.vue
index f1e41e6d..24396628 100644
--- a/apps/web/src/components/sidebar/index.vue
+++ b/apps/web/src/components/sidebar/index.vue
@@ -81,7 +81,7 @@ import {
SidebarMenu,
SidebarMenuButton,
SidebarMenuItem,
-} from '@memoh/ui'
+} from '@memohai/ui'
import { computed } from 'vue'
import { useRouter, useRoute } from 'vue-router'
import { useI18n } from 'vue-i18n'
diff --git a/apps/web/src/composables/api/useChat.chat-api.ts b/apps/web/src/composables/api/useChat.chat-api.ts
index 54569817..cb5800e9 100644
--- a/apps/web/src/composables/api/useChat.chat-api.ts
+++ b/apps/web/src/composables/api/useChat.chat-api.ts
@@ -5,7 +5,7 @@ import {
postBotsByBotIdSessions,
deleteBotsByBotIdSessionsBySessionId,
patchBotsByBotIdSessionsBySessionId,
-} from '@memoh/sdk'
+} from '@memohai/sdk'
import type { Bot, SessionSummary } from './useChat.types'
export async function fetchBots(): Promise {
diff --git a/apps/web/src/composables/api/useChat.message-api.ts b/apps/web/src/composables/api/useChat.message-api.ts
index 16f51c23..1fedcc7a 100644
--- a/apps/web/src/composables/api/useChat.message-api.ts
+++ b/apps/web/src/composables/api/useChat.message-api.ts
@@ -1,6 +1,6 @@
-import { client } from '@memoh/sdk/client'
-import { getBotsByBotIdMessages, postBotsByBotIdWebMessages } from '@memoh/sdk'
-import type { ChannelAttachment, ChannelMessage } from '@memoh/sdk'
+import { client } from '@memohai/sdk/client'
+import { getBotsByBotIdMessages, postBotsByBotIdWebMessages } from '@memohai/sdk'
+import type { ChannelAttachment, ChannelMessage } from '@memohai/sdk'
import type {
ChatAttachment,
FetchMessagesOptions,
diff --git a/apps/web/src/composables/api/useChat.types.ts b/apps/web/src/composables/api/useChat.types.ts
index f7c32e75..56049244 100644
--- a/apps/web/src/composables/api/useChat.types.ts
+++ b/apps/web/src/composables/api/useChat.types.ts
@@ -1,4 +1,4 @@
-import type { BotsBot } from '@memoh/sdk'
+import type { BotsBot } from '@memohai/sdk'
export type Bot = BotsBot
diff --git a/apps/web/src/composables/api/useChat.ws.ts b/apps/web/src/composables/api/useChat.ws.ts
index 5a458737..3f99cf00 100644
--- a/apps/web/src/composables/api/useChat.ws.ts
+++ b/apps/web/src/composables/api/useChat.ws.ts
@@ -1,4 +1,4 @@
-import { client } from '@memoh/sdk/client'
+import { client } from '@memohai/sdk/client'
import type { StreamEvent, MessageStreamEvent, ChatAttachment, StreamEventHandler } from './useChat.types'
export interface WSClientMessage {
diff --git a/apps/web/src/composables/api/useContainerStream.ts b/apps/web/src/composables/api/useContainerStream.ts
index 95045915..8cff1031 100644
--- a/apps/web/src/composables/api/useContainerStream.ts
+++ b/apps/web/src/composables/api/useContainerStream.ts
@@ -1,9 +1,9 @@
-import { client } from '@memoh/sdk/client'
-import type { Options } from '@memoh/sdk'
+import { client } from '@memohai/sdk/client'
+import type { Options } from '@memohai/sdk'
import type {
HandlersCreateContainerResponse,
PostBotsByBotIdContainerData,
-} from '@memoh/sdk'
+} from '@memohai/sdk'
export type ContainerCreateLayerStatus = {
ref: string
diff --git a/apps/web/src/composables/api/usePlatform.ts b/apps/web/src/composables/api/usePlatform.ts
index d5abd700..c21cc95a 100644
--- a/apps/web/src/composables/api/usePlatform.ts
+++ b/apps/web/src/composables/api/usePlatform.ts
@@ -1,4 +1,4 @@
-import { client } from '@memoh/sdk/client'
+import { client } from '@memohai/sdk/client'
import { useQuery, useMutation, useQueryCache } from '@pinia/colada'
// ---- Types ----
diff --git a/apps/web/src/layout/main-layout/index.vue b/apps/web/src/layout/main-layout/index.vue
index 162fc701..c08d6353 100644
--- a/apps/web/src/layout/main-layout/index.vue
+++ b/apps/web/src/layout/main-layout/index.vue
@@ -10,7 +10,7 @@
diff --git a/apps/web/src/lib/api-client.ts b/apps/web/src/lib/api-client.ts
index 6b7a56e8..e2c7c508 100644
--- a/apps/web/src/lib/api-client.ts
+++ b/apps/web/src/lib/api-client.ts
@@ -1,4 +1,4 @@
-import { client } from '@memoh/sdk/client'
+import { client } from '@memohai/sdk/client'
import router from '@/router'
/**
diff --git a/apps/web/src/pages/bots/components/bot-access.vue b/apps/web/src/pages/bots/components/bot-access.vue
index 6bc16733..c2882359 100644
--- a/apps/web/src/pages/bots/components/bot-access.vue
+++ b/apps/web/src/pages/bots/components/bot-access.vue
@@ -648,7 +648,7 @@