arch-tsdown-cli is a TypeScript CLI package starter (based on hairyf/starter-cli) that uses tsdown for building. It provides a minimal, opinionated setup: dual surface (library + bin), ESM-only output, automatic .d.ts generation, dev bin via tsx, pnpm, Vitest, ESLint, and optional npm Trusted Publisher for CI-based releases.
The skill is based on starter-cli (arch-tsdown-cli source), generated at 2026-01-30.
Recommended practices:
- Use dev bin (tsx) locally and prod bin (dist) in publishConfig
- Build pure ESM; enable
dts and keep external for dependencies
- Use npm Trusted Publisher for releases
Core References
| Topic |
Description |
Reference |
| Overview |
Project purpose, structure, when to use |
core-overview |
| Bin Entry |
dev vs prod bin, shebang, tsx |
core-bin-entry |
| tsdown Config |
entry, format, dts, external |
core-tsdown-config |
| Scripts & Release |
build, dev, start, release, npm Trusted Publisher |
core-scripts |
| Package Exports |
dist, bin, publishConfig, files |
core-package-exports |
| Tooling |
ESLint, TypeScript, Vitest config |
core-tooling |
| Git Hooks |
simple-git-hooks, lint-staged, pre-commit |
core-git-hooks |
| CI |
GitHub Actions — lint, typecheck, test matrix |
core-ci |
| Testing |
Vitest, vitest-package-exports |
core-testing |
Best Practices
| Topic |
Description |
Reference |
| CLI & Package |
bin, ESM, dts, external, release |
best-practices-cli |
1---
2name: arch-tsdown-cli
3description: TypeScript CLI starter using tsdown. Use when scaffolding or maintaining an npm CLI package with tsdown, pnpm, Vitest, and npm Trusted Publisher.
4metadata:
5 author: hairy
6 version: "2026.1.30"
7 source: Generated from https://github.com/hairyf/starter-cli, scripts located at https://github.com/antfu/skills
8---
9
10arch-tsdown-cli is a TypeScript **CLI package** starter (based on hairyf/starter-cli) that uses **tsdown** for building. It provides a minimal, opinionated setup: dual surface (library + bin), ESM-only output, automatic `.d.ts` generation, dev bin via tsx, pnpm, Vitest, ESLint, and optional npm Trusted Publisher for CI-based releases.
11
12> The skill is based on starter-cli (arch-tsdown-cli source), generated at 2026-01-30.
13
14**Recommended practices:**
15- Use dev bin (tsx) locally and prod bin (dist) in publishConfig
16- Build pure ESM; enable `dts` and keep `external` for dependencies
17- Use npm Trusted Publisher for releases
18
19## Core References
20
21| Topic | Description | Reference |
22|-------|-------------|-----------|
23| Overview | Project purpose, structure, when to use | [core-overview](references/core-overview.md) |
24| Bin Entry | dev vs prod bin, shebang, tsx | [core-bin-entry](references/core-bin-entry.md) |
25| tsdown Config | entry, format, dts, external | [core-tsdown-config](references/core-tsdown-config.md) |
26| Scripts & Release | build, dev, start, release, npm Trusted Publisher | [core-scripts](references/core-scripts.md) |
27| Package Exports | dist, bin, publishConfig, files | [core-package-exports](references/core-package-exports.md) |
28| Tooling | ESLint, TypeScript, Vitest config | [core-tooling](references/core-tooling.md) |
29| Git Hooks | simple-git-hooks, lint-staged, pre-commit | [core-git-hooks](references/core-git-hooks.md) |
30| CI | GitHub Actions — lint, typecheck, test matrix | [core-ci](references/core-ci.md) |
31| Testing | Vitest, vitest-package-exports | [core-testing](references/core-testing.md) |
32
33## Best Practices
34
35| Topic | Description | Reference |
36|-------|-------------|-----------|
37| CLI & Package | bin, ESM, dts, external, release | [best-practices-cli](references/best-practices-cli.md) |