Es-toolkit guide
es-toolkit usage guide covering installation, import patterns, and setup for Node.js, Bun, Deno, and browsers. Use when the user asks how to install, import, or set up es-toolkit in their project.
git clone https://github.com/toss/es-toolkit
T=$(mktemp -d) && git clone --depth=1 https://github.com/toss/es-toolkit "$T" && mkdir -p ~/.claude/skills && cp -r "$T/es-toolkit-plugin/skills/guide" ~/.claude/skills/toss-es-toolkit-guide && rm -rf "$T"
es-toolkit-plugin/skills/guide/SKILL.mdes-toolkit Usage Guide
Provide guidance on installing, importing, and using es-toolkit across different runtimes.
Input
$ARGUMENTS — A topic or question about es-toolkit usage.
Why source-of-truth matters
Installation commands and import paths change across versions. Always verify from the local docs in this repository (
docs/usage.md, docs/ko/usage.md) rather than relying on memorized instructions.
Workflow
1. Check local documentation first
Read the relevant docs from this repository:
ordocs/usage.md
— installation and import patternsdocs/ko/usage.md
ordocs/intro.md
— overview and key featuresdocs/ko/intro.md
ordocs/bundle-size.md
— bundle size datadocs/ko/bundle-size.md
— raw benchmark numbersbenchmarks/bundle-size/
ordocs/performance.md
— runtime performance benchmarksdocs/ko/performance.md
These are authoritative and always up-to-date.
2. Answer based on the user's environment
Identify the runtime (Node.js, Bun, Deno, browser) and provide environment-specific guidance.
Key facts to verify from docs:
- Deno:
(note thedeno add jsr:@es-toolkit/es-toolkit
prefix)jsr: - Deno import path:
(extra scope vs npm)'@es-toolkit/es-toolkit' - npm/yarn/pnpm/bun: Detect the project's package manager from its lockfile (
→ npm,package-lock.json
→ yarn,yarn.lock
→ pnpm,pnpm-lock.yaml
→ bun) and provide the matching install command. If no lockfile exists, show all options.bun.lockb - Import path:
for strict,'es-toolkit'
for lodash-compatible'es-toolkit/compat' - Browser/CDN: jsdelivr, unpkg for UMD (
global), esm.sh for ES modules (import map) — see_
Browsers section for exact snippetsdocs/usage.md
3. Cover these topics as relevant
- Installation: per-runtime commands
- Import patterns: named imports (recommended for tree-shaking), category imports, compat imports. List all available subpath imports by reading the
field inexports
(e.g.,package.json
,es-toolkit
,es-toolkit/compat
, etc.) so users see the full set of entry points.es-toolkit/array - Anti-patterns to avoid: Warn against namespace imports (
) as they defeat tree-shaking. Always prefer named imports (import * as _ from 'es-toolkit'
).import { chunk, debounce } from 'es-toolkit' - Bundle size: reference actual numbers from
docs/bundle-size.md - Performance: 2-3x faster than lodash (from official benchmarks)
- Type safety: built-in TypeScript types, 100% test coverage
4. Search local docs for additional topics
If the user asks something not covered by the files listed above, search the bundled documentation:
- Function docs:
docs/reference/{category}/{functionName}.md - By keyword:
acrossGrepdocs/reference/**/*.md - Other docs:
,docs/usage.md
,docs/intro.md
,docs/bundle-size.mddocs/performance.md
5. Always include doc links
End responses with relevant links:
## Learn More - Documentation: https://es-toolkit.dev - API Reference: https://es-toolkit.dev/reference/{relevant-category} - GitHub: https://github.com/toss/es-toolkit