@tryhamster/gerbil 1.0.0-rc.0 → 1.0.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -14
- package/dist/auto-update-S9s5-g0C.mjs +3 -0
- package/dist/browser/index.d.ts +1009 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +2492 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/{chrome-backend-C5Un08O4.mjs → chrome-backend-CORwaIyC.mjs} +514 -73
- package/dist/chrome-backend-CORwaIyC.mjs.map +1 -0
- package/dist/{chrome-backend-CtwPENIW.mjs → chrome-backend-DIKYoWj-.mjs} +1 -1
- package/dist/cli.mjs +3359 -647
- package/dist/cli.mjs.map +1 -1
- package/dist/frameworks/express.d.mts +1 -1
- package/dist/frameworks/express.mjs +3 -4
- package/dist/frameworks/express.mjs.map +1 -1
- package/dist/frameworks/fastify.d.mts +1 -1
- package/dist/frameworks/fastify.mjs +2 -3
- package/dist/frameworks/fastify.mjs.map +1 -1
- package/dist/frameworks/hono.d.mts +1 -1
- package/dist/frameworks/hono.mjs +2 -3
- package/dist/frameworks/hono.mjs.map +1 -1
- package/dist/frameworks/next.d.mts +2 -2
- package/dist/frameworks/next.mjs +2 -3
- package/dist/frameworks/next.mjs.map +1 -1
- package/dist/frameworks/react.d.mts +1 -1
- package/dist/frameworks/trpc.d.mts +1 -1
- package/dist/frameworks/trpc.mjs +2 -3
- package/dist/frameworks/trpc.mjs.map +1 -1
- package/dist/gerbil-DJGqq7BX.mjs +4 -0
- package/dist/gerbil-DoDGHe6Z.mjs +1631 -0
- package/dist/gerbil-DoDGHe6Z.mjs.map +1 -0
- package/dist/gerbil-qOTe1nl2.d.mts +431 -0
- package/dist/gerbil-qOTe1nl2.d.mts.map +1 -0
- package/dist/index.d.mts +411 -9
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +7 -6
- package/dist/index.mjs.map +1 -1
- package/dist/integrations/ai-sdk.d.mts +122 -4
- package/dist/integrations/ai-sdk.d.mts.map +1 -1
- package/dist/integrations/ai-sdk.mjs +238 -11
- package/dist/integrations/ai-sdk.mjs.map +1 -1
- package/dist/integrations/langchain.d.mts +132 -2
- package/dist/integrations/langchain.d.mts.map +1 -1
- package/dist/integrations/langchain.mjs +175 -8
- package/dist/integrations/langchain.mjs.map +1 -1
- package/dist/integrations/llamaindex.d.mts +1 -1
- package/dist/integrations/llamaindex.mjs +2 -3
- package/dist/integrations/llamaindex.mjs.map +1 -1
- package/dist/integrations/mcp-client.mjs +4 -4
- package/dist/integrations/mcp-client.mjs.map +1 -1
- package/dist/integrations/mcp.d.mts +2 -2
- package/dist/integrations/mcp.d.mts.map +1 -1
- package/dist/integrations/mcp.mjs +5 -6
- package/dist/kokoro-BNTb6egA.mjs +20210 -0
- package/dist/kokoro-BNTb6egA.mjs.map +1 -0
- package/dist/kokoro-CMOGDSgT.js +20212 -0
- package/dist/kokoro-CMOGDSgT.js.map +1 -0
- package/dist/{mcp-R8kRLIKb.mjs → mcp-kzDDWIoS.mjs} +10 -37
- package/dist/mcp-kzDDWIoS.mjs.map +1 -0
- package/dist/microphone-DaMZFRuR.mjs +3 -0
- package/dist/{one-liner-BUQR0nqq.mjs → one-liner-DxnNs_JK.mjs} +2 -2
- package/dist/{one-liner-BUQR0nqq.mjs.map → one-liner-DxnNs_JK.mjs.map} +1 -1
- package/dist/repl-DGUw4fCc.mjs +9 -0
- package/dist/skills/index.d.mts +305 -14
- package/dist/skills/index.d.mts.map +1 -1
- package/dist/skills/index.mjs +5 -6
- package/dist/skills-DulrOPeP.mjs +1435 -0
- package/dist/skills-DulrOPeP.mjs.map +1 -0
- package/dist/stt-1WIefHwc.mjs +3 -0
- package/dist/stt-CG_7KB_0.mjs +434 -0
- package/dist/stt-CG_7KB_0.mjs.map +1 -0
- package/dist/stt-Dne6SENv.js +434 -0
- package/dist/stt-Dne6SENv.js.map +1 -0
- package/dist/{tools-BsiEE6f2.mjs → tools-Bi1P7Xoy.mjs} +6 -7
- package/dist/{tools-BsiEE6f2.mjs.map → tools-Bi1P7Xoy.mjs.map} +1 -1
- package/dist/transformers.web-DiD1gTwk.js +44695 -0
- package/dist/transformers.web-DiD1gTwk.js.map +1 -0
- package/dist/transformers.web-u34VxRFM.js +3 -0
- package/dist/tts-B1pZMlDv.mjs +3 -0
- package/dist/tts-C2FzKuSx.js +725 -0
- package/dist/tts-C2FzKuSx.js.map +1 -0
- package/dist/tts-CyHhcLtN.mjs +731 -0
- package/dist/tts-CyHhcLtN.mjs.map +1 -0
- package/dist/types-CiTc7ez3.d.mts +353 -0
- package/dist/types-CiTc7ez3.d.mts.map +1 -0
- package/dist/{utils-7vXqtq2Q.mjs → utils-CZBZ8dgR.mjs} +1 -1
- package/dist/{utils-7vXqtq2Q.mjs.map → utils-CZBZ8dgR.mjs.map} +1 -1
- package/docs/ai-sdk.md +137 -21
- package/docs/browser.md +241 -2
- package/docs/memory.md +72 -0
- package/docs/stt.md +494 -0
- package/docs/tts.md +569 -0
- package/docs/vision.md +396 -0
- package/package.json +21 -22
- package/dist/auto-update-BbNHbSU1.mjs +0 -3
- package/dist/browser/index.d.mts +0 -262
- package/dist/browser/index.d.mts.map +0 -1
- package/dist/browser/index.mjs +0 -755
- package/dist/browser/index.mjs.map +0 -1
- package/dist/chrome-backend-C5Un08O4.mjs.map +0 -1
- package/dist/gerbil-BfnsFWRE.mjs +0 -644
- package/dist/gerbil-BfnsFWRE.mjs.map +0 -1
- package/dist/gerbil-BjW-z7Fq.mjs +0 -5
- package/dist/gerbil-DZ1k3ChC.d.mts +0 -138
- package/dist/gerbil-DZ1k3ChC.d.mts.map +0 -1
- package/dist/mcp-R8kRLIKb.mjs.map +0 -1
- package/dist/models-DKULvhOr.mjs +0 -136
- package/dist/models-DKULvhOr.mjs.map +0 -1
- package/dist/models-De2-_GmQ.d.mts +0 -22
- package/dist/models-De2-_GmQ.d.mts.map +0 -1
- package/dist/skills-D3CEpgDc.mjs +0 -630
- package/dist/skills-D3CEpgDc.mjs.map +0 -1
- package/dist/types-BS1N92Jt.d.mts +0 -183
- package/dist/types-BS1N92Jt.d.mts.map +0 -1
- /package/dist/{chunk-Ct1HF2bE.mjs → chunk-CkXuGtQK.mjs} +0 -0
package/README.md
CHANGED
|
@@ -5,15 +5,15 @@
|
|
|
5
5
|
<h1 align="center">Gerbil</h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<strong>Local
|
|
8
|
+
<strong>Local AI inference for Node.js. LLM, TTS, STT. GPU-accelerated. Zero config.</strong>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
12
|
<a href="#install">Install</a> •
|
|
13
13
|
<a href="#quick-start">Quick Start</a> •
|
|
14
|
-
<a href="#
|
|
14
|
+
<a href="#text-to-speech">TTS</a> •
|
|
15
|
+
<a href="#speech-to-text">STT</a> •
|
|
15
16
|
<a href="./docs/ai-sdk.md">AI SDK</a> •
|
|
16
|
-
<a href="./docs/frameworks.md">Frameworks</a> •
|
|
17
17
|
<a href="./docs/cli.md">CLI</a>
|
|
18
18
|
</p>
|
|
19
19
|
|
|
@@ -45,6 +45,7 @@ const text = await gerbil("Explain recursion in one sentence");
|
|
|
45
45
|
- **Zero Config** — `npx @tryhamster/gerbil "your prompt"` just works
|
|
46
46
|
- **Local & Private** — No API keys, no data leaves your machine
|
|
47
47
|
- **GPU Accelerated** — WebGPU with CPU fallback
|
|
48
|
+
- **Complete Audio** — Text-to-Speech (Kokoro) & Speech-to-Text (Whisper)
|
|
48
49
|
- **Framework Ready** — AI SDK v5, Next.js, Express, LangChain
|
|
49
50
|
- **Skills System** — Built-in + custom skills with Zod validation
|
|
50
51
|
- **Tool Calling** — Agentic capabilities with Qwen3 models
|
|
@@ -92,6 +93,55 @@ const data = await g.json("Extract: John, 32, NYC", {
|
|
|
92
93
|
});
|
|
93
94
|
```
|
|
94
95
|
|
|
96
|
+
## Text-to-Speech
|
|
97
|
+
|
|
98
|
+
Generate natural speech locally using Kokoro TTS (28 voices):
|
|
99
|
+
|
|
100
|
+
```typescript
|
|
101
|
+
const result = await g.speak("Hello, I'm Gerbil!", { voice: "af_heart" });
|
|
102
|
+
// result.audio = Float32Array, result.sampleRate = 24000
|
|
103
|
+
|
|
104
|
+
// Stream long text
|
|
105
|
+
for await (const chunk of g.speakStream("Long paragraph...")) {
|
|
106
|
+
// Play each chunk as it's generated
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# CLI
|
|
112
|
+
gerbil speak "Hello world" --voice bf_emma
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
📖 **[Full TTS Documentation →](./docs/tts.md)**
|
|
116
|
+
|
|
117
|
+
## Speech-to-Text
|
|
118
|
+
|
|
119
|
+
Transcribe audio locally using Whisper (7 models, 80+ languages):
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
import { readFileSync } from "fs";
|
|
123
|
+
|
|
124
|
+
const audio = new Uint8Array(readFileSync("recording.wav"));
|
|
125
|
+
const result = await g.transcribe(audio);
|
|
126
|
+
console.log(result.text);
|
|
127
|
+
|
|
128
|
+
// With timestamps
|
|
129
|
+
const result = await g.transcribe(audio, { timestamps: true });
|
|
130
|
+
for (const seg of result.segments) {
|
|
131
|
+
console.log(`[${seg.start}s] ${seg.text}`);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Record from microphone
|
|
135
|
+
const result = await g.listen(5000); // 5 seconds
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# CLI
|
|
140
|
+
gerbil transcribe audio.wav --timestamps
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
📖 **[Full STT Documentation →](./docs/stt.md)**
|
|
144
|
+
|
|
95
145
|
## Skills
|
|
96
146
|
|
|
97
147
|
Built-in AI skills with Zod-validated inputs:
|
|
@@ -169,6 +219,8 @@ gerbil "Write a haiku" # Generate text
|
|
|
169
219
|
gerbil commit # Commit message from staged changes
|
|
170
220
|
gerbil summarize README.md # Summarize file
|
|
171
221
|
gerbil chat --thinking # Interactive chat
|
|
222
|
+
gerbil speak "Hello world" --voice af_heart # Text-to-speech
|
|
223
|
+
gerbil transcribe audio.wav # Speech-to-text
|
|
172
224
|
gerbil serve --mcp # MCP server for Claude/Cursor
|
|
173
225
|
gerbil update # Update to latest version
|
|
174
226
|
```
|
|
@@ -204,17 +256,19 @@ function Chat() {
|
|
|
204
256
|
|
|
205
257
|
| Integration | Import | Docs |
|
|
206
258
|
|-------------|--------|------|
|
|
207
|
-
| **Browser** | `@tryhamster/gerbil/browser` | [📖 Browser
|
|
208
|
-
| **AI SDK v5** | `@tryhamster/gerbil/ai` | [📖 AI SDK
|
|
259
|
+
| **Browser** | `@tryhamster/gerbil/browser` | [📖 Browser](./docs/browser.md) |
|
|
260
|
+
| **AI SDK v5** | `@tryhamster/gerbil/ai` | [📖 AI SDK](./docs/ai-sdk.md) |
|
|
209
261
|
| **Next.js** | `@tryhamster/gerbil/next` | [📖 Frameworks](./docs/frameworks.md) |
|
|
210
262
|
| **Express** | `@tryhamster/gerbil/express` | [📖 Frameworks](./docs/frameworks.md) |
|
|
211
|
-
| **React** | `@tryhamster/gerbil/react` | [📖 Frameworks](./docs/frameworks.md) |
|
|
212
263
|
| **LangChain** | `@tryhamster/gerbil/langchain` | [📖 Frameworks](./docs/frameworks.md) |
|
|
213
|
-
| **MCP Server** | `npx @tryhamster/gerbil serve --mcp` | [📖 MCP
|
|
214
|
-
|
|
264
|
+
| **MCP Server** | `npx @tryhamster/gerbil serve --mcp` | [📖 MCP](./docs/mcp.md) |
|
|
265
|
+
|
|
266
|
+
**Audio capabilities:** TTS and STT are built into the core `Gerbil` class, `@tryhamster/gerbil/browser` hooks, and `@tryhamster/gerbil/ai` provider.
|
|
215
267
|
|
|
216
268
|
## Models
|
|
217
269
|
|
|
270
|
+
### Language Models
|
|
271
|
+
|
|
218
272
|
| Model | Size | Best For |
|
|
219
273
|
|-------|------|----------|
|
|
220
274
|
| `qwen3-0.6b` | ~400MB | General use, reasoning (thinking mode) |
|
|
@@ -223,18 +277,29 @@ function Chat() {
|
|
|
223
277
|
|
|
224
278
|
Use any HuggingFace model: `npx @tryhamster/gerbil -m hf:org/model "prompt"`
|
|
225
279
|
|
|
280
|
+
### Audio Models
|
|
281
|
+
|
|
282
|
+
| Model | Type | Size | Notes |
|
|
283
|
+
|-------|------|------|-------|
|
|
284
|
+
| `kokoro-82m` | TTS | ~330MB | 28 voices, English |
|
|
285
|
+
| `whisper-tiny.en` | STT | 39MB | English, fastest |
|
|
286
|
+
| `whisper-base.en` | STT | 74MB | English, balanced |
|
|
287
|
+
| `whisper-small` | STT | 244MB | 80+ languages |
|
|
288
|
+
|
|
226
289
|
## Documentation
|
|
227
290
|
|
|
228
291
|
| Guide | Description |
|
|
229
292
|
|-------|-------------|
|
|
230
|
-
| [📖
|
|
231
|
-
| [📖
|
|
232
|
-
| [📖
|
|
293
|
+
| [📖 Text-to-Speech](./docs/tts.md) | Kokoro TTS, 28 voices, streaming audio |
|
|
294
|
+
| [📖 Speech-to-Text](./docs/stt.md) | Whisper STT, transcription, voice input |
|
|
295
|
+
| [📖 Browser](./docs/browser.md) | WebGPU inference, React hooks |
|
|
296
|
+
| [📖 Skills](./docs/skills.md) | Built-in skills, custom skill development |
|
|
297
|
+
| [📖 Tools](./docs/tools.md) | Tool calling, agentic workflows |
|
|
233
298
|
| [📖 REPL](./docs/repl.md) | Interactive terminal dashboard |
|
|
234
|
-
| [📖 AI SDK](./docs/ai-sdk.md) | Vercel AI SDK v5
|
|
235
|
-
| [📖 Frameworks](./docs/frameworks.md) | Next.js, Express, React,
|
|
299
|
+
| [📖 AI SDK](./docs/ai-sdk.md) | Vercel AI SDK v5 (LLM, TTS, STT) |
|
|
300
|
+
| [📖 Frameworks](./docs/frameworks.md) | Next.js, Express, React, LangChain |
|
|
236
301
|
| [📖 CLI](./docs/cli.md) | All CLI commands and options |
|
|
237
|
-
| [📖 MCP Server](./docs/mcp.md) | MCP server
|
|
302
|
+
| [📖 MCP Server](./docs/mcp.md) | MCP server for Claude Desktop & Cursor |
|
|
238
303
|
| [📖 MCP Client](./docs/mcp-client.md) | Connect to external MCP servers |
|
|
239
304
|
|
|
240
305
|
## Requirements
|