trimchat
Trim chat history to a token budget without breaking it: keeps system prompts and tool call/result pairs. OpenAI, Anthropic and AI SDK messages.
npm i trimchat
Libraries, CLIs, lint rules, GitHub Actions and agent plugins. All MIT, all on GitHub; most are on npm.
11
Trim chat history to a token budget without breaking it: keeps system prompts and tool call/result pairs. OpenAI, Anthropic and AI SDK messages.
npm i trimchat
Trim LLM chat history to a token budget while keeping it valid to send to the API.
npm i msgtrim
Split streaming LLM output into sentences or Markdown blocks the moment each one is complete. For TTS, live translation and chunked rendering.
npm i streamcut
A streaming sentence splitter for LLM output: emits complete sentences and Markdown blocks as soon as they finish.
npm i sentstream
Convert LLM tool definitions between OpenAI, Anthropic, Gemini and MCP formats, with the schema fixes each one needs.
npm i toolshape
Repair broken, partial or Markdown-fenced JSON from LLM output and validate it against Zod or any Standard Schema.
npm i llm-json-mend
Estimate tokens and API cost for OpenAI, Anthropic Claude and Google Gemini models. Typed, with a CLI.
npm i llm-tally
Cache LLM API calls on disk or in memory, so tests and dev loops stop paying for repeat calls. Streams included.
npm i llm-memo
Record and replay LLM API calls in tests, like VCR but built for model APIs.
npm i -D llm-replay
A fake OpenAI- and Anthropic-compatible API with scripted replies, tool calls, errors and streaming, for testing agents without API keys.
npm i -D mock-llm-server
Flag prompt-injection attempts in tool results, web pages and files before an AI agent reads them.
npm i injection-scan
02
Lint prompt template files before they ship: unfilled {{variables}}, duplicate instructions, token budgets, broken JSON, unclosed tags. CLI, library and GitHub Action.
npm i -D lint-prompts
ESLint for your prompts: catches unclosed {{tags}}, misspelled variables, unbalanced
Not on a registry: see the README.
06
Validate environment variables and get a fully typed config object back, with helpful errors.
npm i envshape
See what’s missing between .env, .env.example and your GitHub Actions secrets, and sync them.
npx envgap
The shared core that fails the build or dev-server start when a variable from .env.example is missing or empty.
npm i -D @acus9345/env-parity
Vite plugin that fails your build when a variable from .env.example is missing or empty. Zero config.
npm i -D vite-plugin-env-parity
The same check for Webpack, Rspack, Rollup, Rolldown, Astro and Next.js builds.
npm i -D env-parity-plugin
ESLint rules that catch environment variables your code reads but .env.example doesn’t list.
npm i -D eslint-plugin-env-example
05
Find exports nobody imports in TypeScript and JavaScript projects, plus files nothing uses.
npx export-sweep
Changelog generator for Conventional Commits: groups commits, picks the next version, updates CHANGELOG.md and package.json.
npx changelog-zero
ESLint rules that catch the boolean trap: positional true/false arguments and boolean parameters that make call sites unreadable.
npm i -D eslint-plugin-boolean-trap
GitHub Action that finds TODO, FIXME and HACK comments older than N days with git blame, with a job summary and PR annotations.
uses: acus9345/stale-todo@v1
GitHub Action that comments on pull requests with a readable summary of lockfile changes: added, removed and upgraded packages, and install size.
uses: acus9345/lockfile-diff-action@v1
08
Plugins for DeepSeek Harness (dsh) and a skill for Claude Code.
Claude Code skill that hands mechanical steps to Haiku subagents and verifies their results.
/plugin install haiku-delegate --marketplace acus9345/haiku-delegate
Nine DeepSeek Harness guard plugins in one installable set: secret-leak blocking, a per-session cost cap, formatting after edits and more.
Not on a registry: see the README.
Blocks agent edits that weaken tests, such as .skip, deleted or watered-down assertions.
dsh plugin --profile web add dsh-protect-tests
Stops agents hand-editing lockfiles and generated code, and tells them how to regenerate instead.
dsh plugin --profile web add dsh-protect-generated-files
Loads the Cursor, Copilot, Windsurf and other AI rule files your repo already has.
dsh plugin --profile web add dsh-load-agent-rules
Stops agents using the wrong package manager (npm vs pnpm, pip vs uv) and gives them the right command.
dsh plugin --profile web add dsh-enforce-package-manager
Refuses edits where “// ... existing code ...” placeholders would delete real code.
dsh plugin --profile web add dsh-block-placeholder-edits
Stops agents running shell commands that wait for input or never exit.
dsh plugin --profile web add dsh-block-hanging-commands
05
JSON.stringify that never throws: circular references, BigInt, Map, Set, Error with cause, throwing getters and more.
npm i json-safe
Retry async functions with exponential backoff, jitter and AbortSignal support. Typed, ESM + CJS.
npm i retry-jitter
A tiny, fully typed event emitter with once, wildcards, AbortSignal, waitFor() and async iteration.
npm i strictemit
A tiny duration parser and formatter (“1h 30m” ↔ ms), with a CLI.
npm i @acus9345/tinydur
A tiny, dependency-free CSV to JSON converter with a CLI.
npx csv2json-mini data.csv
No tool matches that filter.