Skip to content

feat(cli): add smoke command with wood-pairing guide#300

Closed
jongio wants to merge 1 commit into
mainfrom
idea/cli-smoke
Closed

feat(cli): add smoke command with wood-pairing guide#300
jongio wants to merge 1 commit into
mainfrom
idea/cli-smoke

Conversation

@jongio

@jongio jongio commented Jul 19, 2026

Copy link
Copy Markdown
Owner

What

Adds thermoworks smoke, an offline smoke wood guide that pairs common cuts with recommended woods and profiles each wood's flavor.

Picking a smoke wood is one of the first questions a new smoker asks, and an easy one to get wrong (mesquite on a delicate fish, say). This gives a sensible starting point without a spreadsheet or a login.

SDK

New smoke.ts module:

  • getWoodProfiles() returns eight woods (Alder through Mesquite) in strength order with a one-line flavor note each.
  • getSmokePairings() returns a wood pairing and smoke intensity for every built-in cut.
  • resolveSmokePairing(meat) resolves a cut name or alias to its pairing via the shared meat registry, so pulled pork and babyback match the canonical names. Returns null for unknown cuts.

Pure and side-effect free: no network, no clock, no files.

CLI

thermoworks smoke [meat] [--woods] [--json]:

  • No argument prints a wood pairing table for every built-in cut.
  • A meat name or alias prints that cut's recommended woods and why.
  • --woods lists each wood's flavor profile, lightest to boldest.
  • --json emits the pairings, a single cut, or the wood list.
  • An unknown cut prints an error and exits non-zero.

Tests and docs

  • SDK tests cover the wood list, per-cut pairings, alias resolution, copy safety, and the unknown-cut path.
  • CLI tests cover the table, single-cut detail, --woods, --json for each shape, and the non-zero exit on an unknown cut.
  • README gets a thermoworks smoke section and the CLI reference is regenerated.

Full SDK and CLI suites pass, typecheck is clean, and pnpm lint is green.

Closes #296

Add an offline smoke wood guide so pitmasters can pick a wood without
guessing. Picking a smoke wood is one of the first questions a new
smoker asks and an easy one to get wrong, like mesquite on delicate
fish.

New SDK module smoke.ts pairs each built-in cut with recommended woods
and a smoke intensity, and profiles eight woods from Alder to Mesquite
in strength order. Pairings key off the shared meat registry, so
aliases like "pulled pork" and "babyback" resolve the same as the
canonical names. Pure and offline: no network, clock, or files.

New CLI command "thermoworks smoke [meat]":
- no argument prints a wood pairing table for every built-in cut
- a meat name or alias prints that cut's recommended woods
- --woods lists each wood's flavor profile, lightest to boldest
- --json emits the pairings, a single cut, or the wood list

Adds SDK and CLI tests, README docs, and regenerates the CLI reference.

Closes #296

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ecabbd71-7dd2-42f1-a014-ab6df3686eee
@jongio jongio added the idea Feature idea from the idea pipeline label Jul 19, 2026
@jongio jongio self-assigned this Jul 19, 2026
@jongio

jongio commented Jul 20, 2026

Copy link
Copy Markdown
Owner Author

Closing. Keeping the thermoworks CLI focused on device and temperature features: probes, alarms, device health, and live and archived readings. A wood-pairing guide doesn't read device data, so it's out of scope here.

@jongio jongio closed this Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

idea Feature idea from the idea pipeline

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a smoke command with a wood pairing guide for each cut

1 participant