Home-Made Tool Calling
llmist uses its own block format for tools—no JSON mode or native function calling required. Works with any model.
Home-Made Tool Calling
llmist uses its own block format for tools—no JSON mode or native function calling required. Works with any model.
Streaming Tool Execution
Gadgets execute the moment their block is parsed—not after the response completes. Real-time UX without buffering.
Multi-Provider Support
OpenAI, Anthropic, Gemini, and HuggingFace out of the box. Caching-aware, built-in cost calculation, multimodal support, and first-class reasoning model support.
Powerful Hook System
Three-layer architecture for observability, flow control, benchmarking, and deep app/UI integration.
npm install llmistimport { LLMist, Gadget, z } from 'llmist';
class FloppyDisk extends Gadget({ description: 'Calculates how many 1.44MB floppy disks are needed to store a file', schema: z.object({ filename: z.string(), megabytes: z.number().positive(), }),}) { execute(params: this['params']): string { const { filename, megabytes } = params; const disks = Math.ceil(megabytes / 1.44); return `${filename} requires ${disks} floppy disk${disks > 1 ? 's' : ''}. Please label them 1 of ${disks}, 2 of ${disks}...`; }}
const answer = await LLMist.createAgent() .withModel('sonnet') .withGadgets(FloppyDisk) .askAndCollect('How many floppies do I need for a 10MB file called DOOM.ZIP?');
console.log(answer); // "DOOM.ZIP requires 7 floppy disks..."llmist
Core library with agents, gadgets, and providers.
npm install llmist
@llmist/cli
Command-line interface for quick completions and agent runs.
npx llmist agent "Your prompt"
@llmist/testing
Testing utilities and mocks for unit testing your agents.
npm install -D @llmist/testing