Write. Wire. Run.
Define your logic once. Wire it to any protocol. Run it on any runtime.
export const createInvoice = pikkuFunc({
input: z.object({ orderId: z.string(), amount: z.number() }),
output: InvoiceSchema,
func: async ({ db, email }, { orderId, amount }) => {
const invoice = await db.invoices.create({ orderId, amount })
await email.send({ to: invoice.customer, template: 'invoice-created' })
return invoice
},
permissions: { user: isAuthenticated },
})
wireHTTP({ method: 'post', route: '/invoices', func: createInvoice })
wireScheduler({ schedule: '0 9 * * 1', func: createInvoice })
wireQueueWorker({ queue: 'billing', func: createInvoice })
wireCLI({ program: 'billing', commands: { invoice: createInvoice } })
pikkuAIAgent({
name: 'billing-assistant',
tools: [createInvoice],
model: 'anthropic/claude-sonnet-4-5',
})
// Fastify
import { pikkuFastify } from '@pikku/fastify'
const app = await pikkuFastify(pikku)
await app.listen({ port: 3000 })
// Or Lambda, Cloudflare Workers, Express, Next.js...
// Same Pikku project. Any runtime.
"So many places in my code base have like three entry points: CLI, public (sometimes protected) HTTP API and internally from within the API. Would be so nice having everything just an invoke away. With Nest it's a pain because you basically have to start the whole API up just to run CLI command."
— Alex Harley, Co-founder @ Superbridge
Why Pikku
The framework that multiplies your code.
Stop writing glue. Every function you write can serve every protocol your app needs.
Write once, wire anywhere
One function serves REST, WebSocket, cron, queues, CLI, MCP, and AI agents. No adapter code.
End-to-end type safety
Zod schemas, typed services, auto-generated clients. Compile-time guarantees across the stack.
Any runtime
Deploy to Fastify, Express, Lambda, Cloudflare Workers, Bun, or Next.js. Same project, zero lock-in.
Built-in auth & permissions
Session management, JWT, and role-based access — baked into every function invocation.
Auto-generated OpenAPI
Your API spec stays in sync with your code. Always accurate, never stale.
Typed clients
Generated HTTP, WebSocket, and RPC clients. No manual typing, no drift.
Built-in
A control plane for your entire app.
The Pikku Console gives you a visual overview of every function, workflow, agent, route, and config — per environment. No extra server needed.

Functions explorer
Browse every function, its types, permissions, and which protocols reference it.
Workflow runner
Visualize workflow graphs, run them with custom input, and stream progress in real time.
Agent playground
Chat with your AI agents, test tool approvals, and inspect conversation history.
API overview
HTTP routes, WebSocket channels, MCP tools, and CLI commands — all in one view.
Secrets & config
Manage secrets, variables, and OAuth2 credentials per environment with validation.
Spotlight search
Cmd+K to find any function, route, workflow, or config item instantly.
Use cases
What people build with Pikku.
API Agents
Give your API a brain.
Turn any OpenAPI spec into a chat assistant, CLI tools, and MCP server.
Workflows
Workflows that survive anything.
Multi-step processes with persistence, retries, and real sleep.
Scheduled Jobs
Cron that actually works.
Managed scheduling with retries and execution history.
Background Jobs
Queues without the infra.
Job processing with retries, dead-letter queues, and traces.
Internal Tools
CLI + API from one function.
API, CLI, and RPC from the same codebase.
Realtime
WebSockets + SSE with types and auth.
Typed messages, session context, no separate server.
Fabric
Serverless everything. Zero lock-in.
Fabric reads your code, deploys each function as its own serverless worker — HTTP, WebSocket, queues, cron, agents, MCP. Eject and run anywhere, anytime.
Fabric reads your Pikku metadata, generates a deployment plan, and deploys each function as an independent serverless worker. No config files. No infrastructure decisions.
Self-host (free)
Fabric ($20/mo)
Same Pikku project either way. Fabric deploys it serverless. You can eject and self-host anytime.
"Ever been annoyed at having to write your code different in a Lambda than in an express handler? Pikku fixes that."
— Christoph Sitter, CTO @ spot
Pricing
Start free with the open-source framework. Upgrade to Fabric for managed serverless deployment.
Open Source
Free
forever
The full framework. Self-host or deploy anywhere.
Fabric
$20/mo
scales to zero, $0 when idle
Serverless deployment platform. Push code, everything deploys.
Enterprise
Custom
annual license
Deploy to your own cloud. Full control.
Fabric — coming soon
Get early access to Fabric.
Serverless deployment for Pikku. We'll notify you when it's ready.
Meanwhile, the full framework is available now.