forgo.cloud
Sign in
Repo workspace

forkjoin-ai/gnosis

Gnosis Language Bindings

bindings/README.md
forkjoin-ai/gnosis

Gnosis Language Bindings

Parent: Gnosis README

This directory contains thin client bindings for invoking the gnosis CLI from many host languages.

Getting Started

  • What: small language clients that call the gnosis CLI from Python, Go, Java, C#, Rust, C, C++, PHP, Ruby, Swift, Kotlin, Lua, Haskell, Erlang, and MQL5.
  • Why: they let non-TypeScript projects lint, analyze, verify, run, or test Gnosis topologies without reimplementing the CLI protocol.
  • How: pick the binding for your host language and call the shared command contract in binding-contract.json.
  • Next: start with the command contract, then the binding file for your language.

The bindings are intentionally subprocess-based so they stay dependency-light and work the same way across runtimes.

Command Contract

The shared command shape is documented in binding-contract.json.

All bindings expose helpers for:

  • lint <topology.gg> [--target <workers|node|bun|agnostic>] [--json]
  • analyze <path> [--json]
  • verify <topology.gg> [--tla-out <dir>]
  • run <topology.gg> [--native]
  • test <topology.test.gg>

Each helper returns process status and output (exit_code, stdout, stderr) or the closest equivalent supported by that language runtime.

Binding Files