effect-typescript

Guide Effect usage in TypeScript and Bun code for I/O and runtime boundaries.

1|Updated Apr 27, 2026
One-click install
npx skills add https://github.com/darkmatter/skills --skill effect-typescript
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: effect-typescript
Source: https://github.com/darkmatter/skills/tree/main/skills/effect-typescript
Command: npx skills add https://github.com/darkmatter/skills --skill effect-typescript

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps you decide when TypeScript code should use Effect instead of plain async code, especially when the work involves meaningful I/O, typed failures, dependencies, validation, retries, resources, or long-lived runtime boundaries.

Core Features & Use Cases

  • Judgment for adoption: Distinguishes small one-off scripts and pure functions from workflows that benefit from Effect.
  • Production patterns: Guides you through services, Layers, Schema validation, Config, retries, scoped resources, and testable boundaries.
  • Darkmatter conventions: Adapts upstream Effect guidance to Bun commands and Alchemy-based deployment workflows.
  • Use cases: Building API clients, database-backed services, queue workers, scheduled jobs, and deployable infrastructure with typed errors and deterministic tests.

Quick Start

Ask for an Effect-first review of your TypeScript task and have it recommend whether to use plain code or a Layer-based Effect design, with Bun and Alchemy conventions applied where relevant.

Frequently Asked Questions about effect-typescript

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

FAQPage Schema
When should I use Effect instead of plain async TypeScript for I/O operations?

Use Effect for TypeScript workflows involving meaningful I/O, typed failures, dependencies, validation, retries, resources, or long-lived runtime boundaries. Plain async code remains suitable for small one-off scripts and pure functions.

How do I build a database-backed service with Effect Layers and Bun?

Build database-backed services using Effect Layers to establish typed dependency injection and safe resource lifecycles. This approach ensures validated boundaries, deterministic tests, and Bun-compatible tooling conventions for production deployments.

Does Effect work with Bun and Alchemy deployment workflows?

Effect works with Bun commands and Alchemy-based deployment workflows by applying typed dependency injection, bounded retries, and safe resource lifecycles. This integration supports deployable infrastructure with typed errors and Effect-aware testing.

What is the best way to handle typed errors and retries in TypeScript?

The best way to handle typed errors and retries in TypeScript is using Effect's runtime boundaries. Effect provides typed error management, bounded retries, and scoped resources to ensure safe resource lifecycles within your services.

How do I validate runtime boundaries using Effect Schema in TypeScript?

Validate runtime boundaries using Effect Schema to enforce type-safe data validation in TypeScript. Schema integrates with Effect services and Config to provide deterministic tests and typed dependency injection across your application.

Can I use plain TypeScript for queue workers or should I use Effect?

Effect is recommended for queue workers, scheduled jobs, and API clients because they involve meaningful I/O and typed failures. Plain TypeScript is better reserved for small one-off scripts and pure functions without complex dependencies.