This is a monorepo containing @tylerbutler's personal tools and CLI utilities.
# Install dependencies (requires pnpm 10.10.0)
pnpm install
# Build all packages
pnpm build
# Run tests
pnpm test
# Check code quality
pnpm check
# Format code
pnpm format| Package | Description |
|---|---|
@tylerbu/cli |
Tyler Butler's personal CLI. |
@tylerbu/cli-api |
Base classes and other API helpers for oclif-based CLI projects. |
@tylerbu/fundamentals |
Fundamental functions and classes that I often need in my projects. Zero dependencies. |
@tylerbu/lilconfig-loader-ts |
A loader that enables loading TypeScript files in lilconfig. |
@tylerbu/local-config |
|
@tylerbu/sail |
Build orchestration CLI tool |
@tylerbu/sail-infrastructure |
Sail build infrastructure |
@tylerbu/sorted-btree-es6 |
A sorted list of key-value pairs in a fast, typed in-memory B+ tree with a powerful API. |
@tylerbu/xkcd2-api |
TypeScript APIs used in implementations of xkcd2.com. |
astro-tinylytics |
Astro components for Tinylytics analytics, kudos buttons, and webmentions. |
dill-cli |
Command-line (CLI) program to download and optionally decompress gzipped files. |
dill-docs |
|
rehype-footnotes |
Rehype plugin to transform GFM footnotes for Littlefoot.js integration |
remark-lazy-links |
Remark plugin to transform lazy markdown links [*] into numbered references |
remark-repopo-policies |
Remark plugin to generate documentation tables for repopo repository policies |
remark-shift-headings |
Remark plugin to shift heading levels based on rendering context |
remark-task-table |
Remark plugin to generate and update task tables from package.json scripts and justfile recipes |
remark-workspace-packages |
Remark plugin to generate and update workspace package tables in markdown |
repopo |
Enforce policies on all or some of the files in a git repository. |
repopo-docs |
|
sort-tsconfig |
Sorts tsconfig files. |
For detailed information, see CLAUDE.md:
- Architecture patterns and task orchestration
- Build pipeline configuration
- Development workflows
- Testing strategies
- Package-specific guidelines
| Task | Description |
|---|---|
check |
Orchestrates check pipeline |
clean |
nx run tools-monorepo:clean:root && nx run-many -t clean |
build |
nx run-many -t build |
ci |
nx run-many -t ci |
compile |
nx run-many -t build:compile |
docs |
nx run-many -t build:docs |
format |
biome check . --linter-enabled=false --write |
lint |
lint |
test |
nx run-many -t test |
Implementation Tasks (actual commands with : prefix):
build:compile- TypeScript compilationbuild:api- API documentation generationbuild:site- Static site builds (Astro)test:vitest- Vitest unit teststest:coverage- Tests with coveragecheck:format- Biome format checkingcheck:types- TypeScript type checking
# Build only affected packages (compares to main branch)
pnpm nx affected -t build
# Run CI on all packages
pnpm run ci:all
# Build specific package
pnpm nx run cli:build
# View task execution plan
pnpm nx run cli:build --dry-run
# Visualize dependency graph
pnpm nx graphNx runs up to eight tasks in parallel. Vitest uses at most two workers per
package to limit CPU and memory use during pnpm run ci. Tests have a 15-second
timeout both locally and in GitHub Actions. The shared settings are in
config/vitest.config.ts; the Astro component package uses the same limits in
its Astro-aware Vitest config.
CLI Tools:
@tylerbu/cli- Personal CLI utility (bin:tbu)dill-cli- File download/extraction toolrepopo- Repository policy enforcementsort-tsconfig- TypeScript config sorter
Libraries:
@tylerbu/fundamentals- Zero-dependency utilities@tylerbu/cli-api- OCLIF command infrastructure
Documentation Sites:
dill-docs- Dill CLI documentationrepopo-docs- Repopo tool documentation
This repository provides comprehensive instructions for AI coding agents:
- .github/copilot-instructions.md - Repository-wide custom instructions for GitHub Copilot
- AGENTS.md - General agent instructions (used by any AI coding agent)
- CLAUDE.md - Detailed instructions specifically for Claude AI
These files follow GitHub Copilot best practices to help AI agents work effectively in this repository.
- Node.js: >= 18.0.0
- pnpm: 10.10.0 (enforced via
packageManagerfield) - Nx: Workspace orchestration
- Biome: Formatting and linting