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 titled “The Three-Step Flow”-
Create the bundle with the published create-answers document:
Terminal window 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:
Terminal window 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:
Terminal window 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 titled “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 titled “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 titled “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 titled “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 titled “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 titled “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 titled “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 titled “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 titled “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 titled “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 titled “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 titled “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 titled “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 titled “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 titled “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 titled “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 titled “Common Operations”Use a different tunnel
Section titled “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 titled “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 titled “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 titled “Stop a running demo”gtc stop ./<demo>-bundleThis shuts down the runner and any auxiliary processes (tunnels) that gtc start brought up.
Troubleshooting
Section titled “Troubleshooting”Wizard says a capability is unsatisfied
Section titled “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 titled “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 titled “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 titled “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 titled “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