Aller au contenu

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.

  1. 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.json

    This downloads any pack referenced in the answers document, resolves capability dependencies (e.g. state-memory is auto-pulled when a messaging provider declares it needs greentic:state/state-store), and writes a local bundle directory.

  2. 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.json

    Setup detects the actual tenant from the bundle’s tenants/ directory, persists secrets per provider, and warns you if any required capability is still unsatisfied.

  3. Start the runtime:

    Fenêtre de terminal
    gtc start ./<demo>-bundle

    At startup, gtc start validates pack dependencies again, registers webhooks via each provider’s setup_webhook WASM op (re-registering automatically if your tunnel URL changes), and prints the public ingress paths (e.g. https://<tunnel>/v1/web/webchat/demo/).

Before running any demo, make sure you have:

  • gtc CLI — see Installation
  • A public URL for webhook providers — ngrok or cloudflared (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.

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.

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
Fenêtre de terminal
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/hr-onboarding-create-answers.json
gtc setup ./hr-onboarding-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/hr-onboarding-setup-answers.json
gtc start ./hr-onboarding-demo-bundle

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
Fenêtre de terminal
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/helpdesk-itsm-create-answers.json
gtc setup ./helpdesk-itsm-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/helpdesk-itsm-setup-answers.json
gtc start ./helpdesk-itsm-demo-bundle

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
Fenêtre de terminal
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/github-mcp-create-answers.json
gtc setup ./github-mcp-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/github-mcp-setup-answers.json
gtc start ./github-mcp-demo-bundle

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
Fenêtre de terminal
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/sales-crm-create-answers.json
gtc setup ./sales-crm-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/sales-crm-setup-answers.json
gtc start ./sales-crm-demo-bundle

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
Fenêtre de terminal
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/supply-chain-create-answers.json
gtc setup ./supply-chain-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/supply-chain-setup-answers.json
gtc start ./supply-chain-demo-bundle

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
Fenêtre de terminal
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/redbutton-create-answers.json
gtc setup ./redbutton-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/redbutton-setup-answers.json
gtc start ./redbutton-demo-bundle --ngrok on

Trigger the flow with:

Fenêtre de terminal
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"}'

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
Fenêtre de terminal
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/cloud-deploy-demo-create-answers.json
gtc setup --no-ui ./cloud-deploy-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/cloud-deploy-demo-setup-answers.json
gtc start ./cloud-deploy-demo-bundle

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
Fenêtre de terminal
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/weather-mcp-demo-create-answers.json
gtc setup ./weather-mcp-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/weather-mcp-demo-setup-answers.json
gtc start ./weather-mcp-demo-bundle

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
Fenêtre de terminal
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/deep-research-demo-create-answers.json
gtc setup ./deep-research-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/deep-research-demo-setup-answers.json
gtc start ./deep-research-demo-bundle

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
Fenêtre de terminal
gtc wizard --answers https://github.com/greenticai/greentic-demo/releases/latest/download/telco-x-demo-create-answers.json
gtc setup ./telco-x-demo-bundle --answers https://github.com/greenticai/greentic-demo/releases/latest/download/telco-x-demo-setup-answers.json
gtc start ./telco-x-demo-bundle

The three commands look simple, but each one runs a non-trivial slice of the platform.

  • 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 matching state-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, and greentic.cap.webchat.embed.v1 — these decide whether the wizard scaffolds bundle-level assets, OAuth provider configuration, locale files, and embed snippets.
  • 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.
  • 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_webhook WASM 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.

Most webhook-bound demos work with any tunnel. Pick one:

Fenêtre de terminal
gtc start ./<demo>-bundle --ngrok on
Fenêtre de terminal
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.

Fenêtre de terminal
gtc wizard --answers <create-answers.json> --dry-run
gtc setup ./<demo>-bundle --dry-run

Both commands support --dry-run for previewing output without touching the filesystem or secrets store.

Fenêtre de terminal
gtc stop ./<demo>-bundle

This shuts down the runner and any auxiliary processes (tunnels) that gtc start brought up.

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.

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.

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.

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.

  • 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