domaingenie
v2.0.0
Published
In-browser domain name generator built on Chrome's Prompt API (Gemini Nano)
Readme
genie2
Brainstorm domain names in the browser with Chrome's built-in Prompt API (Gemini Nano). No server, no API key.
Requirements
Chrome with the Prompt API enabled (chrome://flags/#prompt-api-for-gemini-nano) and the on-device model downloaded (chrome://on-device-internals). In other browsers the status is not_available.
Install
bun install
bun run build # dist/index.js + dist/index.d.ts
bun testExample
import { DomainGenerator } from 'genie2';
const g = new DomainGenerator();
await g.init('Prefer short, brandable names.', {
tlds: ['com', 'io'],
onDownloadProgress: (f) => console.log(`${Math.round(f * 100)}%`),
});
for await (const { domain, rationale } of g.generateStream('a coffee subscription')) {
console.log(domain, '-', rationale);
}
const more = await g.more(5, 'shorter'); // Map<domain, rationale>, no repeatsAPI
| Member | Description |
| --- | --- |
| status() | not_available | uninitialized | initializing | processing | ready |
| init(systemInstructions?, config?) | Create the base model session. Config: temperature, topK, count (default 10), tlds, onDownloadProgress, onStatusChange, signal |
| generate(query) / generateStream(query) | Ideas for a description or a seed domain (acme.com). Fresh context per call |
| more(n?, refinement?) / moreStream(...) | More ideas continuing the last generate, skipping names already seen |
| cancel() | Abort the current generation; pending calls resolve with the partial result |
| destroy() | Release sessions |
Demo: bunx serve . and open /demo/ in Chrome.
License
MIT
