effect-ts · joelhooks — Claude Code skill for idiomatic Effect v4
Gives the agent ground rules for Effect v4 code: services, layers, schemas and errors. Useful once a project already depends on effect.
npx skills add joelhooks/effectts-skills --skill effect-ts -a claude-codeWhat effect-ts does
The skill loads a set of rules and examples the agent reads before touching Effect code. It covers patterns from effect-solutions and the library source: Effect.gen for straight-line composition, Effect.fn for traced service methods, ServiceMap.Service with a typed Layer, Schema.Class and branded primitives for domain records, Schema.TaggedErrorClass for errors you raise with yield*.
The central rule is to stop trusting memory. The agent checks for a shallow source mirror in .agent-sources/effect/ and clones the repository there when it is missing. Skip that step and recent v4 APIs such as effect/unstable/http and effect/unstable/cli have nowhere to come from.
Keep the mirror out of product commits. The skill suggests .git/info/exclude rather than the shared .gitignore. It also lists local paths to effect-solutions and the Effect monorepo on the author's machine; you likely have neither, so the cloned mirror is what matters. A separate effect_source tool is mentioned for status, hydrate and search, with plain grep as the fallback.
What it helps with
- Port existing code to the Effect v4 API
- Define a service with
ServiceMap.Serviceand wire itsLayer - Model a domain record on
Schema.Classwith branded IDs - Turn thrown failures into tagged errors caught by
catchTag - Pull current examples from library source before a refactor
Example prompts for the agent
- Add a
Usersservice withServiceMap.Serviceand a layer over the Effect HTTP client - Make
UserIda branded type and define aUserclass onSchema.Class - Rewrite the failure in
getUseras aSchema.TaggedErrorClass
How to install effect-ts
1Skills CLI (Vercel)
npx skills add joelhooks/effectts-skills --skill effect-ts -a claude-code2Manually: put the files in place
~/.claude/skills/effect-ts/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/effect-ts/
1Skills CLI (Vercel)
npx skills add joelhooks/effectts-skills --skill effect-ts -a codex2Manually: put the files in place
.agents/skills/effect-ts/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add joelhooks/effectts-skills --skill effect-ts -a cursor2Manually: put the files in place
.cursor/skills/effect-ts/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install joelhooks/effectts-skills effect-ts2Manually: put the files in place
.github/skills/effect-ts/SKILL.md1Skills CLI (Vercel)
npx skills add joelhooks/effectts-skills --skill effect-ts -a gemini-cli2Platform CLI
gemini skills install https://github.com/joelhooks/effectts-skills --path skills/effect-tsManually: put the files in place
.devin/skills/effect-ts/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add joelhooks/effectts-skills --skill effect-ts -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about effect-ts
How do I install effect-ts in Claude Code?
Run npx skills add joelhooks/effectts-skills --skill effect-ts -a claude-code. The skill lands at ~/.claude/skills/effect-ts/SKILL.md.
What does effect-ts do?
It gives the agent rules and worked examples for Effect v4: services, layers, schemas, error handling and tests.
Why does the skill clone the Effect source?
So the agent matches current APIs instead of old articles. The mirror sits in .agent-sources/effect/ and comes from a git clone --depth 1.
Similar skills
All skills for Programming languages →effect-ts by other authors comes first.