salesforce / salesforce/agentscript

README Quick Start fails on macOS: Node 26 incompatibility and missing tree-sitter CLI prerequisite

Open Beginner friendly
#33 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
267
Forks
54
Avg merge
48m
Merged PRs (30d)
1

Description

Summary

Following the README's Quick Start on macOS (Apple Silicon, fresh Homebrew toolchain), both pnpm install and pnpm build fail out of the box. Two prerequisites are not documented.

Environment

  • macOS (Apple Silicon), Darwin 25.4.0
  • Homebrew-installed Node and pnpm
  • Repo at main (commit 4670b96)

Issue 1 — Node version ceiling not stated

The README says "Node.js >= 20", but tree-sitter@0.25.0's native binding fails to compile against Node 26's V8 headers. Homebrew's default node formula is currently 26.0.0, so anyone running brew install node lands on a broken version.

Representative error from pnpm install:

.../node_modules/tree-sitter install: /Users/.../node-gyp/26.0.0/include/node/v8-internal.h:1604:19:
  error: non-static data member 'is_convertible_v' cannot be declared as a template
.../node_modules/tree-sitter install:  error: 'is_convertible_v' cannot be specialized:
  Users are not allowed to specialize this standard library entity
.../node_modules/tree-sitter install: 3 warnings and 20 errors generated.
.../node_modules/tree-sitter install: make: *** [Release/obj.target/tree_sitter_runtime_binding/src/binding.o] Error 1
.../node_modules/tree-sitter install: gyp ERR! node -v v26.0.0
ELIFECYCLE  Command failed with exit code 1.

The repo's package.json pins volta.node to 22.22.1, which works — so Volta users are fine, but the README's plain "Node.js >= 20" guidance points the rest of us at a broken version.

Suggestion: state an upper bound (e.g. "Node 20–22 LTS") or recommend Volta explicitly so the pinned version is honored.

Issue 2 — tree-sitter CLI is a hidden prerequisite

packages/parser-tree-sitter invokes tree-sitter generate in its prebuild and build scripts, but the CLI is not a devDependency — it has to be installed system-wide. Neither the README nor CONTRIBUTING.md mentions this. (The preinstall.cjs hints at cargo install tree-sitter-cli inside a warning branch that only fires when parser.c is missing, which it usually isn't.)

pnpm install succeeds, but pnpm build fails:

@agentscript/parser-tree-sitter:build: > tree-sitter generate
@agentscript/parser-tree-sitter:build: sh: tree-sitter: command not found
ELIFECYCLE  Command failed with exit code 1.

On macOS, the fix is brew install tree-sitter-cli. Worth noting that brew install tree-sitter installs only the library — the formulas were recently split, so following an obvious-looking guess gets you the wrong package.

Suggestion: add a Prerequisites bullet for the tree-sitter CLI with install commands per OS (brew, cargo, etc.).

Working setup on macOS

brew install node@22
brew link --overwrite --force node@22
brew install tree-sitter-cli
pnpm install
pnpm build

After this, pnpm build completes cleanly (16/16 packages) and pnpm ui:dev runs.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Update the README Quick Start and, if appropriate, CONTRIBUTING.md; use package.json and packages/parser-tree-sitter's prebuild/build scripts to confirm the Node version and tree-sitter CLI requirements. Reproduce the documented macOS setup with Node 22 and the CLI, then run pnpm install and pnpm build. Done means a fresh Apple Silicon setup has complete prerequisite instructions and reaches a successful build.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js, typescript
Domain
build-system, documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
Half a day
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
75/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.