Wisp monorepo

August 2, 2026 · View on GitHub

This repository (github.com/wisp-trading/wisp) is the star-facing entry point.

In this repo

PathModuleNotes
.github.com/wisp-trading/wispCLI + TUI
sdk/github.com/wisp-trading/sdkgit submodule — runtime / lifecycle / domains

Not in this repo (by design)

ModuleWhy separate
github.com/wisp-trading/connectorsHeavy, venue-specific; clone only when changing exchanges
github.com/wisp-trading/backtestExperimental sim
polymarket-go-sdkThird-party fork; pulled as a normal Go module dependency
Private strategiesLocal only — never product git

Clone

git clone --recurse-submodules git@github.com:wisp-trading/wisp.git
cd wisp
# Go 1.26+ (Green Tea GC default)
go test ./internal/services/live/manager/ ./sdk/pkg/lifecycle/ ./sdk/pkg/runtime/
go build -o bin/wisp .

Without submodules (CLI module only):

git clone git@github.com:wisp-trading/wisp.git
cd wisp
go build -o bin/wisp .

Working on connectors (optional)

Keep connectors as a sibling checkout when needed:

# next to monorepo, or anywhere:
git clone git@github.com:wisp-trading/connectors.git
cd wisp
go work use ../connectors   # temporary; do not commit unless intentional
# or in connectors/go.mod while developing:
# replace github.com/wisp-trading/sdk => ../wisp/sdk

Default product builds use released connectors module versions from go.mod — no submodule required.

Composition (avoid loading every venue)

Strategies should import only the venue modules they use (e.g. hyperliquid.Module), not connectors.Module (the bag of every exchange). Settings/CLI may keep the bag for discovery.

Live-exchange integration tests live next to each venue package (//go:build integration) and share harnesses from connectors/pkg/testing/connector. Run one venue:

cd ../connectors
make test-integration PKG=./pkg/connectors/hyperliquid

Develop in sdk

cd sdk
git checkout -b fix/foo
# commit & push to wisp-trading/sdk
cd ..
git add sdk
git commit -m "chore: bump sdk submodule"

Reference strategy

See examples/reference-standalone for the blessed StartStandalone + Wait process host. Copy that pattern for private strategies.

Green path

make help    # developer targets
make smoke   # builds CLI + examples/reference-standalone binary
make ci      # local stand-in for GitHub Actions (verify, vet, lint, test, smoke)

TUI Start Live compiles strategies/<name>/ as a standalone binary when main.go exists.

CI

GitHub Actions (.github/workflows/):

WorkflowPurpose
ci.ymlmodules verify + tidy, golangci-lint, race tests, packaging smoke
security.ymlgovulncheck on PR/main + weekly
release.ymlmulti-platform binaries on v* tags

Always runs with GOWORK=off and the public module proxy so checksums match the sumdb.