stack/packages/init-stack
BilalG1 23b9eb831a
Init script agent mode and react option (#897)
<!--

Make sure you've read the CONTRIBUTING.md guidelines:
https://github.com/stack-auth/stack-auth/blob/dev/CONTRIBUTING.md

-->

<!-- RECURSEML_SUMMARY:START -->
## High-level PR Summary
This PR adds support for non-interactive initialization in the Stack
Auth initialization script. It introduces a `STACK_DISABLE_INTERACTIVE`
environment variable flag and makes appropriate changes throughout the
codebase to handle non-interactive flows. The changes include improving
type definitions, adding automatic determination of project type (JS vs
Next.js) and configuration (client vs server) when running in
non-interactive mode, and better error handling for cases where required
information is missing. These changes enable CI/CD scenarios and
automation for Stack Auth integration.

⏱️ Estimated Review Time: 0h 20m

<details>
<summary>💡 Review Order Suggestion</summary>

| Order | File Path |
|-------|-----------|
| 1 | `packages/init-stack/src/index.ts` |
</details>



<!-- RECURSEML_SUMMARY:END -->

<!-- RECURSEML_ANALYSIS:START -->
## Review by RecurseML

_🔍 Review performed on
[bba4db2..974e4fd](bba4db2ab0...974e4fda92)_

 No bugs found, your code is sparkling clean

<details>
<summary> Files analyzed, no issues (1)</summary>

  • `packages/init-stack/src/index.ts`
</details>

[![Need help? Join our
Discord](https://img.shields.io/badge/Need%20help%3F%20Join%20our%20Discord-5865F2?style=plastic&logo=discord&logoColor=white)](https://discord.gg/n3SsVDAW6U)
<!-- RECURSEML_ANALYSIS:END -->
<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Adds non-interactive and React project initialization options to Stack
Auth setup script, updates tests and documentation.
> 
>   - **Behavior**:
> - Adds `--agent-mode` option in `index.ts` for non-interactive CLI
runs.
> - Adds `--react` option in `index.ts` for React project
initialization.
> - Updates `writeReactClientFile()` in `index.ts` to handle
React-specific setup.
>   - **Scripts**:
> - Updates `package.json` to include `test-run-react` and
`test-run-react:manual` scripts.
> - Modifies existing test scripts in `package.json` to use
`--agent-mode`.
>   - **Documentation**:
> - Updates `setup.mdx` to include React setup instructions and
wizard/manual tabs.
>   - **Misc**:
>     - Removes `STACK_DISABLE_INTERACTIVE` checks in `index.ts`.
>     - Updates error handling and logging in `index.ts`.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=stack-auth%2Fstack-auth&utm_source=github&utm_medium=referral)<sup>
for f63a2a57ef. You can
[customize](https://app.ellipsis.dev/stack-auth/settings/summaries) this
summary. It will automatically update as commits are pushed.</sup>

----


<!-- ELLIPSIS_HIDDEN -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- New Features
- First-class React project initialization (--react) with automatic
React client scaffolding.
- Added --agent-mode for fully non-interactive CLI runs and consistent
--no-browser behavior.
- Public env var for local React package override
(STACK_REACT_INSTALL_PACKAGE_NAME_OVERRIDE).

- Chores
- Standardized non-interactive flows across scripts (removed legacy
interactive gating).

- Tests
- Updated test scaffolding and run commands to use agent-mode and
browser-free execution.

- Documentation
- Converted setup docs to a wizard-style experience with consolidated
wizard/manual tabs.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-15 18:47:05 -07:00
..
src Init script agent mode and react option (#897) 2025-09-15 18:47:05 -07:00
.eslintrc.cjs tsup for stack-shared (#647) 2025-04-28 21:26:52 -07:00
.gitignore Support create-next-app@15 with the setup wizard (#340) 2024-11-13 13:58:42 +01:00
CHANGELOG.md chore: update package versions 2025-09-12 16:55:16 -07:00
LICENSE Setup wizard 2024-04-24 12:20:31 +02:00
package.json Init script agent mode and react option (#897) 2025-09-15 18:47:05 -07:00
README.md Allows for --no-browser in Stack Auth init command (#521) 2025-03-10 04:53:36 +01:00
tsconfig.json Convert packages/init-stack to TypeScript (#465) 2025-02-25 23:02:25 +00:00
tsup.config.ts Convert packages/init-stack to TypeScript (#465) 2025-02-25 23:02:25 +00:00
vitest.config.ts In-source unit tests (#429) 2025-02-14 11:47:52 -08:00

Stack Auth Initialization Tool

This package provides a command-line tool to initialize Stack Auth in your project.

Usage

npx init-stack [project-path] [options]

Options

  • --help, -h: Show help message
  • --dry-run: Run without making any changes
  • --neon: Use Neon database
  • --js: Initialize for JavaScript project
  • --next: Initialize for Next.js project
  • --npm: Use npm as package manager
  • --yarn: Use yarn as package manager
  • --pnpm: Use pnpm as package manager
  • --bun: Use bun as package manager
  • --client: Initialize client-side only
  • --server: Initialize server-side only
  • --no-browser: Don't open browser for environment variable setup

Environment Variables

  • STACK_DISABLE_INTERACTIVE: Set to any value to disable interactive prompts. Useful for CI/CD environments.

Examples

Initialize Stack Auth in a Next.js project without opening the browser:

npx init-stack --next --no-browser

Initialize Stack Auth in a JavaScript project with npm:

npx init-stack --js --npm

For more information, please visit Stack Auth Documentation.