Skip to content

Linkworld for developers

Ship a working app in 5 minutes. Python or TypeScript, your choice.

Inbound triage bots

Subscribe to a tenant’s email channel, classify with an LLM, drop a record into their ERP, ack the sender — all from one on_inbound handler.

Cron-driven assistants

Run a daily 07:30 prep digest, a weekly summary, an hourly poll — declarative cron in the manifest, one handler per schedule.

Tool extensions for the agent

Expose a custom tool the tenant’s chat agent can call. Your code runs in a per-tenant container, secrets stay in the platform vault.

Per-tenant integrations

Pull from the tenant’s connected services (M365, Odoo, Slack…) via ctx.tools.call(...) — scope checks, audit logs, and rate limits are handled for you.

Your code Linkworld platform
───────── ──────────────────
linkworld.app.yaml ─────► Manifest v2 (validated)
app.tool('classify') Tenant agent's tool registry
app.onInbound(...) Inbound channel events
app.onSchedule('daily', …) Cron dispatcher (1-min precision)
ctx.tools.call('email_send', {...}) ──► /api/mcp/app-tools
ctx.secrets.get('OPENAI_KEY') ──► /api/mcp/app-secrets

Your app runs in a per-(tenant, app, version) container that wakes on demand and sleeps after 15 minutes idle. The SDK handles the HTTP shape; you write handlers.

Terminal window
# Python
pip install linkworld
linkworld init my-app --lang python
cd my-app && pip install -r requirements.txt
LINKWORLD_LOCAL=1 python main.py
Terminal window
# TypeScript
npm install -g @linkworld/cli
linkworld init my-app --lang typescript
cd my-app && npm install
npm run dev

Both share the same manifest schema, the same handler signatures, and the same ctx.tools / ctx.secrets API. Cross-SDK CI tests assert they stay in lockstep.

The Open App Platform is in alpha (Phase 2). The wire format is stable and the security review has shipped — partner apps in production work today. We’re still iterating on developer tooling and may break 0.x APIs until the first external partner ships.