greentic-dev 0.4.40

Developer CLI and local tooling for Greentic flows, packs, and components
Documentation

Greentic Dev Toolkit

Build and run Greentic automation locally with the same components, flows, and packs you ship to production. greentic-dev is a thin, opinionated wrapper around the canonical CLIs (greentic-component, greentic-flow, greentic-pack, greentic-runner) so you can scaffold, wire, doctor, and execute with one entrypoint.

Think of it as a developer cockpit:

  • Components: reusable Wasm units that declare operations and schemas. Everything is a component—business logic, providers, infra hooks.
  • Flows: YAML graphs that call local or remote components, mix control flow, and compose complex behavior without code sprawl.
  • Packs: distributable bundles that combine flows + component artifacts for applications, infrastructure, or providers. Packs can depend on remote components, and flows can mix local and remote refs.

The power: you can stitch together local components, pull remote ones, validate against component-provided schemas, and run the whole pack with mocks or real execution—all from this CLI.


Quick Start (happy path)

# 0) Install the toolkit and companion CLIs
cargo install cargo-binstall
cargo binstall -y greentic-dev
# Companion CLIs used under the hood (install from crates.io or your package manager)
cargo binstall -y greentic-component greentic-flow greentic-pack greentic-runner greentic-secrets-cli greentic-gui

# 1) Scaffold a pack workspace
greentic-dev pack new -- --dir hello-pack dev.local.hello-pack
cd hello-pack

# 2) Scaffold + build + doctor a component
greentic-dev component new --name hello-world --path ./components/hello-world --non-interactive --no-git --no-check
greentic-dev component build --manifest components/hello-world/component.manifest.json
greentic-dev component doctor components/hello-world/target/wasm32-wasip2/release/component_hello_world.wasm \
  --manifest components/hello-world/component.manifest.json

# 3) Wire it into a flow and validate
greentic-dev flow add-step \
  --flow flows/main.ygtc \
  --after start \
  --component dev.local.hello-pack.hello-world \
  --operation handle_message \
  --payload '{}' \
  --routing '[{"out":true}]'
greentic-dev flow doctor flows/main.ygtc --json

# 4) Sync pack manifest, doctor, build, run (offline with mocks)
greentic-dev pack components -- --in .
greentic-dev pack doctor --pack pack.yaml
greentic-dev pack build -- --in . --gtpack-out dist/hello.gtpack
greentic-dev pack run --pack dist/hello.gtpack --offline --mocks on --artifacts dist/artifacts

That sequence produces a runnable pack that uses your local component, validates the flow against the component’s schema, and executes it locally with mocks.

Prefer cargo-run? Use cargo run -p greentic-dev -- <subcommand> … — semantics are identical.


CLI Overview

This CLI passes through directly to the upstream tools. See the detailed options and examples in docs/cli.md.

  • greentic-dev flow …greentic-flow (doctor, add-step, etc.)
  • greentic-dev component …greentic-component (new, build, doctor, describe, pack, templates)
  • greentic-dev pack …greentic-pack (components, update, build, doctor/inspect, run via greentic-runner)
  • greentic-dev gui …greentic-gui helpers
  • greentic-dev secrets …greentic-secrets helpers
  • greentic-dev mcp … → MCP doctor (optional feature)

Links to upstream CLI docs for the full flag sets:


What You Can Build

  • Applications: user-facing flows backed by components (LLMs, templating, APIs). Ship as packs, run locally or remotely.
  • Infrastructure: provisioners, deployers, observability hooks—exposed as components and orchestrated in flows.
  • Providers: integrate external services (e.g., cloud, messaging). Providers are just components with the right worlds/exports.
  • Hybrid flows: mix local components you’re iterating on with remote, versioned components pulled from registries.

Everything is validated before execution: flows are checked against component describe schemas; packs are doctored before build; runs can be mocked for fast iteration.


Where to Go Next


Requirements

  • Rust 1.89+ (repo pins rust-toolchain.toml)
  • wasm32-wasip2 target for component builds: rustup target add wasm32-wasip2
  • Network optional: most flows/components can run offline; remote component pulls require connectivity unless cached.

Contributing

We’re a pass-through CLI by design. If you need new behavior, add it to the upstream tools first (greentic-flow, greentic-component, greentic-pack, greentic-runner). Bug reports and PRs welcome! See .github/workflows/ci.yml for how we exercise the wrapper against the upstream binaries.