git clone https://github.com/Evan1108-Coder/Setupr.git
cd Setupr
npm install
npm run dev # Watch modesrc/
├── cli/ # CLI entry, routing, pre-warning, transition
├── commands/ # Non-TUI command implementations
├── tui/ # React/Ink TUI components and layouts
├── scanner/ # Project detection (language, framework, PM, services)
├── ai/ # Multi-provider AI client (6 providers), intelligence layers, DSL
├── agent/ # AI director runtime: safety, plan diffs, checkpoints, provider diagnostics
├── executor/ # Step execution, checkpoint saving, undo/redo
├── processes/ # Managed process supervisor, registry, and logs
├── status/ # Dashboard/status collection
├── verification/ # Test, smoke, CI, report, and scaffold verification workflows
├── security/ # Defensive local security scans, reports, baselines, and ignores
├── context/ # Environment context collection
├── plugins/ # Public plugin API contracts
├── state/ # Zustand store, checkpoint, config
└── utils/ # Shared utilities
- Add detection signals to
src/scanner/languageDetector.ts - Add install command mapping in
src/ai/planner.ts - Test with a sample project
- Add framework signals to
src/scanner/frameworkDetector.ts - Test detection with a real project
- Add handler in
src/commands/plain/router.ts - Add the command to
src/cli/commandRegistry.ts - Add focused tests under
tests/
- Create layout in
src/tui/layouts/ - Add case in
src/tui/App.tsx - Add the command to
src/cli/commandRegistry.ts - Verify alternate screen, resize behavior, mouse/click input, and bounded text rendering
Use Setupr's plugin developer commands instead of hand-writing boilerplate:
setupr plugin create my-tools
cd setupr-plugin-my-tools
npm install
npm run build
setupr plugin validate .Plugin packages should include:
- a package name or keyword containing
setupr-plugin - a
setuprblock inpackage.jsonwithapiVersion: "1" - a built entrypoint exposed through
mainorexports - deterministic failure behavior: invalid manifests should surface
PLUGIN_INVALID, install/load failures should surfacePLUGIN_LOAD_FAILED - extension points should return structured values and route shell work through the executor/safety layer
- runtime plugins should be enabled through Setupr config; setup planners, doctor checks, panels, and commands receive a
SetuprPluginContextwith scan and project context
npm test # Run tests
npm run typecheck # Type check
npm run lint # Lint source
npm run build # Build the npm package entrypoint
npm run smoke:fixtures # Exercise representative CLI/TUI fixtures- TypeScript strict mode
- ESM modules
- Functional components for TUI (React/Ink)
- No unnecessary comments — code should be self-documenting
- Create a feature branch
- Make your changes
- Ensure
npm run typecheckpasses - Ensure
npm testpasses - Submit PR with description of changes