Skip to content

CLI reference

Terminal window
pip install linkworld
linkworld --help

Scaffold a new app in ./<slug>.

FlagDefaultDescription
--langpythonpython or typescript
--namederived from slugDisplay name
--descriptionemptyOne-line description
--github-owneryour-orgUsed in the GHCR image URL
--directory./<slug>Override target dir
Terminal window
linkworld init tax-bot --lang python --github-owner you
linkworld init tax-bot-ts --lang typescript --github-owner you

Open a browser to GitHub OAuth. The CLI receives a JWT and stores it at ~/.config/linkworld/config.json.

Terminal window
# OAuth flow
linkworld login
# Fallback: paste an admin-issued JWT
linkworld login --token eyJhbGc...

Build the Docker image, push to GHCR, register the version with the platform, and (by default) promote it to current_version.

FlagDefaultDescription
--versionderived from manifestOverride the version published
--skip-buildoffDon’t build/push; just register an existing image
--no-promoteoffRegister the version but don’t make it current
--manifestlinkworld.app.yamlOverride the manifest path
Terminal window
# Common case: build + push + register
linkworld deploy
# CI flow: image already in GHCR, just register
linkworld deploy --skip-build --version 1.2.3

Manage dev-default secrets visible to every tenant install of an app. Tenant-specific overrides live in the tenant’s app-settings UI.

Terminal window
linkworld secrets set OPENAI_KEY=sk-real-... --app tax-bot --description "LLM key"
linkworld secrets list --app tax-bot
linkworld secrets get OPENAI_KEY --app tax-bot # metadata only, never the value
linkworld secrets delete OPENAI_KEY --app tax-bot

Key format: ^[A-Z][A-Z0-9_]{0,63}$ (uppercase, digits, underscore; first char letter). Values are encrypted at rest with AES-256-GCM and never displayed after creation.

CodeMeaning
0Success
1Bad input (invalid slug, missing required flag)
2Platform error (4xx/5xx, network)
3Auth error (no token, expired, suspended)