Skip to content

Repository files navigation

strawberry — monorepo

Open-source, framework-free TypeScript tooling for the Strawberry (Gorshok-v4) ESP32-C6 grow controller. This repo is an npm-workspaces monorepo with two published packages:

Package Path What it is
@avatarsd-llc/strawberry-client packages/strawberry-client The framework-free WebSocket + protobuf client library (DeviceClient, generated codec, pure-JS HMAC). Runs unchanged in a browser, in Node, and in a Pulumi provider host — no Angular, no RxJS. Consumed by the web-ui SPA, the Pulumi deploy provider, and the CLI below.
@avatarsd-llc/strawberry-cli packages/strawberry-cli The strawberry CLI — a board-setup command surface over the library — plus the Claude Code agent skills (skill/) that drive it. Depends on @avatarsd-llc/strawberry-client.

@avatarsd-llc/strawberry-client is also embedded in avatarsd-llc/strawberry-fw as a git submodule at packages/strawberry-client.

Install (end users)

npm i @avatarsd-llc/strawberry-cli      # the CLI (pulls the library transitively)
npm i @avatarsd-llc/strawberry-client       # the library only

Node 22+ is the baseline. The ws package is an optional peer dependency, dynamically imported only by the library's ./node transport.

Develop (this repo)

npm install                                   # links the workspace; installs shared devDeps
npm run proto                                 # regenerate the gitignored protobuf codec (strawberry-client)
npm run typecheck                             # tsc --noEmit in both packages
npm test                                      # vitest in both packages
npm run build                                 # build strawberry-client, then strawberry-cli
npm run lint:purity                           # framework-free gate (strawberry-client)
npm run sil                                   # SIL acceptance: CLI bin vs the mock board (informational)

Per-package commands use the workspace flag, e.g. npm run build -w @avatarsd-llc/strawberry-client.

See docs/CONTRIBUTING.md for the contribution workflow, packages/strawberry-client/docs/library.md for the library reference, packages/strawberry-client/docs/protocol.md for the WS+protobuf protocol, and packages/strawberry-cli/docs/cli.md for the CLI command reference.

License

Apache-2.0. See LICENSE.

About

Framework-free WS+protobuf client for the Strawberry/Gorshok-v4 grow controller — library + CLI + Claude Code skill

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages