Skip to content

Publish the client to npm + curl installer at /install.sh - #44

Merged
ralyodio merged 1 commit into
mainfrom
feat/publish-cli-curl-install
Oct 13, 2026
Merged

ralyodio merged 1 commit into
mainfrom
feat/publish-cli-curl-install

Conversation

@ralyodio

Copy link
Copy Markdown
Contributor

Every product serves /install.sh for its CLI (standing rule, 2026-10-12).

curl -fsSL https://tsbb.dev/install.sh | sh    # tsbb, tsbb-tui, tsbb-mcp

Published @profullstack/tsbb@0.12.1, @profullstack/tsbb-tui@0.12.1, @profullstack/tsbb-mcp@0.12.1. Until now these were names in package.json only (and bunx tsbb runs someone else's package).

  • Bundled, not copied. The bins import .ts and the workspace-only @tsbb/* packages; Node refuses type stripping under node_modules. pnpm build:npm (scripts/build-npm.mjs, esbuild) writes npm/<name>/ with each bin as one ESM file, @tsbb/* inlined, and only real deps left (@profullstack/synconfig, @profullstack/hqtui). Verified with npm i -g into an empty prefix on Node 22.23: --version on all three, tsbb latest --server tsbb.dev, a tsbb-mcp initialize handshake, and the TUI rendering tsbb.dev's forums in a pty.
  • /install.sh is served by every board (it installs the client, which works against any board), text/x-shellscript, with a test, and listed in llms.txt.
  • Fix: apps/tui/bin/tsbb-tui.mjs imported ../src/config.ts, which moved to @tsbb/client, so tsbb-tui crashed with ERR_MODULE_NOT_FOUND from a checkout too.
  • tsbb serve|init|migrate|admin|… from the npm install print how to get a checkout rather than failing on a missing module.
  • README, docs/CLI.md, docs/MCP.md: curl line first; MCP config uses tsbb-mcp instead of a checkout path.

To publish a later release: pnpm build:npm, then npm publish in each npm/<name>/.

pnpm typecheck and pnpm test (239) pass locally.

🤖 Generated with Claude Code

@profullstack/tsbb, @profullstack/tsbb-tui and @profullstack/tsbb-mcp 0.12.1
are now on npm. They were names in package.json only: the apps import
TypeScript and the workspace-only @tsbb/* packages, and Node will not strip
types under node_modules, so a published copy of the source cannot run.

- scripts/build-npm.mjs (pnpm build:npm) bundles each bin with esbuild into
  npm/<name>/, inlining @tsbb/* and keeping only real npm deps (synconfig,
  hqtui). Installs standalone with npm i -g on Node 22.6+.
- /install.sh on every board: installs all three with bun or npm, ~/.local
  instead of sudo, then a PATH check. llms.txt names it.
- tsbb-tui's bin imported ../src/config.ts, which moved to @tsbb/client;
  it crashed on start. Fixed, and --version for tsbb-tui and tsbb-mcp.
- The board commands (serve, init, migrate, admin...) print how to get a
  checkout when run from the npm install instead of a module error.
- README, docs/CLI.md and docs/MCP.md lead with the curl line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedesbuild@​0.25.10911007387100

View full report

@ralyodio
ralyodio merged commit e35bf1c into main Oct 13, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant