npm package: @mucolabs/feedbl
Description: Interactive CLI for setting up OxC tooling (oxlint, oxfmt, tsgo) with opinionated presets
Author: mucolabs
Latest version: 0.0.1

# @mucolabs/feedbl

Interactive CLI for setting up OxC tooling (oxlint, oxfmt, tsgo) with opinionated presets.

- Walks you through project type, tool selection, and configuration in one command
- Generates oxlint, oxfmt, tsgo, git hooks, and VS Code configs
- Supports 5 preset combinations covering AdonisJS, TanStack Start, and monorepo setups
- Scans for conflicts and shows a full plan before writing anything
- Rolls back all changes if something fails mid-write

## Quick Start

```bash
pnpm dlx @mucolabs/feedbl
```

Or with npm:

```bash
npx @mucolabs/feedbl
```

The CLI will:

1. Ask you to pick a project type
2. Let you select which tools to set up (all selected by default)
3. Detect your package manager (or ask)
4. Show a plan of files to create or overwrite
5. Write config files, install dependencies, and set up git hooks

## Supported Project Types

| Preset                                 | Monorepo        | React          | Key Plugins                                                   |
| -------------------------------------- | --------------- | -------------- | ------------------------------------------------------------- |
| TanStack Start                         | No              | Yes            | react, react-compiler, react-refresh, @tanstack/router        |
| AdonisJS + Inertia (React)             | No              | Yes            | react, react-compiler, react-refresh, @adonisjs/eslint-plugin |
| AdonisJS + Inertia Monorepo            | Yes (Turborepo) | Yes            | same as above + turbo                                         |
| AdonisJS API + TanStack Start Monorepo | Yes (Turborepo) | Yes (web only) | react + @tanstack/router (web), none (api)                    |
| AdonisJS API-only                      | No              | No             | typescript, eslint, unicorn, import, promise only             |

## What Gets Generated

Depending on your selections:

- `.oxlintrc.json` with plugins, rules, and ignore patterns matching your stack
- `.oxfmtrc.json` with formatting options and import sorting
- `package.json` scripts (`lint`, `format`, `typecheck`, `check`)
- `.husky/pre-commit` and `.husky/commit-msg` hooks
- `.lintstagedrc.json` with auto-fix mode
- `commitlint.config.mjs` extending conventional commits
- `.editorconfig`
- `.vscode/settings.json` and `.vscode/extensions.json`

For monorepo presets, you also get:

- `turbo.json` with task definitions
- `pnpm-workspace.yaml`
- Per-workspace `.oxlintrc.json` configs extending the root
- Per-workspace `package.json` scripts

## Configuration Reference

### oxlint

All presets use category-based configuration:

- `correctness`: error
- `perf`: warn
- `suspicious`: warn
- `style`, `pedantic`, `restriction`, `nursery`: off

Backend-only presets use `typescript`, `eslint`, `unicorn`, `import`, `promise` plugins. React presets add `react`, `react-hooks`, `jsx-a11y` plus JS plugins for compiler/refresh support.

### oxfmt

Shared formatting: no semicolons, single quotes, trailing commas, 100 char width. Import sorting varies by preset (TanStack uses `#/` internal pattern, AdonisJS uses descending order).

### Git Hooks

- `pre-commit`: runs lint-staged (oxlint --fix on JS/TS files, oxfmt on all files)
- `commit-msg`: runs commitlint with conventional commits

### tsgo

Adds `@typescript/native-preview` and a `typecheck` script using `tsgo --noEmit`.

## Customization

After running feedbl, all generated config files are yours to edit. The tool writes standard JSON config files that oxlint, oxfmt, and other tools read directly.

To re-run feedbl, it will detect existing files and show them as overwrites in the plan. You can confirm or abort.

## Requirements

- Node.js >= 22.0.0

## License

MIT