A universal interface layer that makes any AI agent usable by humans through a single, consistent interface.
| Layer | Technology |
|---|---|
| Frontend | Next.js 16, React 19, Tailwind CSS 4 |
| Auth | Clerk |
| API | tRPC, Hono |
| Database | PostgreSQL (Neon), Drizzle ORM |
| Validation | Zod |
| Build | Turbo, pnpm |
- Node.js 22+
- pnpm 9+
# Install dependencies
pnpm install
# Build all packages
pnpm build# Copy environment template
cp apps/web/.env.example apps/web/.env.local
# Add your credentials:
# - NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY (from dashboard.clerk.com)
# - CLERK_SECRET_KEY
# - DATABASE_URL (from Neon)# Start development mode
pnpm dev
# Type checking
pnpm typecheck
# Linting
pnpm lint# Generate migrations
pnpm db:generate
# Push schema to database
pnpm db:push
# Open Drizzle Studio
pnpm db:studiomembrane/
├── apps/
│ └── web/ # Next.js 16 application
│ ├── src/app/ # App Router pages
│ ├── src/lib/ # tRPC client, providers
│ └── src/middleware.ts # Clerk auth
├── packages/
│ ├── api/ # tRPC routers (threads, messages, agents)
│ ├── adapters/ # Protocol adapters (MCP, OpenAPI)
│ ├── credentials/ # AES-256-GCM encryption utilities
│ ├── db/ # Drizzle schema & Neon client
│ ├── uap/ # Universal Agent Protocol types
│ └── ui/ # Shared UI components
└── tooling/
├── eslint-config/ # Shared ESLint rules
├── prettier-config/ # Shared formatting
└── typescript-config/ # Shared TS configs
| Package | Description |
|---|---|
@membrane/api |
tRPC routers and Hono API layer |
@membrane/adapters |
MCP and OpenAPI protocol adapters |
@membrane/credentials |
Encrypted credential vault |
@membrane/db |
Drizzle ORM schema and database client |
@membrane/uap |
Universal Agent Protocol types and Zod schemas |
@membrane/ui |
Shared React UI components |
MIT