Overview
What Linkworld is, the mental model (company = tenant, app = department, agents = roles), and how the pieces fit together. Read →
You bought Linkworld for your business. Start here.
Overview
What Linkworld is, the mental model (company = tenant, app = department, agents = roles), and how the pieces fit together. Read →
Workspace Control tour
The eight screens of the control plane — Dashboard, Inbox, Health, Wires & Grants, Rooms, Audit, KPIs, Steward. Read →
Agents & heartbeats
What agents are, how heartbeats work, the cheap pre-filter that keeps cost down, vision-loop vs heartbeats. Read →
Steward (chat)
Conversational control plane — drive the whole workspace from one chat surface. Reasons + executes cross-app calls. Read →
The full user manual covers installing apps, wires & grants, group rooms, the commitments inbox, KPI cockpit, audit & compliance, and an FAQ. Sidebar on the left of any inner page lists all 11 sections.
Build agents that run on the platform. Python or TypeScript.
Quickstart
Ship a working app in 5 minutes — manifest, one tool handler,
linkworld dev server.
Read →
Manifest v2
Every field your linkworld.app.yaml can set. Tools, agents,
heartbeats, lifecycle hooks, http_routes, chrome panel, more.
Read →
Heartbeats
Recurring agent routines with cheap pre-filters. Conversation modes, multi-LLM tier routing, active hours. Read →
Cross-app calls
ctx.team.delegate (intra-app), ctx.apps.invoke (cross-app),
ctx.events.emit (pub/sub) — chain depth, grants, wires.
Read →
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.
Multi-agent collaborations
Ship a multi-department app — CMO + Researcher + Replier — that delegates internally and meets humans in group rooms.
Cross-app workflows
Marketing emits lead_qualified, Sales subscribes — bilateral
grants + pub/sub wires you wire up in the workspace UI.
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 ctx.team.delegate('researcher', ...) ──► /api/mcp/agent-invoke (intra-app) ctx.apps.invoke('sales', 'bdr', ...) ──► /api/mcp/cross-app-invoke ctx.events.emit('lead_qualified', ...) ──► /api/mcp/events-emit ctx.rooms.post(room_id, ...) ──► /api/mcp/rooms-post ctx.commitments.add(...) ──► /api/mcp/commitments-addYour 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.
# Pythonpip install linkworldlinkworld init my-app --lang pythoncd my-app && pip install -r requirements.txtLINKWORLD_LOCAL=1 python main.py# TypeScriptnpm install -g @linkworld_ai/clilinkworld init my-app --lang typescriptcd my-app && npm installnpm run devBoth share the same manifest schema, the same handler signatures, and
the same ctx.tools / ctx.secrets / ctx.team / ctx.apps /
ctx.events / ctx.rooms / ctx.commitments API. Cross-SDK CI tests
assert they stay in lockstep.
The Open App Platform is in alpha. The wire format is stable and partner apps run in production today. We’re still iterating on developer tooling and may break 0.x APIs until the first external partner ships.