# Clone and install
git clone https://github.com/moonshot-partners/openshell-node.git
cd openshell-node
pnpm install
# Build
pnpm build
# Run tests
pnpm testpnpm test # Run once
pnpm test:watch # Watch modeIntegration tests require a running OpenShell gateway:
openshell gateway start
OPENSHELL_TEST=1 pnpm test:integrationIf the OpenShell proto files are updated upstream:
# Option 1: Sync from a local OpenShell checkout
./scripts/sync-protos.sh /path/to/OpenShell
# Option 2: Manually update proto/ files
# Then regenerate TypeScript
pnpm generateRequires protoc installed (brew install protobuf on macOS).
This project uses Conventional Commits:
type(scope): description
Types: feat, fix, docs, refactor, test, chore, ci
Examples:
feat: add watchSandbox streaming methodfix: handle timeout in waitReady correctlydocs: update API reference
Enforced by commitlint via a pre-commit hook.
Releases are triggered by pushing a version tag:
# Bump version in package.json
npm version patch # or minor, major
# Push tag to trigger publish workflow
git push --follow-tags- TypeScript strict mode
- Prettier for formatting (auto-applied on commit via lint-staged)
- ESLint for linting
- Generated code in
src/generated/is excluded from lint/format