freshcrate
Skin:/
Home > MCP Servers > vobase

vobase

The app framework built for AI coding agents. Own every line. Your AI already knows how to build on it.

Why this rank:Strong adoptionRecent releaseHealthy release cadence

Description

The app framework built for AI coding agents. Own every line. Your AI already knows how to build on it.

README

English / ไธญๆ–‡

vobase
The app framework built for AI coding agents.
Own every line. Your AI already knows how to build on it.

npm @vobase/core npm downloads GitHub stars Last commit License MIT Discord

BunTypeScriptHonoDrizzlePostgreSQLBetter AuthReactViteTanStackTailwind CSSshadcn/ui what you get ยท get started ยท code ยท skills ยท compare ยท docs


A full-stack TypeScript framework that gives you auth, database, storage, and jobs in a single process. Docker Compose Postgres for local dev, managed Postgres in production. Like a self-hosted Supabase โ€” but you own every line of code. Like Pocketbase โ€” but it's TypeScript you can read and modify.

AI coding agents (Claude Code, Cursor, Codex) understand vobase out of the box. Strict conventions and agent skills mean generated code works on the first try โ€” not the third.

You own the code. You own the data. You own the infrastructure.


what you get

One bun create vobase and you have a working full-stack app:

Primitive What it does
Runtime Bun โ€” native TypeScript, ~50ms startup, built-in test runner. One process, one container.
Database PostgreSQL via Drizzle. Docker Compose Postgres (pgvector/pg17) for local dev, managed Postgres in production. Full SQL, ACID transactions, pgvector for embeddings.
Auth better-auth. Sessions, passwords, CSRF. RBAC with role guards, API keys, and optional organization/team support. Org/SSO/2FA as plugins.
API Hono โ€” ~14KB, typed routing, Bun-first. Every AI coding tool already knows Hono.
Audit Built-in audit log, record change tracking, and auth event hooks. Every mutation is traceable.
Sequences Gap-free business number generation (INV-0001, PO-0042). Transaction-safe, never skips.
Storage File storage with virtual buckets. Local or S3 backends. Metadata tracked in Postgres.
Channels Multi-channel messaging with pluggable adapters. WhatsApp (Cloud API), email (Resend, SMTP). Inbound webhooks, outbound sends, delivery tracking. All messages logged.
Integrations Encrypted credential vault for external services (OAuth providers, APIs). AES-256-GCM at rest. Platform-aware: opt-in multi-tenant OAuth handoff via HMAC-signed JWT.
Jobs Background tasks with retries, cron, and job chains. pg-boss backed โ€” Postgres only, no Redis.
Knowledge Base Upload PDF, DOCX, XLSX, PPTX, images, HTML. Auto-extract to Markdown, chunk, embed, and search. Hybrid search with RRF + HyDE. Gemini OCR for scanned docs.
AI Agents Declarative agents via Mastra inside the agents module. Multi-provider (OpenAI, Anthropic, Google). Tools, workflows, memory processors, eval scorers, guardrails. Embedded Mastra Studio at /studio for dev. Frontend stays on AI SDK useChat.
Frontend React + TanStack Router + shadcn/ui + Tailwind v4. Type-safe routing with codegen, code-splitting. You own the component source โ€” no tailwind.config.js needed.
Skills Domain knowledge packs that teach AI agents your app's patterns and conventions.
MCP Module-aware tools with API key auth via @modelcontextprotocol/sdk. AI tools can read your schema, list modules, and view logs before generating code. Same process, shared port.
Deploy Dockerfile + railway.toml included. One railway up or docker build and you're live.

Locally, docker compose up -d starts a pgvector/pg17 Postgres instance. bun run dev and you're building. In production, point DATABASE_URL at any managed Postgres instance.


quick start

bun create vobase my-app
cd my-app
bun run dev

Start Postgres with docker compose up -d, then backend on :3000, frontend on :5173. Ships with a dashboard and audit log viewer out of the box.


what you can build

Every module is a self-contained directory: schema, handlers, jobs, pages. No plugins, no marketplace. Just TypeScript you own.

Use Case What Ships
SaaS Starter User accounts, billing integration, subscription management, admin dashboard. Auth + jobs + webhooks handle the plumbing.
Internal Tools Admin panels, operations dashboards, approval workflows. Status machines enforce business logic. Audit trails track every change.
CRM & Contacts Companies, contacts, interaction timelines, deal tracking. Cross-module references keep things decoupled.
Project Tracker Tasks, assignments, status workflows, notifications. Background jobs handle reminders and escalations.
Billing & Invoicing Invoices, line items, payments, aging reports. Integer money ensures exact arithmetic. Gap-free numbering via transactions.
Your Vertical Property management, fleet tracking, field services โ€” whatever the business needs. Describe it to your AI tool. It generates the module.

AI coding agents generate modules from your conventions. Like npx shadcn add button โ€” files get copied, you own the code.


how it works

Vobase makes itself legible to every AI coding tool on the market.

The framework ships with strict conventions and agent skills โ€” domain knowledge packs that teach AI tools how your app works. When you need a new capability:

  1. Open your AI tool and describe the requirement
  2. The AI reads your existing schema, module conventions, and the relevant skills
  3. It generates a complete module โ€” schema, handlers, jobs, pages, tests, seed data
  4. You review the diff, run bun run dev, and it works

Skills cover the parts where apps get tricky: money stored as integer cents (never floats), status transitions as explicit state machines (not arbitrary string updates), gap-free business numbers generated inside database transactions (not auto-increment IDs that leave holes).

These conventions are what make AI-generated modules work on the first try.

The thesis: your specs and domain knowledge are the asset. AI tools are the compiler. The compiler improves every quarter. Your skills compound forever.


what a module looks like

Every module declares itself through defineModule(). This convention is what AI tools rely on to generate correct code.

// modules/projects/index.ts
import { defineModule } from '@vobase/core'
import * as schema from './schema'
import { routes } from './handlers'
import { jobs } from './jobs'
import * as pages from './pages'
import seed from './seed'

export default defineModule({
  name: 'projects',
  schema,
  routes,
  jobs,
  pages,
  seed,
  init: (ctx) => {
    // Optional: run setup logic at boot with access to db, scheduler, http, storage, channels
  },
})
modules/projects/
  schema.ts           โ† Drizzle table definitions
  handlers.ts         โ† Hono routes (HTTP API)
  handlers.test.ts    โ† colocated tests (bun test)
  jobs.ts             โ† background tasks (pg-boss, no Redis)
  pages/              โ† React pages (list, detail, create)
  seed.ts             โ† sample data for dev
  index.ts            โ† defineModule()
schema example โ€” Drizzle + PostgreSQL with typed columns, timestamps, status enums
// modules/projects/schema.ts
import { pgTable, text, integer, timestamp } from 'drizzle-orm/pg-core'
import { nanoidPrimaryKey } from '@vobase/core'

export const projects = pgTable('projects', {
  id: nanoidPrimaryKey(),
  name: text('name').notNull(),
  description: text('description'),
  status: text('status').notNull().default('active'),    // active -> archived -> deleted
  owner_id: text('owner_id').notNull(),
  created_at: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(),
})

export const tasks = pgTable('tasks', {
  id: nanoidPrimaryKey(),
  project_id: text('project_id').references(() => projects.id),
  title: text('title').notNull(),
  status: text('status').notNull().default('todo'),       // todo -> in_progress -> done
  assignee_id: text('assignee_id'),
  priority: integer('priority').notNull().default(0),
})
handler example โ€” Hono routes with typed context and authorization
// modules/projects/handlers.ts
import { Hono } from 'hono'
import { getCtx } from '@vobase/core'
import { projects } from './schema'

export const routes = new Hono()

routes.get('/projects', async (c) => {
  const ctx = getCtx(c)
  return c.json(await ctx.db.select().from(projects))
})

routes.post('/projects', async (c) => {
  const ctx = getCtx(c)
  const body = await c.req.json()

  const project = await ctx.db.insert(projects).values({
    ...body,
    owner_id: ctx.user.id,
  })

  return c.json(project)
})

The frontend gets fully typed API calls via codegen:

import { hc } from 'hono/client'
import type { AppType } from './api-types.generated'

const client = hc<AppType>('/')
const res = await client.api.projects.$get()
const projects = await res.json()  // fully typed โ€” autocomplete on every route and response

AppType is code-generated from your server's route tree, giving you end-to-end type safety from handler return values to frontend consumption.

job example โ€” background tasks via pg-boss, no Redis
// modules/projects/jobs.ts
import { defineJob } from '@vobase/core'
import { tasks } from './schema'
import { eq } from 'drizzle-orm'

export const sendReminder = defineJob('projects:sendReminder',
  async (data: { taskId: string }) => {
    const task = await db.select().from(tasks)
      .where(eq(tasks.id, data.taskId))
    // send notification, update status, log the action
  }
)

Schedule from handlers: ctx.scheduler.add('projects:sendReminder', { taskId }, { delay: '1d' })

Retries, cron scheduling, and priority queues โ€” all Postgres-backed via pg-boss.


the ctx object

Every HTTP handler gets a context object with runtime capabilities. Current surface:

Property What it does
ctx.db Drizzle instance. Full PostgreSQL โ€” reads, writes, transactions.
ctx.user { id, email, name, role, activeOrganizationId? }. From better-auth session. Used for authorization checks. RBAC middlewares: requireRole(), requirePermission(), requireOrg().
ctx.scheduler Job queue. add(jobName, data, options) to schedule background work.
ctx.storage StorageService โ€” virtual buckets with local/S3 backends. ctx.storage.bucket('avatars').upload(key, data).
ctx.channels ChannelsService โ€” email and WhatsApp sends. ctx.channels.email.send(msg). All messages logged.
ctx.integrations IntegrationsService โ€” encrypted credential vault. ctx.integrations.getActive(provider) returns decrypted config or null. Platform-managed providers connected via HMAC-signed forwarding.
ctx.http Typed HTTP client with retries, timeouts, and circuit breakers.
ctx.realtime RealtimeService โ€” event-driven server-push via PostgreSQL LISTEN/NOTIFY + SSE. ctx.realtime.notify({ table, id?, action? }, tx?) after mutations.

For jobs, pass dependencies through closures/factories (or import what you need) when calling defineJob(...).

module init context

Modules can declare an init hook that receives a ModuleInitContext at boot โ€” same services as request context (db, scheduler, http, storage, channels, realtime). Unconfigured services use throw-proxies that give descriptive errors if accessed.

ctx extensions for external integrations

Beyond local capabilities (database, user, scheduler, storage), ctx provides outbound connectivity and inbound event handling:

Property What it does
ctx.http Typed fetch wrapper with retries, timeouts, circuit breakers, and structured error responses. Configurable per-app via http in vobase.config.ts.
webhooks (app-level) Inbound webhook receiver with HMAC signature verification, deduplication, and automatic enqueue-to-job. Configured in vobase.config.ts, mounted as /webhooks/* routes โ€” not a ctx property.
// vobase.config.ts
export default defineConfig({
  database: process.env.DATABASE_URL,
  integrations: { enabled: true },      // opt-in: encrypted credential store, provider configs
  storage: {                            // opt-in: file storage
    provider: { type: 'local', basePath: './data/files' },
    buckets: { avatars: { maxSize: 5_000_000 }, documents: {} },
  },
  channels: {                           // opt-in: email + WhatsApp
    email: { provider: 'resend', from: 'noreply@example.com', resend: { apiKey: '...' } },
  },
  http: {
    timeout: 10_000,
    retries: 3,
    retryDelay: 500,
    circuitBreaker: { threshold: 5, resetTimeout: 30_000 },
  },
  webhooks: {
    'stripe-events': {
      path: '/webhooks/stripe',
      secret: process.env.STRIPE_WEBHOOK_SECRET,
      handler: 'system:processWebhook',
      signatureHeader: 'stripe-signature',
      dedup: true,
    },
  },
})

Credentials stay in .env. Config declares the shape.


vs the alternatives

Vobase Supabase Pocketbase Rails / Laravel
What you get Full-stack scaffold (backend + frontend + skills) Backend-as-a-service (db + auth + storage + functions) Backend binary (db + auth + storage + API) Full-stack framework
Language TypeScript end-to-end TypeScript (client) + PostgreSQL Go (closed binary) Ruby / PHP
Database PostgreSQL (Docker Compose local, managed prod) PostgreSQL (managed) SQLite (embedded) PostgreSQL / MySQL
Self-hosted One process, one container 10+ Docker containers One binary Multi-process
You own the code Yes โ€” all source in your project No โ€” managed service No โ€” compiled binary Yes โ€” but no AI conventions
AI integration Agent skills + MCP + strict conventions None None None
How you customize Edit the code. AI reads it. Dashboard + RLS policies Admin UI + hooks Edit the code
Hosting cost As low as $15/mo $25/mo+ (or complex self-host) Free (self-host) Varies
Data isolation Physical (one db per app) Logical (RLS) Physical Varies
License MIT Apache 2.0 MIT MIT

vs Supabase: Self-hosted Supabase is 10+ Docker containers. RLS policies are hard to reason about. You don't own the backend code. Vobase is one process, you own every line โ€” AI agents can read and modify everything.

vs Pocketbase: Pocketbase is a Go binary. You can see the admin UI, but you can't read or modify the internals. When you need custom business logic, you're writing Go plugins or calling external services. Vobase is TypeScript you own โ€” AI agents understand and extend it natively.

vs Rails / Laravel: Great frameworks, but they weren't designed for AI coding agents. Vobase's strict conventions and agent skills mean AI-generated code follows your patterns consistently. Plus: simpler stack (no Redis, single process, TypeScript end-to-end).


runtime architecture

One Bun process. One Docker container. One app.

Docker container (--restart=always)
  โ””โ”€โ”€ Bun process (PID 1)
        โ”œโ”€โ”€ Hono server
        โ”‚     โ”œโ”€โ”€ /auth/*       โ†’ better-auth (sessions, passwords, CSRF)
        โ”‚     โ”œโ”€โ”€ /api/*        โ†’ module handlers (session-validated)
        โ”‚     โ”œโ”€โ”€ /api/agents/*  โ†’ Mastra agent/tool/workflow API
        โ”‚     โ”œโ”€โ”€ /studio       โ†’ Mastra Studio SPA (dev-only)
        โ”‚     โ”œโ”€โ”€ /mcp          โ†’ MCP server (same process, shared port)
        โ”‚     โ”œโ”€โ”€ /webhooks/*   โ†’ inbound event receiver (signature verified, dedup)
        โ”‚     โ””โ”€โ”€ /*            โ†’ frontend (static, from dist/)
        โ”œโ”€โ”€ Drizzle (bun:sql โ†’ PostgreSQL)
        โ”œโ”€โ”€ Built-in modules
        โ”‚     โ”œโ”€โ”€ _auth         โ†’ better-auth behind AuthAdapter contract
        โ”‚     โ”œโ”€โ”€ _audit        โ†’ audit log, record tracking, auth hooks
        โ”‚     โ”œโ”€โ”€ _sequences    โ†’ gap-free business number counters
        โ”‚     โ”œโ”€โ”€ _integrations โ†’ encrypted credential vault, platform OAuth handoff (opt-in)
        โ”‚     โ”œโ”€โ”€ _storage      โ†’ virtual buckets, local/S3 (opt-in)
        โ”‚     โ””โ”€โ”€ _channels     โ†’ unified messaging, adapter pattern (opt-in)
        โ”œโ”€โ”€ pg-boss (Postgres-backed job queue)
        โ”œโ”€โ”€ Outbound HTTP (typed fetch, retries, circuit breakers)
        โ””โ”€โ”€ Audit middleware (all mutations โ†’ _audit_log)

mcp server

Runs in the same Bun process on the same port. Authenticated via API keys (better-auth apiKey plugin). When you connect Claude Code, Codex, Cursor, or any MCP-compatible tool, it sees your app:

Tool What it does
list_modules List all registered modules (built-in + user)
read_module Read table names from a specific module schema
get_schema List all table names across every module
view_logs Return recent audit log entries

The AI sees your exact data model, your existing modules, and the conventions before it writes a single line of code.


deployment

Ship a Docker image. Railway, Fly.io, or any Docker host. Set DATABASE_URL for a managed Postgres connection.

Railway (quickest):

railway up

The template ships with Dockerfile and railway.toml pre-configured. Add a Postgres plugin and Railway sets DATABASE_URL automatically.

Docker Compose:

# docker-compose.yml
services:
  vobase:
    image: your-registry/my-vobase:latest
    restart: always
    environment:
      DATABASE_URL: postgres://user:pass@db:5432/vobase
    ports:
      - "3000:3000"
  db:
    image: postgres:17
    volumes:
      - pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: vobase
      POSTGRES_USER: user
      POSTGRES_PASSWORD: pass
volumes:
  pgdata:

project commands

After scaffolding, your project uses standard tools directly โ€” no wrapper CLI:

Command What it does
bun run dev Start Bun backend with --watch and Vite frontend. Auto-restarts on changes.
docker compose up -d Start local Postgres (pgvector/pg17, port 5432).
bun run db:push Apply fixtures then push schema to database (dev).
bun run db:generate Generate migration files for production.
bun run db:migrate Run migrations against the database.
bun run db:seed Seed default admin user and sample data.
bun run db:reset Drop and recreate database, push schema, and seed.
bun run db:studio Open Drizzle Studio for visual database browsing.

project structure

my-app/
  .env
  .env.example
  package.json            โ† depends on @vobase/core
  docker-compose.yml      โ† local Postgres (pgvector/pg17)
  drizzle.config.ts
  vobase.config.ts        โ† database URL, auth, connections, webhooks
  vite.config.ts          โ† Vite + TanStack Router + path aliases
  index.html
  server.ts               โ† createApp() entry
  AGENTS.md               โ† project context and guardrails (CLAUDE.md symlinks here)
  .agents/
    skills/
      integer-money/
        SKILL.md          โ† core: all money as integer cents
  modules/
    messaging/            โ† conversations, contacts, channels, labels, state machine
      index.ts            โ† defineModule()
      schema.ts           โ† conversations, messages, contacts, channels, labels, etc.
      handlers/           โ† conversations, contacts, channels, labels, activity
      jobs.ts             โ† outbox delivery, channel sessions
      lib/                โ† state machine, channel reply, delivery, inbound
      pages/              โ† inbox, conversations, contacts, channels, labels
      seed.ts             โ† demo data
    agents/               โ† AI agents, evals, guardrails, memory, MCP
      index.ts            โ† defineModule()
      schema.ts           โ† moderation_logs (scorers use Mastra native storage)
      handlers/           โ† chat, agents, evals, guardrails, memory, metrics, MCP
      jobs.ts             โ† agent wake
      mastra/             โ† Mastra primitives
        index.ts          โ† Mastra singleton: initMastra(), getMastra(), getMemory()
        studio.ts         โ† dev-only Studio SPA middleware
        agents/           โ† agent definitions (Mastra Agent instances)
        tools/            โ† RAG tools, booking, conversation tools
        processors/       โ† input/output processors, moderation guardrail
        evals/            โ† code scorers, custom scorer factory
        mcp/              โ† AI module MCP server
        storage/          โ† VobaseMemoryStorage (hybrid Mastra + Vobase)
        lib/              โ† DI, model aliases, observability
      pages/              โ† evals dashboard, guardrails, memory
    automation/           โ† browser task automation
      index.ts
      pages/
    system/               โ† ops dashboard
      index.ts            โ† defineModule()
      handlers.ts         โ† health, audit log, sequences, record audits
      pages/
    knowledge-base/       โ† document ingestion + hybrid search
      index.ts
      schema.ts
      handlers.ts
      jobs.ts             โ† async document processing via queue
      lib/                โ† extract, chunk, embed, search pipeline
      pages/
    integrations/         โ† external service credential management
      index.ts
      handlers.ts
      jobs.ts
    index.ts              โ† module registry
    your-module/          โ† modules you add
      index.ts            โ† defineModule()
      schema.ts
      handlers.ts
      jobs.ts
      pages/
  src/
    main.tsx
    home.tsx
    root.tsx
    routeTree.gen.ts      โ† generated TanStack route tree
    lib/
    components/
      ui/                 โ† shadcn/ui (owned by you)
      ai-elements/        โ† AI chat UI components (owned by you)
      chat/               โ† chat-specific components
      data-table/         โ† DiceUI data-table components
    shell/
      app-layout.tsx      โ† main app shell with sidebar
      shell-header.tsx
      command-palette.tsx
      auth/               โ† login, signup
      settings/           โ† user, org, API keys, integrations settings
    hooks/
    styles/
    stores/
    types/
  data/
    files/                โ† optional, created on first upload

Star History

Star History Chart

Star if the repo has helped you


license

MIT. Own everything.

Release History

VersionChangesUrgencyDate
@vobase/template@3.18.0### Minor Changes - [`8d85b50`](https://github.com/vobase/vobase/commit/8d85b50aba6e9d9ebe7b21e8ddc04365e252fa3b) Thanks [@mdluo](https://github.com/mdluo)! - # Lead routing + conversation ownership, scriptable agent ops, and a blocking wake test verb A batch of operator- and agent-facing capabilities: a staff-attributeโ€“driven lead-routing engine with conversation ownership, three CLI verbs for managing an agent's skills without a redeploy, a one-call end-to-end wake test verb, and an exHigh5/29/2026
@vobase/template@3.17.1### Patch Changes - Updated dependencies \[[`4cf453c`](https://github.com/vobase/vobase/commit/4cf453c83adc1bd161b9a85acd111d3860e6426e)]: - @vobase/core@0.43.1 High5/22/2026
@vobase/template@3.14.1### Patch Changes - [`49231d7`](https://github.com/vobase/vobase/commit/49231d746fcd5d47f0a8b37aca8d8a0f2871613c) Thanks [@mdluo](https://github.com/mdluo)! - Three independent template changes, batched: **Operator-agent heartbeat kill-switch.** A new org-scoped setting, `operatorHeartbeatEnabled`, gates the cron-driven standalone-lane wakes (`renderStandaloneBrief`). The Settings โ†’ Operator agent section now exposes a toggle backed by `useOrgSetting`, a new generic hHigh5/15/2026
@vobase/template@3.8.2### Patch Changes - Updated dependencies \[[`84df3b9`](https://github.com/vobase/vobase/commit/84df3b959e9ec0b01fed74513052bd62ebde98b0), [`a9dc138`](https://github.com/vobase/vobase/commit/a9dc1385c5ee4ebee79e18c72b19995d5d984e75)]: - @vobase/core@0.39.0 High5/11/2026
@vobase/template@3.4.0### Minor Changes - [`e3d4817`](https://github.com/vobase/vobase/commit/e3d48170834b8be36413c7dcd8bee3cc14f0411e) Thanks [@mdluo](https://github.com/mdluo)! - # Changes module: history audit log + self-learn observer The changes module previously only surfaced **pending** proposals. Once a staff reviewer approved or rejected one, the row simply vanished โ€” no audit log, no "applied to /policies/refunds.md" feedback, no way to answer "who decided this and when?". And the self-learn loop waHigh5/5/2026
create-vobase@0.7.0# create-vobase ## 0.6.2 ### Patch Changes - [`91e5b70`](https://github.com/vobase/vobase/commit/91e5b701e1580f32d0172e9b9bcceb917f95f437) Thanks [@mdluo](https://github.com/mdluo)! - Migrate scaffolder from `.agents/skills` to `.claude/skills` The repo moved agent skills from `.agents/skills/` to `.claude/skills/` and replaced `AGENTS.md` with `CLAUDE.md`. This updates the scaffolder to match: - **Remove CLAUDE.md โ†’ AGENTS.md symlink** โ€” scaffolded projects now have `CLAUDE.md`High4/30/2026
@vobase/core@0.33.0### Minor Changes - [`d792910`](https://github.com/vobase/vobase/commit/d7929108fc7c54e7e5ac66a7d7300886fa028b35) Thanks [@mdluo](https://github.com/mdluo)! - # Realtime LISTEN DSN + auth id generation + idempotent auto-join Three focused core changes shipped together. ## Realtime: dedicated LISTEN DSN for pooled deployments The realtime service (`createRealtimeService` / `createApp`) now accepts an optional dedicated DSN for its LISTEN connection. This fixes silent SSE High4/22/2026
create-vobase@0.6.2### Patch Changes - [`91e5b70`](https://github.com/vobase/vobase/commit/91e5b701e1580f32d0172e9b9bcceb917f95f437) Thanks [@mdluo](https://github.com/mdluo)! - Migrate scaffolder from `.agents/skills` to `.claude/skills` The repo moved agent skills from `.agents/skills/` to `.claude/skills/` and replaced `AGENTS.md` with `CLAUDE.md`. This updates the scaffolder to match: - **Remove CLAUDE.md โ†’ AGENTS.md symlink** โ€” scaffolded projects now have `CLAUDE.md` as the primary file, no syHigh4/17/2026
@vobase/core@0.32.1### Patch Changes - [`ad4bf1e`](https://github.com/vobase/vobase/commit/ad4bf1ed0851ed5cd17d48f8d32fd2cf8e034c4d) Thanks [@mdluo](https://github.com/mdluo)! - # Shorten default nanoid IDs from 12 to 8 characters Reduced the default nanoid primary key length from 12 to 8 characters across all tables. Each Vobase project is single-tenant with relatively small data volumes, so 12 characters of entropy was unnecessarily long. 8 characters with a 36-char alphabet provides ~41 bits of entropy High4/14/2026
@vobase/core@0.32.0### Minor Changes - [`e31a02d`](https://github.com/vobase/vobase/commit/e31a02dc0cf7aee5ca83936c4ac18cd072197daf) Thanks [@mdluo](https://github.com/mdluo)! - # Decouple Core from Platform Remove all platform-specific code from `@vobase/core`, making it a fully generic framework. Platform-specific functionality (auth plugins, push routes, token refresh) now belongs in the template layer. ## Breaking Changes ### Removed Exports | Removed Export |Medium4/13/2026
@vobase/core@0.31.0### Minor Changes - [`70e1fcb`](https://github.com/vobase/vobase/commit/70e1fcb0a5fd10bec0b3aa7ef4dc2b7a3026f835) Thanks [@mdluo](https://github.com/mdluo)! - # Channel Adapter Contract Extensions & Organization Teams ## Channel Adapter Contract Extended `ChannelAdapter` with six new optional fields for richer channel integration: | Field | Type | Purpose | Medium4/12/2026
@vobase/core@0.30.3### Patch Changes - Gate auto-create org on VITE_PLATFORM_TENANT_NAME env var Only auto-create the default organization when `VITE_PLATFORM_TENANT_NAME` is set, preventing the platform service and test environments from creating unwanted orgs. High4/7/2026
@vobase/core@0.30.1### Patch Changes - Use VITE_PLATFORM_TENANT_NAME for default org name The auto-created default organization now reads its name from the `VITE_PLATFORM_TENANT_NAME` environment variable, falling back to `appName` config. This ensures platform-provisioned tenants get an org named after the tenant, not the product. Medium4/7/2026
@vobase/core@0.30.0### Minor Changes - Auto-create default organization on first boot When the auth module initializes and no organization exists in the database, automatically create a default one using the `appName` config value. This ensures platform-provisioned projects have a working org without needing to run the seed script. Combined with the first-member-owner feature (first domain-matched user becomes org owner), new deployments are fully functional out of the box. Medium4/7/2026
@vobase/core@0.29.1### Patch Changes - First domain-matched member auto-joins as org owner When a user auto-joins an organization via email domain match, the first member to join becomes the `owner` instead of `member`. Subsequent domain-matched users continue to join as `member`. This ensures newly provisioned orgs with domain auto-join have an owner without manual role assignment. Medium4/7/2026
@vobase/core@0.29.0### Minor Changes - [`a4749b4`](https://github.com/vobase/vobase/commit/a4749b40142a0d65f1c4b981c1c93f2e0566a76f) Thanks [@mdluo](https://github.com/mdluo)! - Add organization auto-join on sign-in and multi-org support - Configure better-auth organization plugin with `multiOrg` flag (default `false` for single-org soft-lock) and `sendInvitationEmail` callback - Auto-join organization after sign-in: pending invitation acceptance (any mode) or domain-based join (single-org only) Medium4/6/2026
@vobase/core@0.28.0### Minor Changes - Email OTP auth, domain allowlist, and channel provisioning IoC - Migrate auth from email+password to email OTP as the sole sign-in method - Add `allowedEmailDomains` config to restrict self-signup to specific domains (existing users bypass the check) - Add `extraPlugins` config for template-level better-auth plugins (e.g. dev-login) - Add `appName` config for white-label branding in auth emails - Enforce domain allowlist on platform OAuth calMedium4/6/2026
@vobase/core@0.27.4### Patch Changes - Add detailed logging to inbound webhook handler: log on receipt, signature verification, event parsing, and event emission for debugging webhook delivery issues. Medium4/5/2026
@vobase/core@0.27.3### Patch Changes - Add integrations service to ProvisionChannelCtx, enabling onProvisionChannel callbacks to read stored credentials from the vault for hot-registering channel adapters during platform provisioning. Medium4/5/2026
@vobase/core@0.27.2### Patch Changes - [`e41d659`](https://github.com/vobase/vobase/commit/e41d6597afe631060f6b0978276e71e324b44e5b) Thanks [@mdluo](https://github.com/mdluo)! - Graceful fallback for job worker when pg-boss fails to start. Returns a no-op worker so the app boots without job processing instead of crashing. Medium4/4/2026
@vobase/core@0.27.1### Patch Changes - [`93ff614`](https://github.com/vobase/vobase/commit/93ff6147a73791dd4e40939912bbb3ee0851a749) Thanks [@mdluo](https://github.com/mdluo)! - Graceful fallback when pg-boss fails to start (e.g. stale schema). Returns a no-op scheduler that logs warnings instead of crashing the app. Also catches errors inside `schedule()` to prevent unhandled rejections from synchronous `init()` hooks. Medium4/4/2026
@vobase/core@0.27.0### Minor Changes - [`41ca4d8`](https://github.com/vobase/vobase/commit/41ca4d844d399cfc3fedb92754d3a43950b33dd2) Thanks [@mdluo](https://github.com/mdluo)! - Add `scheduler.schedule()` / `unschedule()` API backed by pg-boss cron for persistent, idempotent, multi-instance-safe recurring jobs. Migrate integrations token refresh from `setInterval` to `schedule()`. Harden integrations service: add `'disconnected'` to schema CHECK constraint, Zod-validate `/token/update` platform endpoint, eMedium4/4/2026
@vobase/core@0.26.0### Minor Changes - [`839158a`](https://github.com/vobase/vobase/commit/839158ac8801e8617d6a739663a21f4c1f0fe7a4) Thanks [@mdluo](https://github.com/mdluo)! - feat(core): Cloudflare integration โ€” configure upsert, storage vault override, getActive ordering **Configure endpoint upsert:** - Configure handler checks for existing active platform-managed integration before inserting - Prevents duplicate rows on re-provisioning or credential rotation - `updateConfig()` gainsMedium4/4/2026
@vobase/core@0.24.0### Minor Changes - [`2c87528`](https://github.com/vobase/vobase/commit/2c87528e9b09afe5f1b80cc8a7fa6677bb6e66cd) Thanks [@mdluo](https://github.com/mdluo)! - Add createApiKey/revokeApiKey to auth contract and ModuleInitContext - New `CreateApiKey` and `RevokeApiKey` types in auth contract for programmatic API key management - `revokeApiKey(keyId)` disables an API key by ID (used by automation module on session disconnect) - `createApiKey` accepts `expiresIn` for time-boundMedium4/4/2026
@vobase/core@0.23.1### Patch Changes - [`bd61237`](https://github.com/vobase/vobase/commit/bd61237eae81c36b05ea3f0642e0b858db250bac) Thanks [@mdluo](https://github.com/mdluo)! - # HTTP Client Retry Fix & Codebase Cleanup ## HTTP Client: Body Replay on Retry Fixed a bug where `createHttpClient` would throw "Body already used" when retrying a POST/PUT/PATCH request after a transient failure. `ReadableStream` bodies are now buffered to `ArrayBuffer` before the retry loop so they can be replayed safely. Medium4/3/2026
create-vobase@0.6.1### Patch Changes - [`2428946`](https://github.com/vobase/vobase/commit/24289469613dbac3a82b1927a55a0096839fbbfc) Thanks [@mdluo](https://github.com/mdluo)! - Fix PGlite vector extension support in scaffolded projects. The drizzle-kit patch that enables `extensions` passthrough was being stripped during scaffolding, causing `db:push` to fail with `"$libdir/vector": No such file or directory` on any schema using `vector()` columns (e.g. AI module embeddings). Medium4/1/2026
@vobase/core@0.23.0### Minor Changes - [`0a4eef6`](https://github.com/vobase/vobase/commit/0a4eef68c4d812f5527fa5eca4ed6e1d25c51b62) Thanks [@mdluo](https://github.com/mdluo)! - Add knip for unused code detection, clean up dead code, and upgrade dependencies **Knip integration:** - Configure knip monorepo workspaces for root, core, template, and create-vobase - Scaffolder generates standalone `knip.json` for projects created with `bun create vobase` **Dead code cleanup:** - Delete Medium3/28/2026
create-vobase@0.6.0### Minor Changes - [`0a4eef6`](https://github.com/vobase/vobase/commit/0a4eef68c4d812f5527fa5eca4ed6e1d25c51b62) Thanks [@mdluo](https://github.com/mdluo)! - Add knip for unused code detection, clean up dead code, and upgrade dependencies **Knip integration:** - Configure knip monorepo workspaces for root, core, template, and create-vobase - Scaffolder generates standalone `knip.json` for projects created with `bun create vobase` **Dead code cleanup:** - Delete Medium3/28/2026
@vobase/core@0.22.1### Patch Changes - [`5dbe914`](https://github.com/vobase/vobase/commit/5dbe914be2f738afac84f8c248ce090be5a51851) Thanks [@mdluo](https://github.com/mdluo)! - # AI-Native Messaging: Multi-Channel Agent + Conversations Workspace ![Multi-Channel Agent](https://raw.githubusercontent.com/vobase/vobase/main/.changeset/og-multi-channel-agent-v0.12.0.png) ## Overview Complete overhaul of the messaging architecture โ€” from ticket-based agents to an AI-native conversations workspace. TheMedium3/26/2026
@vobase/core@0.22.0### Minor Changes - [`815d5f4`](https://github.com/vobase/vobase/commit/815d5f47e1dc5bafd982e9a44d3b8962f1d67c83) Thanks [@mdluo](https://github.com/mdluo)! - # Realtime SSE: Event-Driven Server-Push via LISTEN/NOTIFY ![Realtime SSE](https://raw.githubusercontent.com/vobase/vobase/main/.changeset/og-sse-realtime-0.22.0.png) ## RealtimeService New core infrastructure service that bridges PostgreSQL LISTEN/NOTIFY to Server-Sent Events. Modules opt in by calling `ctx.realtime.notiMedium3/23/2026
@vobase/core@0.21.0### Minor Changes - [`9a202d9`](https://github.com/vobase/vobase/commit/9a202d95e99483829e066c68ff3b257e5c4aa0df) Thanks [@mdluo](https://github.com/mdluo)! - # PostgreSQL Schema Isolation ## BREAKING CHANGES All database tables are now isolated into per-module PostgreSQL schemas instead of using table name prefixes. Existing databases require migration. | Schema | Tables (old โ†’ new) Medium3/23/2026
create-vobase@0.5.2### Patch Changes - [`20061f2`](https://github.com/vobase/vobase/commit/20061f263fdf666fd20e917af66b8192436f2989) Thanks [@mdluo](https://github.com/mdluo)! - # AI Module: Mastra Integration & Memory Pipeline ![AI Module](https://raw.githubusercontent.com/vobase/vobase/main/.changeset/og-ai-module-0.20.0.png) ## Mastra Agent Architecture Replaced the database-driven agent factory pattern with static Mastra `Agent` instances using dynamic processors. Agents are now defined as coLow3/22/2026
@vobase/core@0.20.0### Minor Changes - [`20061f2`](https://github.com/vobase/vobase/commit/20061f263fdf666fd20e917af66b8192436f2989) Thanks [@mdluo](https://github.com/mdluo)! - # AI Module: Mastra Integration & Memory Pipeline ![AI Module](https://raw.githubusercontent.com/vobase/vobase/main/.changeset/og-ai-module-0.20.0.png) ## Mastra Agent Architecture Replaced the database-driven agent factory pattern with static Mastra `Agent` instances using dynamic processors. Agents are now defined as coLow3/22/2026
@vobase/core@0.19.1### Patch Changes - [`73b9885`](https://github.com/vobase/vobase/commit/73b988577c1d7103602c6211f5956e160570db13) Thanks [@mdluo](https://github.com/mdluo)! - # Mastra Agents: Declarative AI with Multi-Provider Streaming ![Mastra Agents](https://raw.githubusercontent.com/vobase/vobase/main/.changeset/og-mastra-agents-0.19.0.png) ## Declarative Agent Definitions The messaging module's backend AI orchestration now uses [Mastra](https://mastra.ai) instead of raw AI SDK calls. AgenLow3/21/2026
@vobase/core@0.19.0### Minor Changes - [`8cbf560`](https://github.com/vobase/vobase/commit/8cbf5604ec6cfbdedcec4373dda596a0e114c0e9) Thanks [@mdluo](https://github.com/mdluo)! - Upgrade pg-boss to v12 and @electric-sql/pglite to v0.4. Move both to peerDependencies so consumers stay version-aligned. **pg-boss 12 breaking changes handled:** - Named export (`import { PgBoss }`) โ€” default export removed - Queue names normalized from `module:job` to `module/job` (colon no longer allowed) - `SLow3/20/2026
@vobase/core@0.18.0### Minor Changes - [`a75cfc3`](https://github.com/vobase/vobase/commit/a75cfc3977476b4a1b68b38f4e1e85da0ce81885) Thanks [@mdluo](https://github.com/mdluo)! - Fix platform OAuth integration flow (3 bugs found during e2e testing): - Mount platform auth routes before better-auth catch-all so `/api/auth/platform-callback` is reachable - Use `signUpEmail()` instead of `createUser()` (which requires the admin plugin) when creating platform users - Sign session cookie with HMAC-SLow3/20/2026
@vobase/core@0.17.0### Minor Changes - [`ec6696f`](https://github.com/vobase/vobase/commit/ec6696fb24d22555f451c2d2c37345f60bb2564d) Thanks [@mdluo](https://github.com/mdluo)! - Add platform integration infrastructure: OAuth proxy callback, webhook signature verification, token refresh delegation, and createPlatformSession auth adapter method. Low3/19/2026
create-vobase@0.5.1### Patch Changes - [`e985f08`](https://github.com/vobase/vobase/commit/e985f08e325f6e36113f0bf287f5b6985c18d9ab) Thanks [@mdluo](https://github.com/mdluo)! - Remove unused `better-sqlite3` resolution from workspace root and drop redundant `db:current` step from scaffolder setup flow Low3/19/2026
create-vobase@0.5.0### Minor Changes - [`7bee4e5`](https://github.com/vobase/vobase/commit/7bee4e5bda35b6bec8e6e15ec65dabb7c27575fa) Thanks [@mdluo](https://github.com/mdluo)! - ## create-vobase ### Agent skills download Scaffolded projects now include the full vobase agent skills collection. During `bun create vobase`, skills are downloaded from the repo into `.agents/skills/` and symlinked into `.claude/skills/` so Claude Code discovers them automatically. ### Dynamic core schema resolution Low3/18/2026
@vobase/core@0.15.1### Patch Changes - [`7bee4e5`](https://github.com/vobase/vobase/commit/7bee4e5bda35b6bec8e6e15ec65dabb7c27575fa) Thanks [@mdluo](https://github.com/mdluo)! - ## create-vobase ### Agent skills download Scaffolded projects now include the full vobase agent skills collection. During `bun create vobase`, skills are downloaded from the repo into `.agents/skills/` and symlinked into `.claude/skills/` so Claude Code discovers them automatically. ### Dynamic core schema resolution Low3/18/2026
create-vobase@0.4.0### Minor Changes - [`4a7dd8e`](https://github.com/vobase/vobase/commit/4a7dd8e6a96491b851f1e88d07a983bfb2dbe04f) Thanks [@mdluo](https://github.com/mdluo)! - # PostgreSQL Migration ![PostgreSQL Migration](https://raw.githubusercontent.com/vobase/vobase/main/.changeset/og-postgres-0.15.png) **BREAKING CHANGE:** Vobase now uses PostgreSQL instead of SQLite. PGlite provides zero-config embedded Postgres for local development. Production deployments use managed Postgres via `DATABASE_ULow3/17/2026
@vobase/core@0.15.0### Minor Changes - [`4a7dd8e`](https://github.com/vobase/vobase/commit/4a7dd8e6a96491b851f1e88d07a983bfb2dbe04f) Thanks [@mdluo](https://github.com/mdluo)! - # PostgreSQL Migration ![PostgreSQL Migration](https://raw.githubusercontent.com/vobase/vobase/main/.changeset/og-postgres-0.15.png) **BREAKING CHANGE:** Vobase now uses PostgreSQL instead of SQLite. PGlite provides zero-config embedded Postgres for local development. Production deployments use managed Postgres via `DATABASE_ULow3/17/2026
@vobase/core@0.14.1### Patch Changes - [`2f94bdd`](https://github.com/vobase/vobase/commit/2f94bdd7ccc2759807b9c7be209afe67e1904252) Thanks [@mdluo](https://github.com/mdluo)! - # v0.14 Post-Release Cleanup ## Breaking Changes - `StorageProvider` renamed to `StorageAdapter` - `createLocalProvider` renamed to `createLocalAdapter` - `createS3Provider` renamed to `createS3Adapter` - `StorageProviderConfig`, `LocalProviderConfig`, `S3ProviderConfig` renamed to `StorageAdapterConfig`, `Low3/16/2026
@vobase/core@0.14.0### Minor Changes - [`d33b998`](https://github.com/vobase/vobase/commit/d33b998b9a538105acbda104db5d1bc25e248974) Thanks [@mdluo](https://github.com/mdluo)! - # Channels, Messaging & Type Safety ![Channels & Messaging](https://raw.githubusercontent.com/vobase/vobase/main/.changeset/og-channels-messaging-v0.14.png) ## Channels Module (Core) New built-in `_channels` module provides a unified multi-channel messaging infrastructure with pluggable adapters. ### Channel AdaptersLow3/16/2026
@vobase/core@0.13.0### Minor Changes - [`a3e100a`](https://github.com/vobase/vobase/commit/a3e100a662db7cbf593ee9332344cf5d565232e9) Thanks [@mdluo](https://github.com/mdluo)! - # Template UI Overhaul: Linear-Quality Shell, AI Elements Chat, Settings & Auth Redesign ![Template UI Overhaul](https://raw.githubusercontent.com/vobase/vobase/main/.changeset/og-template-ui-overhaul-0.13.0.png) Comprehensive frontend overhaul of the Vobase template โ€” 90 files changed, +10,829/-1,003 lines across 20 commits. Low3/15/2026
@vobase/core@0.12.0### Minor Changes - [`64f33ca`](https://github.com/vobase/vobase/commit/64f33ca5fdd858b669482a88c0ccb0bb1167882e) Thanks [@mdluo](https://github.com/mdluo)! - # Knowledge Base: Document Extraction + Hybrid Search ![Vobase Knowledge Base v0.12.0](https://raw.githubusercontent.com/vobase/vobase/main/.changeset/og-kb-extraction-0.12.0.png) ## Document Extraction Layer The knowledge base module now supports uploading and extracting text from **6 document formats** โ€” PDF, DOCX, XLSXLow3/14/2026
@vobase/core@0.11.0### Minor Changes - [`e75eb69`](https://github.com/vobase/vobase/commit/e75eb695a551479697d77a731311d118eea5e3c7) Thanks [@mdluo](https://github.com/mdluo)! - ### Breaking: `createApp()` is now async `createApp()` returns a `Promise` instead of a synchronous result. Update your `server.ts`: ```ts // Before const app = createApp({ ...config, modules }); // After const app = await createApp({ ...config, modules }); ``` This change enables dynamic imports of bLow3/13/2026
@vobase/core@0.10.0### Minor Changes - [`cc4c59e`](https://github.com/vobase/vobase/commit/cc4c59e2a5a64f5935e2ef334dacf0b8fbb94fdb) Thanks [@mdluo](https://github.com/mdluo)! - Add RBAC support with role guards, API key auth, and optional organization/team support. Reorganize core source into mcp/ and infra/ subdirectories. Add module-aware MCP CRUD tools with API key authentication. Schema tables for apikey (always), organization/member/invitation (opt-in). ### New features - **better-auth pluginsLow3/13/2026
@vobase/core@0.9.0### Minor Changes - [`ab63ba9`](https://github.com/vobase/vobase/commit/ab63ba9ac2b6842c418d4bcbf358f4cdcaea1758) Thanks [@mdluo](https://github.com/mdluo)! - Add RBAC support with role guards, API key auth, and optional organization/team support. Reorganize core source into mcp/ and infra/ subdirectories. Add module-aware MCP CRUD tools. Schema tables for apikey (always), organization/member/invitation (opt-in). ### New features - **RBAC middlewares**: `requireRole()`, `requirePeLow3/12/2026
@vobase/core@0.8.0### Minor Changes - [`87891b5`](https://github.com/vobase/vobase/commit/87891b52d117a20638f086df970b0f0e3b703428) Thanks [@mdluo](https://github.com/mdluo)! - Extract auth, storage, and notify into built-in modules with config-driven boot. Auth uses an `AuthAdapter` interface, storage provides a virtual bucket model (`StorageService` + `BucketHandle`) with local and S3 providers, and notify offers channel-based delivery (email via Resend/SMTP, WhatsApp via WABA) with automatic logging. TemplaLow3/12/2026
create-vobase@0.3.0### Minor Changes - [`39d2ff1`](https://github.com/vobase/vobase/commit/39d2ff137d841090f21e585661631be581edb973) Thanks [@mdluo](https://github.com/mdluo)! - Support scaffolding into the current directory with `bunx create-vobase@latest .`, requiring a clean git working tree Low3/12/2026
@vobase/core@0.7.0### Minor Changes - [`8c126c9`](https://github.com/vobase/vobase/commit/8c126c96b128a2a1b11d556e93ea2f11f07ef7e7) Thanks [@mdluo](https://github.com/mdluo)! - Phase 1 architecture rethink: extract built-in modules, config-driven boot, core contracts **Breaking changes:** - `ensureCoreTables()` and `runMigrations()` removed โ€” tables are now managed by drizzle-kit - `createSystemModule()`, `createSystemRoutes()` removed โ€” system module moved to template - `credentialsTabLow3/12/2026
create-vobase@0.2.4### Patch Changes - [`fc504cb`](https://github.com/vobase/vobase/commit/fc504cb37187caf1150d2e1dc781ba17f9646d7e) Thanks [@mdluo](https://github.com/mdluo)! - Fix login layout flash, first-click sign-in, and /system blank page redirect Low3/11/2026
create-vobase@0.2.3### Patch Changes - [`b2a205d`](https://github.com/vobase/vobase/commit/b2a205d35fc9c3c96ad4b99c532c2e44c9670ccc) Thanks [@mdluo](https://github.com/mdluo)! - Add colored output to scaffolder with green checkmarks and bold headings Low3/11/2026
create-vobase@0.2.2### Patch Changes - [`77016c6`](https://github.com/vobase/vobase/commit/77016c6964647e87eae5ff4bc962a0e82f5aefdb) Thanks [@mdluo](https://github.com/mdluo)! - Stub better-sqlite3 so drizzle-kit uses bun:sqlite driver; clean up seed script output Low3/11/2026
create-vobase@0.2.1### Patch Changes - [`eb36f3e`](https://github.com/vobase/vobase/commit/eb36f3e8b00547468e9e36a6d2bb2e0f7e12d112) Thanks [@mdluo](https://github.com/mdluo)! - Use stronger default password (Admin@vobase1) for dev admin to avoid browser warnings Low3/11/2026
create-vobase@0.2.0### Minor Changes - [`0ec8c7d`](https://github.com/vobase/vobase/commit/0ec8c7deade6d64bd98accde44e10498684dc4db) Thanks [@mdluo](https://github.com/mdluo)! - Rewrite scaffolder for bun-only runtime with full setup flow: resolve workspace deps, generate .env with random secret, create data dir, generate routes, and push schema to SQLite. Low3/11/2026

Dependencies & License Audit

Loading dependencies...

Similar Packages

agentconfig.orgElevate your AI assistants by configuring them for any role or workflow. Explore the primitives that unlock their full potential.0.0.0
claude-code-proxyMonitor and visualize your Claude Code API interactions with Claude Code Proxy. Easily set up a transparent proxy and live dashboard. ๐Ÿ› ๏ธ๐Ÿš€main@2026-06-06
oh-my-piโŒฅ AI Coding agent for the terminal โ€” hash-anchored edits, optimized tool harness, LSP, Python, browser, subagents, and morev15.9.5
studioOpen-source control plane for your AI agents. Connect tools, hire agents, track every token and dollarv2.396.1
lobehubThe ultimate space for work and life โ€” to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level โ€” enabling multi-agent collaboration, effov2.2.2

More in MCP Servers

PlanExeCreate a plan from a description in minutes
agentroveYour own Claude Code UI, sandbox, in-browser VS Code, terminal, multi-provider support (Anthropic, OpenAI, GitHub Copilot, OpenRouter), custom skills, and MCP servers.
ProxmoxMCP-PlusEnhanced Proxmox MCP server with advanced virtualization management and full OpenAPI integration.
node9-proxyThe Execution Security Layer for the Agentic Era. Providing deterministic "Sudo" governance and audit logs for autonomous AI agents.