Quickstart
We’ll scaffold an app, run it locally, and deploy it to the platform. Pick your language — the rest of the docs covers both.
1. Install the CLI
Section titled “1. Install the CLI”pip install linkworld# verifylinkworld --version2. Scaffold
Section titled “2. Scaffold”linkworld init hello-world --lang python --github-owner youcd hello-worldOr TypeScript:
linkworld init hello-world --lang typescript --github-owner youcd hello-worldYou’ll get a working app with:
linkworld.app.yaml— the manifestmain.py/app.ts— handlers (one tool, one inbound)Dockerfile— for image builds.github/workflows/deploy.yml— CI that pushes to GHCR + registers with the platform
3. Run locally
Section titled “3. Run locally”# Pythonpip install -r requirements.txtLINKWORLD_LOCAL=1 python main.py# TypeScriptnpm installnpm run devLocal mode boots a local HTTP server on port 8080 with MockTools and
MockSecrets in place of the real platform. Trigger a tool:
curl -XPOST localhost:8080/tool/classify_text \ -H 'Content-Type: application/json' \ -d '{"text":"Q4 invoices"}'Stub a platform tool the app calls back to:
curl -XPOST localhost:8080/__mock/tool \ -d '{"name":"email_send","result":{"sent":true}}'Trigger an inbound:
curl -XPOST localhost:8080/event/on_inbound \ "subject":null,"received_at":"2026-04-26T10:00:00Z", "attachment_ids":[],"metadata":{}}'4. Sign in
Section titled “4. Sign in”linkworld loginOpens a browser → GitHub OAuth. Falls back to linkworld login --token <jwt>
if you’ve been issued an admin token.
5. Deploy
Section titled “5. Deploy”git init && git add . && git commit -m "init"git push -u origin maingit tag v0.1.0 && git push --tagsThe included GitHub Actions workflow builds the image, pushes to GHCR,
and runs linkworld deploy --skip-build --version 0.1.0 against the
platform. You’ll see the new version in
the dev console.
What’s next
Section titled “What’s next”- Read Concepts to understand manifests, scopes, and lifecycle hooks
- Manifest v2 reference for every field you can set
- Scope catalog for the platform tools you can call
- Best practices — idempotency, error handling, secret rotation