xtarterize applies configuration through discrete tasks. Each task detects whether it is needed and applies changes only when necessary. Use --only <task-id> or --skip <task-id> to select tasks.
In monorepos, tasks are filtered by scope: root tasks appear only at the monorepo root, and package tasks only inside workspace packages. See the monorepo guide.
| Task |
What it does |
lint/biome |
Install Biome and Ultracite, write biome.json |
lint/oxlint |
Install Oxlint and Ultracite when Vite+ or an existing Oxlint config is detected; write oxlint.config.ts or update an existing oxlint.config.* (legacy .oxlintrc.json is detected but not rewritten) |
lint/oxfmt |
Install Oxfmt and Ultracite when Vite+ or an existing Oxfmt config is detected; write oxfmt.config.ts (legacy .oxfmtrc.json is detected but not rewritten) |
| Task |
What it does |
ts/strict |
Enable strict compiler options in tsconfig.json |
ts/paths |
Add the @/* path alias to tsconfig.json, plus baseUrl outside Next.js |
ts/incremental |
Enable incremental and tsBuildInfoFile |
gitignore/tsbuildinfo |
Ignore *.tsbuildinfo in .gitignore |
| Task |
What it does |
vite/checker |
Add vite-plugin-checker to vite.config.ts |
vite/visualizer |
Add rollup-plugin-visualizer to vite.config.ts |
| Task |
What it does |
ci/ci |
Write a GitHub Actions workflow for lint, typecheck, and test |
ci/release |
Write a release workflow triggered by tags, or by branch/PR when Changesets is detected |
ci/auto-update |
Write a weekly dependency update workflow |
| Task |
What it does |
deps/renovate |
Write renovate.json |
| Task |
What it does |
release/commitlint |
Write commitlint.config.ts; the git hook runs commitlint via dlx |
release/czg |
Install czg and add a commit script |
release/cat-version |
Install commit-and-tag-version and write .versionrc |
release/git-hooks |
Install husky and wire the commit-msg, prepare-commit-msg, pre-commit, and pre-push hooks |
release/versionrc |
Write .versionrc.json with changelog sections |
| Task |
What it does |
quality/knip |
Write knip.config.ts; Knip is installed by scripts/package-scripts when it adds the knip script |
quality/lint-staged |
Install lint-staged and write .lintstagedrc.json |
quality/package-engines |
Add devEngines to package.json |
| Task |
What it does |
codegen/plop |
Install Plop and write plopfile.ts with framework-specific generators |
| Task |
What it does |
monorepo/turbo |
Install Turborepo and write turbo.json |
workspace/pnpm-workspace |
Add workspace globs to pnpm-workspace.yaml |
| Task |
What it does |
editor/vscode |
Write or merge .vscode/settings.json and .vscode/extensions.json |
| Task |
What it does |
agent/agents-md |
Write AGENTS.md with project description and commands |
agent/skills-install |
Install agent skills for the detected stack |
| Task |
What it does |
scripts/package-scripts |
Add lint, check, fix, typecheck, and similar scripts to package.json |
scripts/npmrc |
Write .npmrc with save-exact and peer dependency settings |
All tasks are idempotent: a second run makes no changes. Each task reports one of new, patch, skip, or conflict.
Learn how to contribute a task