setup-new-monorepo

Set up a bun workspaces monorepo with Effect v4, dprint, oxlint, and lefthook.

Updated Mar 12, 2026
One-click install
npx skills add https://github.com/mpsuesser/workspace --skill setup-new-monorepo
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: setup-new-monorepo
Source: https://github.com/mpsuesser/workspace/tree/main/dotconfig/pi/agent/skills/setup-new-monorepo
Command: npx skills add https://github.com/mpsuesser/workspace --skill setup-new-monorepo

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It prevents wasted time and inconsistency by giving a house-standard, opinionated setup for initializing a new JavaScript/TypeScript monorepo.

Core Features & Use Cases

  • Standardized workspace architecture: Uses bun workspaces with the expected catalog and catalog:dev dependency grouping to keep dev and non-dev dependencies cleanly separated.
  • Opinionated tooling defaults: Sets up Effect v4, dprint formatting, oxlint linting, and lefthook Git hooks that run bun run check before commit.
  • Environment configuration that matches house conventions: Creates an empty .env and an .envrc that loads it via direnv’s dotenv.
  • Use Case: When you’re starting a new project and need the correct shape for package layouts, scripts, and configs without debating choices that are already decided.

Quick Start

Tell your AI assistant to run setup-new-monorepo for your new repository and then populate the monorepo contents based on your project’s purpose.

Frequently Asked Questions about setup-new-monorepo

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up a new monorepo with bun workspaces and Effect?

You can set up a new monorepo with bun workspaces and Effect by running the setup-new-monorepo initialization process, which applies house-standard configurations for Effect v4, dependency catalogs, and environment files directly to your repository.

What is the best way to configure lefthook pre-commit checks for a TypeScript monorepo?

The best way to configure lefthook pre-commit checks for a TypeScript monorepo is to set the Git hooks to run `bun run check`, ensuring formatting via dprint and linting via oxlint execute automatically before every commit.

Can I use dprint and oxlint together in a bun workspace monorepo?

You can use dprint and oxlint together in a bun workspace monorepo; the setup configures dprint for formatting and oxlint for linting, integrating both to run automatically during lefthook pre-commit checks.

How do I separate dev dependencies in a bun workspace catalog?

You separate dev dependencies in a bun workspace catalog by applying the `catalog` and `catalog:dev` dependency grouping rules, which cleanly isolate non-dev and development dependencies across the monorepo packages.

When should I not use an opinionated monorepo setup?

You should not use an opinionated monorepo setup if your project requires debating tooling choices or deviating from Effect v4, bun workspaces, dprint, oxlint, and lefthook conventions, as this setup enforces strict house standards without flexibility.