Skip to content

TypeScript & Turbo

Monorepo mastery

Modern JavaScript development means TypeScript monorepos with Turborepo. These aliases make it feel native.

Turborepo Aliases

Basic Commands

AliasCommandDescription
tturboTurbo CLI
tbturbo buildBuild all packages
tdturbo devDev mode (all)
tlturbo lint:fixLint & auto-fix
ttturbo testRun all tests
tcturbo typecheckType check
tfturbo --filterFilter prefix

Most turbo commands work on all packages by default. Use filters to target specific ones.

Filter Functions

Run turbo commands scoped to specific packages:

bash
tdf temporal          # turbo dev --filter=temporal
tbf @packages/agents  # turbo build --filter=@packages/agents
tcf @apps/tools       # turbo typecheck --filter=@apps/tools
ttf temporal          # turbo test --filter=temporal

These save massive amounts of typing in large monorepos. Build muscle memory for your most-used packages.

Housekeeping

AliasCommandDescription
tkillpkill turboKill all turbo processes
tclearrm -rf .turboClear turbo cache
trestartpkill turbo; turbo devKill and restart dev servers

When turbo gets into a weird state (it happens), trestart is your friend.

pnpm Aliases

AliasCommandDescription
ppnpmpnpm CLI
pipnpm installInstall dependencies
papnpm addAdd dependency
padpnpm add -DAdd dev dependency
prmpnpm removeRemove package
prpnpm runRun script
puppnpm updateUpdate packages
pupipnpm update --interactiveInteractive update
poutpnpm outdatedCheck outdated packages
pauditpnpm auditSecurity audit

pnpm is faster than npm, especially in monorepos. These aliases make it even faster.

TypeScript Commands

Type Checking

AliasCommandDescription
tscpnpm exec tscTypeScript compiler
tcheckpnpm exec tsc --noEmitType check only (no build)
tcwpnpm exec tsc --noEmit --watchWatch mode type checking
tsvpnpm exec tsc --versionShow TypeScript version

tcheck is your friend. Run it before committing to catch type errors early.

Running TypeScript

Direct TypeScript execution with tsx:

bash
ts file.ts           # Run TypeScript file directly
tsw file.ts          # Watch mode - reruns on changes
tsx                  # Direct tsx access

No build step needed. Perfect for quick scripts and testing.

Testing

Vitest

AliasCommandDescription
vtpnpm exec vitestRun vitest
vtwpnpm exec vitest --watchWatch mode
vtupnpm exec vitest --uiUI mode (in browser)
vtcpnpm exec vitest --coverageWith coverage report
vtrpnpm exec vitest runSingle run (no watch)

Vitest is fast. Really fast. Use watch mode during development.

Linting & Formatting

AliasCommandDescription
lintpnpm run lint:allRun all linters
lintfpnpm run lint:fixLint with auto-fix
fmtpnpm exec prettier --writeFormat with Prettier
biopnpm exec biomeBiome CLI
biofpnpm exec biome check --writeBiome check and fix

Biome is faster than ESLint + Prettier combined. Consider it for new projects.

Git Iris Integration

AI-powered git workflows:

AliasCommandDescription
irisgit irisGit Iris CLI
irisggit iris genGenerate commit message
irispgit iris prGenerate PR description
irissgit iris studioOpen Iris studio interface

PR Description Functions

Generate PR descriptions from commits:

bash
gpr            # Generate PR desc from HEAD~1
gpr HEAD~3     # From last 3 commits
gprc HEAD~2    # Generate and copy to clipboard

Let AI write your PR descriptions. Edit as needed, but it's a great starting point.

Monorepo Navigation

mono — Package Jumper

Fuzzy-find and jump to packages in your monorepo:

bash
mono
# Shows all packages (finds all package.json files)
# Preview shows package name from package.json
# Enter to cd into selected package

Works in any monorepo with package.json files. Faster than remembering paths.

monols — List Packages

Display all workspace packages with SilkCircuit styling:

bash
monols
# ━━━ Workspace Packages ━━━
# ▸ @apps/web                      0.0.1
# ▸ @apps/api                      0.0.1
# ▸ @packages/agents               1.0.0
# ▸ temporal                       0.0.1

Quick overview of your monorepo structure and versions.

Project Info

ts-info — Project Details

Show comprehensive TypeScript project information:

bash
ts-info
# ━━━ Project Info ━━━
# ▸ Node: v22.0.0
# ▸ PM: pnpm (monorepo)
# ▸ TypeScript: 5.6.3
# ▸ Turbo: enabled
#
# ━━━ Tooling ━━━
#   ✓ vitest
#   ✓ biome
#   ✓ eslint

Great for onboarding or debugging environment issues.

Claude Code

AliasCommandDescription
ccclaudeClaude CLI
cccclaude --continueContinue session

For AI-assisted development in the terminal.

Workflows

Starting Development

bash
# Jump to package
mono
# Select the one you're working on

# Start dev server (filtered)
tdf @apps/web

# In another terminal, watch tests
ttf @apps/web

Before Commit

bash
# Type check
tcheck

# Lint and fix
lintf

# Run tests
vtr

# Commit with AI
gig

Managing Dependencies

bash
# Check outdated packages
pout

# Interactive update
pupi

# Or update all
pup

Building for Production

bash
# Type check first
tc

# Build all
tb

# Or filter specific packages
tbf @apps/web @apps/api

Debugging Type Errors

bash
# Watch mode shows errors as you fix them
tcw

# Or check specific package
tsc --noEmit -p packages/agents/tsconfig.json

Cleaning Up

bash
# Clear turbo cache
tclear

# Kill stuck dev servers
tkill

# Reinstall dependencies
rm -rf node_modules
pi

Pro Tips

Use filters aggressively: In large monorepos, tdf mypackage is way faster than td (which starts everything).

Watch mode for tests: Keep vtw running in a tmux pane. Instant feedback on changes.

Type check before build: tcheck is faster than a full build and catches type errors early.

Learn your package names: Muscle memory for filter commands pays off fast. tdf temporal becomes automatic.

AI for boilerplate: Use iris for commit messages and PR descriptions. Edit the output, but let AI do the first draft.

Navigate with mono: Stop typing paths. mono + fuzzy search is faster.

Cache awareness: Turbo cache is smart, but sometimes you need tclear to fix weird issues.

Workspace commands: Use pnpm -r for workspace-wide commands: pnpm -r build builds everything.

Released under the MIT License