The Effect Solutions CLI provides curated best practices and patterns for Effect TypeScript. Before working on Effect code, check if there's a relevant topic that covers your use case.
effect-solutions list- List all available topicseffect-solutions show <slug...>- Read one or more topicseffect-solutions search <term>- Search topics by keyword
Local Effect Source: The Effect repository is cloned to ~/.local/share/effect-solutions/effect for reference. Use this to explore APIs, find usage examples, and understand implementation details when the documentation isn't enough.
- Runtime: Bun only. No Node.js, npm, pnpm, vite, dotenv.
- TypeScript: Strict mode enabled. ESNext target.
- Effect: Use
Effect.genfor async code,BunRuntime.runMainfor entry points. - Imports: External packages first, then local. Use
.tsextensions for local imports. - Bun APIs: Prefer
Bun.file,Bun.serve,bun:sqlite,Bun.$over Node equivalents. - Testing: Use
bun:testwithimport { test, expect } from "bun:test".
- run
bun checkto check for errors
- Use Effect's error channel for typed errors.
- Use
Effect.tryPromisefor async operations,Effect.tryfor sync. - Pipe errors through Effect combinators, don't throw.
When the user says "use btca", use btca before you answer the question. It will give you up to date information about the technology.
Run:
- bun cli ask -t -q ""
Available : svelte, tailwindcss, opentui, runed, effect, shiki