Running Demos
The greentic-demo repository ships a catalog of ready-to-run demos. Each one is a complete bundle (messaging providers, flows, adaptive cards, MCP tools) packaged as a .gtpack and orchestrated by two published answer documents — one for the create wizard, one for setup.
You do not need to scaffold anything by hand. Every demo is launched with the same three commands.
The Three-Step Flow
Section intitulée « The Three-Step Flow »-
Create the bundle with the published create-answers document:
Fenêtre de terminal gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/<demo>-create-answers.jsonThis downloads any pack referenced in the answers document, resolves capability dependencies (e.g.
state-memoryis auto-pulled when a messaging provider declares it needsgreentic:state/state-store), and writes a local bundle directory. -
Configure providers with the published setup-answers document:
Fenêtre de terminal gtc setup ./<demo>-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/<demo>-setup-answers.jsonSetup detects the actual tenant from the bundle’s
tenants/directory, persists secrets per provider, and warns you if any required capability is still unsatisfied. -
Start the runtime:
Fenêtre de terminal gtc start ./<demo>-bundleAt startup,
gtc startvalidates pack dependencies again, registers webhooks via each provider’ssetup_webhookWASM op (re-registering automatically if your tunnel URL changes), and prints the public ingress paths (e.g.https://<tunnel>/v1/web/webchat/demo/).
Prerequisites
Section intitulée « Prerequisites »Before running any demo, make sure you have:
gtcCLI — see Installation- A public URL for webhook providers —
ngrokorcloudflared(see Public URL Configuration) - Provider credentials for any third-party messaging or MCP integration the demo uses (Slack tokens, Telegram bot token, Atlassian OAuth, etc.) — the setup-answers document tells you which secrets are required
Most demos can run with just WebChat GUI plus state-memory, which need no external accounts.
Demo Catalog
Section intitulée « Demo Catalog »Each release of greentic-demo publishes a .gtpack, a *-create-answers.json, and a *-setup-answers.json to the latest release. Substitute the demo ID into the three commands shown above.
hr-onboarding
Section intitulée « hr-onboarding »Interactive employee onboarding wizard with task tracking, document collection, and access provisioning. Persists session state across multiple steps.
- Channels: WebChat GUI (required), Slack (optional)
- External services: none required (state stored in-memory)
- Demo ID:
hr-onboarding
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/hr-onboarding-create-answers.jsongtc setup ./hr-onboarding-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/hr-onboarding-setup-answers.jsongtc start ./hr-onboarding-demo-bundlehelpdesk-itsm
Section intitulée « helpdesk-itsm »IT helpdesk assistant integrated with Jira via Atlassian OAuth and MCP tools — create tickets, check status, search the knowledge base, escalate.
- Channels: WebChat GUI
- External services: Atlassian / Jira (OAuth credentials in setup-answers)
- Demo ID:
helpdesk-itsm
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/helpdesk-itsm-create-answers.jsongtc setup ./helpdesk-itsm-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/helpdesk-itsm-setup-answers.jsongtc start ./helpdesk-itsm-demo-bundlegithub-mcp
Section intitulée « github-mcp »GitHub MCP security dashboard demo with WebChat, OAuth/OIDC setup, and a GitHub-oriented MCP security pack.
- Channels: WebChat GUI
- External services: GitHub and OAuth/OIDC credentials as defined by setup answers
- Demo ID:
github-mcp
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/github-mcp-create-answers.jsongtc setup ./github-mcp-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/github-mcp-setup-answers.jsongtc start ./github-mcp-demo-bundlesales-crm
Section intitulée « sales-crm »Sales assistant wired to Salesforce via OAuth and MCP — lead qualification, pipeline visualization, deal tracking, meeting scheduling.
- Channels: WebChat GUI
- External services: Salesforce (OAuth credentials in setup-answers)
- Demo ID:
sales-crm
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/sales-crm-create-answers.jsongtc setup ./sales-crm-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/sales-crm-setup-answers.jsongtc start ./sales-crm-demo-bundlesupply-chain
Section intitulée « supply-chain »Inventory and supply-chain assistant — stock checks, order tracking, low-stock alerts, reorder approval workflow, supplier directory.
- Channels: WebChat GUI (required), Slack (optional)
- External services: none required
- Demo ID:
supply-chain
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/supply-chain-create-answers.jsongtc setup ./supply-chain-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/supply-chain-setup-answers.jsongtc start ./supply-chain-demo-bundleredbutton
Section intitulée « redbutton »A red-button event scenario — a webhook ingress fires a flow that picks a random branch, optionally calls an HTTP endpoint, plays back local audio, and creates a Better Stack incident.
- Channels: event-driven (no chat surface required)
- External services: Better Stack
- Demo ID:
redbutton
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/redbutton-create-answers.jsongtc setup ./redbutton-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/redbutton-setup-answers.jsongtc start ./redbutton-demo-bundle --ngrok onTrigger the flow with:
curl -i -X POST http://127.0.0.1:8080/v1/events/ingress/greentic.events.webhook/default/default \ -H "content-type: application/json" \ -d '{"event":"red_button","source":"demo","severity":"critical"}'cloud-deploy-demo
Section intitulée « cloud-deploy-demo »A richer bundle composition that exercises a Terraform deploy provider alongside messaging, events, and state — useful when validating cloud-deployment integrations.
- Channels: WebChat GUI
- External services: Terraform-compatible cloud provider (configured in setup-answers)
- Demo ID:
cloud-deploy-demo
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/cloud-deploy-demo-create-answers.jsongtc setup --no-ui ./cloud-deploy-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/cloud-deploy-demo-setup-answers.jsongtc start ./cloud-deploy-demo-bundleweather-mcp-demo
Section intitulée « weather-mcp-demo »A weather assistant that fetches current conditions and forecasts via WeatherAPI through an MCP tool, then renders the result as adaptive cards.
- Channels: WebChat GUI
- External services: weatherapi.com API key
- Demo ID:
weather-mcp-demo
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/weather-mcp-demo-create-answers.jsongtc setup ./weather-mcp-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/weather-mcp-demo-setup-answers.jsongtc start ./weather-mcp-demo-bundledeep-research-demo
Section intitulée « deep-research-demo »A research digital worker with two modes: a fast single-shot research analyst and a fuller agentic workflow that routes the question through a research planner and analyst.
- Channels: WebChat GUI
- External services: Ollama by default, or any OpenAI-compatible provider configured during setup
- Demo ID:
deep-research-demo
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/deep-research-demo-create-answers.jsongtc setup ./deep-research-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/deep-research-demo-setup-answers.jsongtc start ./deep-research-demo-bundletelco-x-demo
Section intitulée « telco-x-demo »Telco-X assistant for network operations, with category menus, multi-playbook telco flows, and adaptive-card results for traffic, capacity, RCA, and service-assurance scenarios.
- Channels: WebChat GUI
- External services: none required unless you customize the playbooks
- Demo ID:
telco-x-demo
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/telco-x-demo-create-answers.jsongtc setup ./telco-x-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/telco-x-demo-setup-answers.jsongtc start ./telco-x-demo-bundleWhat Happens Behind the Scenes
Section intitulée « What Happens Behind the Scenes »The three commands look simple, but each one runs a non-trivial slice of the platform.
gtc wizard --answers ...
Section intitulée « gtc wizard --answers ... »- Resolves the demo’s app pack (
*.gtpack) — either downloaded from GitHub Releases or pulled from OCI as declared in the answers document. - Materialises the bundle workspace (
bundle.yaml,packs/,tenants/). - Runs capability-based dependency resolution. Provider packs declare
required_capabilities; the wizard automatically adds matchingstate-memory,state-redis, OAuth packs, etc., so you never have to remember what each provider depends on. - Honours capability flags such as
greentic.cap.bundle_assets.read.v1,greentic.cap.webchat.oauth.v1,greentic.cap.webchat.i18n.v1, andgreentic.cap.webchat.embed.v1— these decide whether the wizard scaffolds bundle-level assets, OAuth provider configuration, locale files, and embed snippets.
gtc setup ./<demo>-bundle --answers ...
Section intitulée « gtc setup ./<demo>-bundle --answers ... »- Auto-detects the actual tenant from
bundle/tenants/(so secrets are written under the correct tenant URI). - Validates dependency capabilities across all packs in the bundle and warns if anything is missing.
- Persists every value from the answers document into the secrets store under
secrets://{env}/{tenant}/{team}/{provider}/{key}, so providers can read credentials at runtime without you re-typing them.
gtc start ./<demo>-bundle
Section intitulée « gtc start ./<demo>-bundle »- Loads the bundle, mounts every pack, and brings up HTTP ingress adapters.
- Re-checks pack dependencies via the capability index and prints satisfied/missing capabilities.
- Invokes each provider’s
setup_webhookWASM op when the public tunnel URL changes — webhook re-registration is now automatic. - Prints public route paths (for example the WebChat URL) so you can open them in a browser immediately.
Common Operations
Section intitulée « Common Operations »Use a different tunnel
Section intitulée « Use a different tunnel »Most webhook-bound demos work with any tunnel. Pick one:
gtc start ./<demo>-bundle --ngrok ongtc start ./<demo>-bundle --cloudflared ongtc start ./<demo>-bundle --ngrok off --cloudflared offUse this when you only need WebChat on localhost.
Re-run setup after rotating a secret
Section intitulée « Re-run setup after rotating a secret »gtc setup ./<demo>-bundle --answers <updated-setup-answers.json>gtc setup is idempotent. It overwrites secrets in place and re-runs the per-provider setup flows.
Inspect bundles before launching
Section intitulée « Inspect bundles before launching »gtc wizard --answers <create-answers.json> --dry-rungtc setup ./<demo>-bundle --dry-runBoth commands support --dry-run for previewing output without touching the filesystem or secrets store.
Stop a running demo
Section intitulée « Stop a running demo »gtc stop ./<demo>-bundleThis shuts down the runner and any auxiliary processes (tunnels) that gtc start brought up.
Troubleshooting
Section intitulée « Troubleshooting »Wizard says a capability is unsatisfied
Section intitulée « Wizard says a capability is unsatisfied »Update the create-answers document to include a pack that provides the missing capability. For greentic:state/state-store either state-memory (no setup) or state-redis (requires a Redis instance) works. Most demos already declare this dependency, so the wizard will pull it in automatically.
WebChat opens but cards are blank
Section intitulée « WebChat opens but cards are blank »Make sure the bundle’s tenant matches the tenant in the WebChat URL — gtc setup now auto-detects the bundle tenant, so if you ran setup before this fix landed, re-run it after a gtc wizard to refresh the bundle layout.
setup_webhook keeps failing on startup
Section intitulée « setup_webhook keeps failing on startup »Check that the secret your provider needs is present in the answers file (e.g. bot_token, slack_configuration_token, ms_bot_app_password). Re-run gtc setup with the updated document and restart gtc start.
Ingress URL keeps changing
Section intitulée « Ingress URL keeps changing »By default ngrok issues a fresh URL on every restart. The webhook updater detects the change at startup and calls each provider’s setup_webhook op so the new URL is registered upstream — but you may want to upgrade to a reserved domain on long-running demos.
Next Steps
Section intitulée « Next Steps »- gtc wizard — full reference for create-answers documents and capability flags
- gtc setup — provider configuration, credentials, and dry-run usage
- gtc start — runtime options, tunnels, and observability
- Bundle Assets — how the asset overlay used by WebChat skins works
- Multi-Tenancy — how tenant isolation interacts with secrets and ingress