From totto2727
This skill should be used when creating single-file CLI tools with Deno and TypeScript. Relevant when the user asks to build a CLI tool, create a command-line utility, or set up argument parsing with Effect CLI. Common triggers: "create CLI tool", "build command-line app", "deno CLI", "Effect CLI", "argument parsing".
How this skill is triggered — by the user, by Claude, or both
Slash command
/totto2727:deno-cli-toolThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Rules for building single-file CLI tools with Deno.
Rules for building single-file CLI tools with Deno. For general scripting rules (imports, built-in API preference, prohibited technologies), see script-rules.
.ts file unless explicitly told otherwisechmod +xAlways use Effect CLI for argument parsing:
| Purpose | Package | Registry |
|---|---|---|
| CLI framework | @effect/cli | jsr:@totto2727/[email protected]/effect/cli |
| Core / Schema | effect | jsr:@totto2727/[email protected]/effect |
| HTTP client | @effect/platform | jsr:@totto2727/[email protected]/effect/platform |
| Node runtime | @effect/platform-node | jsr:@totto2727/[email protected]/effect/platform/node |
| Purpose | Package | Registry |
|---|---|---|
| Terminal spinner | ora | npm:ora |
| Terminal colors | ansis | npm:ansis |
| YAML parsing | @std/yaml | jsr:@std/yaml |
| Path utilities | @std/path | jsr:@std/path |
Only request the minimum permissions needed:
#!/usr/bin/env -S deno run --allow-read --allow-write --allow-net
Common flags: --allow-read, --allow-write, --allow-net, --allow-env, --allow-run, --allow-ffi
chmod +x my-tool.ts
A minimal Effect CLI tool with a single command:
#!/usr/bin/env -S deno run --allow-read
import { Console, Effect } from 'jsr:@totto2727/[email protected]/effect'
import { Args, Command } from 'jsr:@totto2727/[email protected]/effect/cli'
import { NodeContext, NodeRuntime } from 'jsr:@totto2727/[email protected]/effect/platform/node'
import * as process from 'node:process'
const name = Args.text({ name: 'name' })
const main = Command.make('greet', { name }, ({ name }) => Console.log(`Hello, ${name}!`))
const cli = Command.run(main, { name: 'greet', version: '0.1.0' })
cli(process.argv).pipe(Effect.provide(NodeContext.layer), NodeRuntime.runMain)
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub totto2727-org/monorepo --plugin totto2727