get your claude code tokens here
1# CRUSH.md 2 3Build/Lint/Test 4- Install: bun install 5- Typecheck: bun x tsc --noEmit 6- Run: bun run index.ts or bun index.ts 7- Test all: bun test 8- Test watch: bun test --watch 9- Test single: bun test path/to/file.test.ts -t "name" 10- Lint: bun x biome check --write || bun x eslint . (if configured) 11 12Conventions 13- Runtime: Bun (see CLAUDE.md). Prefer Bun APIs (Bun.serve, Bun.file, Bun.$) over Node shims. Bun auto-loads .env. 14- Modules: ESM only ("type": "module"). Use extensionless TS imports within project. 15- Formatting: Prettier/biome if present; otherwise 2-space indent, trailing commas where valid, semicolons optional but consistent. 16- Types: Strict TypeScript. Prefer explicit types on public APIs; infer locals via const. Use unknown over any. Narrow with guards. 17- Imports: Group std/bun, third-party, then local. Use named imports; avoid default exports for libs. 18- Naming: camelCase for vars/functions, PascalCase for types/classes, UPPER_SNAKE for env constants. 19- Errors: Throw Error (or subclasses) with actionable messages; never swallow. Use Result-like returns only if established. 20- Async: Prefer async/await. Always handle rejections. Avoid top-level await outside Bun entrypoints. 21- Logging: Use console.* sparingly; no secrets in logs. Prefer structured messages. 22- Env/config: Read via process.env or Bun.env at startup; validate and fail fast. 23- Files: Prefer Bun.file and Response over fs. Avoid sync IO. 24- Tests: bun:test (import { test, expect } from "bun:test"). Keep tests deterministic, no network without mocking. 25 26Repo Notes 27- No Cursor/Copilot rules detected. 28- Add ".crush" dir to .gitignore (keeps agent scratch files untracked).