Launch documentation for v0.1.0

TypeScript CLIs usually split across parsing, validation, config, prompts, and shell glue. clily keeps that model whole.

clily is the framework behind @clily/core: a runtime-aware command system that validates with Standard Schema libraries, merges config layers deterministically, and generates shell completions from the same command tree you execute.

Validation
Valibot, Zod, ArkType, or any Standard Schema-compatible library.
Runtimes
Node by default, plus Bun and Deno-style execution via injected runtime state.
Shells
bash, zsh, fish, and PowerShell completion generation from one source of truth.
launch snippet/docs/getting-started/first-command
import { clily } from '@clily/core'
import * as v from 'valibot'

const run = clily({
  name: 'release',
  completion: true,
  flags: v.object({
    verbose: v.optional(v.boolean(), false),
  }),
  children: {
    deploy: {
      args: v.object({ apiKey: v.string() }),
      handler: async (args) => {
        console.log(args.apiKey, args.verbose)
      },
    },
  },
})

await run()

Merge order

CLI args → env vars → config files → schema defaults.

Execution model

One typed argument object, whether you run in Node or inject your own runtime boundary.

One configuration story

Model flags and args once, then let clily merge CLI input, environment variables, local config, and schema defaults into a single validated object.

Runtime-aware by design

Use the default runtime in Node, or inject argv, env, cwd, stdout, debug, and exit behavior when you need Bun, Deno-style flows, tests, or embedding.

Completion built in

Generate bash, zsh, fish, and PowerShell completions without maintaining a second command graph or a separate shell integration layer.

Docs map

A documentation system organized around how people adopt CLI frameworks.

Open docs

Production-grade monorepo

The examples are not toy snippets. They are isolated workspaces with their own runtime configs and Docker validation.

That matters for the docs because every guide can point to a concrete workspace: Node + Valibot + zsh, Bun + Zod + bash, Deno-style + ArkType + pwsh, and runtime injection + fish.

Node + Valibot + zsh completion

Bun + Zod + bash completion

Deno-style runtime + ArkType + pwsh

Injected stdout/exit hooks + fish