Effect Claudecode — Development skill for Claude Code
Effect v4 bindings for Claude Code's plugin primitives — hooks, skills, settings, MCP servers, frontmatter.
How to install Effect Claudecode
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open mpsuesser/effect-claudecode and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Effect Claudecode does
Effect v4 bindings for Claude Code's plugin primitives — hooks, skills, settings, MCP servers, frontmatter.
Alternatives in Development
- MCP Builder — Guide for creating high-quality MCP servers to integrate external APIs and services 94.1k ★
- MCP Python SDK — Python SDK for building MCP servers 22.3k ★
- Claude Code Everything You Need To Know — Ultimate all-in-one guide to mastering Claude Code 1.3k ★
README
effect-claudecode
Write [Claude Code](https://code.claude.com) plugins — hooks, skills, subagents, commands, MCP servers — with [Effect v4](https://effect.website).
Install
npm install effect-claudecode effect@4.0.0-beta.80 @effect/platform-node-shared@4.0.0-beta.80
bun add effect-claudecode effect@4.0.0-beta.80 @effect/platform-node-shared@4.0.0-beta.80
Before / After
A vanilla Claude Code hook that rewrites `npm test` to `bun run test`:
// hooks/rewrite-test.js — vanilla Node.js
let data = '';
process.stdin.on('data', (chunk) => (data += chunk));
process.stdin.on('end', () => {
const input = JSON.parse(data);
const command = input.tool_input?.command ?? '';
const output = command.startsWith('npm test')
? { continue: true, hookSpecificOutput: {
hookEventName: 'PreToolUse',
updatedInput: { command: command.replace('npm test', 'bun run test') },
permissionDecision: 'allow',
permissionDecisionReason: 'This workspace runs tests through Bun.'
}}
: { continue: true };
process.stdout.write(JSON.stringify(output));
process.exit(0);
});
The same hook with effect-claudecode:
import * as Effect from 'effect/Effect';
import * as Str from 'effect/String';
import { Hook } from 'effect-claudecode';
const hook = Hook.PreToolUse.onTool({
toolName: 'Bash',
handler: ({ tool }) =>
Effect.succeed(
Str.startsWith('npm test')(tool.command)
? Hook.PreToolUse.allowWithUpdatedInput(
{ command: Str.replace('npm test', 'bun run test')(tool.command) },
'This workspace runs tests through Bun.'
)
: Hook.PreToolUse.allow()
)
});
Hook.runMain(hook);
Typed tool payloads, decision constructors, correct exit-code semantics — no stdin plumbing, no manual JSON, no `process.exit`.
What You Can Build
Detect when Claude is stuck in a loop
Every Claude Code user has watched Claude read the same file three times in a
Related Skills
Claude Profiles
Profile switcher for Claude Code — swap settings, hooks, MCP servers, and commands between configurations
Configdeck
Native macOS SwiftUI dashboard for inspecting your ~/.claude config — skills, agents, settings, hooks, MCP ser
Ashlr Doctor
Diagnose an ashlr-plugin install — checks plugin path, version, MCP servers, hooks, stats, genome, and setting
Sync Claude Config
Sync Claude Code + cross-CLI config (AGENTS.md, CLAUDE.md, GEMINI.md, agents, skills, settings, statusline, gu
Claude Rig
Run multiple Claude Code profiles (rigs) side-by-side - choose exactly what to isolate, inherit and share (aut
Agent Backup
macOS app to back up coding-agent settings (MCP servers, sessions, memory, skills) to Google Drive with end-to
Related Agents
Config Conformance Reviewer
Reviews changes to Claude Code config surfaces (settings.json, agent/skill frontmatter, plugin.json, marketpla
Light Security ClaudeSettingsAudit
Audit Claude Code config files (settings.json, settings.local.json, .mcp.json) for unsafe or malicious content
Claude Code Infra
Use PROACTIVELY and automatically — do not wait to be asked — to configure Claude Code itself: sub-agents, ski