████████╗ █████╗ ██╗ ██████╗ ██╗ ██╗██╗
╚══██╔══╝██╔══██╗██║ ██╔═══██╗██║ ██║██║
██║ ███████║██║ ██║ ██║██║ ██║██║
██║ ██╔══██║██║ ██║ ██║╚██╗ ██╔╝██║
██║ ██║ ██║███████╗╚██████╔╝ ╚████╔╝██║
╚═╝ ╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝
Open source AI framework for small businesses and developers with limited resources.
AI is changing what's possible for businesses — but most of that change is happening at companies with large engineering teams and large budgets.
Talovi is for everyone else. The corner shop owner who wants to reply to reviews without spending an hour writing. The independent pharmacist who needs a smarter patient intake form. The solo real estate agent trying to draft a better listing. The first-generation developer building their first real product with tools they actually have access to.
We believe AI should be a level playing field. Talovi is how we build toward that.
- Model-agnostic — works with Claude, Gemini, Grok, OpenAI (ChatGPT), and Ollama out of the box
- Multi-agent routing — built-in agents for Healthcare, Legal, Real Estate, Retail, and General business tasks
- Three model tiers —
lite,standard, andprolet you match cost to complexity across any provider - Bring your own key — zero vendor lock-in, no proprietary cloud, no middleman
- One-line provider switching — change a single config value to move between Claude, Gemini, OpenAI, Grok, or local Ollama
- Multilingual widget — embed.js supports English, Spanish, French, Portuguese, and Chinese with auto-detection and a user-facing language switcher
- Open source, MIT licensed — free to use, fork, and build on forever
npm install talovi
export ANTHROPIC_API_KEY=sk-ant-... # or GEMINI_API_KEY, GROK_API_KEY, OPENAI_API_KEY — your callimport { AgentRouter } from 'talovi';
const router = new AgentRouter();
const { domain, response } = await router.route(
'What should I include in a standard freelance contract?'
);
console.log(`[${domain}]`, response);
// [legal] A standard freelance contract should include...That's it. Talovi reads your message, picks the right agent, and returns a response. No configuration required to get started. Full docs →
Switch providers by changing one line in config/talovi.config.js.
Your agent code stays exactly the same.
| Provider | lite |
standard |
pro |
Key required |
|---|---|---|---|---|
| Claude (default) | Haiku | Sonnet | Opus | ANTHROPIC_API_KEY |
| Gemini | Flash 8B | Flash | Pro | GEMINI_API_KEY |
| Grok | Grok-3-fast | Grok-3 | Grok-3-heavy | GROK_API_KEY |
| OpenAI | GPT-4o mini | GPT-4o | o3 | OPENAI_API_KEY |
| Ollama | Llama3:8b | Llama3 | Llama3:70b | (none — runs locally) |
// config/talovi.config.js — this one line is all it takes
export const provider = 'openai'; // 'claude' | 'gemini' | 'grok' | 'openai' | 'ollama'Talovi supports 5 languages out of the box:
- 🇺🇸 English (
en) — default - 🇪🇸 Spanish (
es) - 🇫🇷 French (
fr) - 🇧🇷 Portuguese (
pt) - 🇨🇳 Chinese Simplified (
zh)
Set the language via the embed script tag:
<script src="embed.js"
data-key="..."
data-domain="general"
data-lang="es">
</script>Or pass it when initializing via npm:
const talovi = new Talovi({ lang: 'es' });Talovi also auto-detects the visitor's browser language and falls back to English if the language is not supported. A language switcher is built into the widget so end users can change languages themselves.
Every agent comes with a carefully written system prompt, sensible defaults, and clear boundaries about what it will and won't do.
| Agent | Who it serves | Default tier |
|---|---|---|
HealthcareAgent |
Clinics, community health, patient communications | standard |
LegalAgent |
Small businesses, nonprofits, individuals without legal counsel | standard |
RealEstateAgent |
Independent agents, small brokerages, first-time buyers | standard |
RetailAgent |
Shops, boutiques, independent e-commerce stores | lite |
GeneralAgent |
Any small business task that doesn't fit a specific domain | lite |
Use an agent directly or let AgentRouter pick the right one automatically:
import { HealthcareAgent, AgentRouter } from 'talovi';
// Direct
const agent = new HealthcareAgent();
const reply = await agent.run('What should I include in a patient intake form?');
// Auto-routed
const router = new AgentRouter();
const { domain, response } = await router.route('How do I handle a lease renewal?');config/talovi.config.js is the single place to tune Talovi for your project:
// Which AI backend to use — one line to rule them all
export const provider = 'claude';
// API keys for each provider (pulled from environment variables)
export const providers = {
claude: { apiKey: process.env.ANTHROPIC_API_KEY },
gemini: { apiKey: process.env.GEMINI_API_KEY },
grok: { apiKey: process.env.GROK_API_KEY },
ollama: { baseUrl: process.env.OLLAMA_BASE_URL ?? 'http://localhost:11434' },
};
// Per-domain model tier defaults — override per-call with { tier: 'pro' }
export const domainDefaults = {
healthcare: 'standard',
legal: 'standard',
realestate: 'standard',
retail: 'lite',
general: 'lite',
};Talovi grows through contributions from people who care about the communities it serves. Adding a new agent or provider is straightforward — we've written step-by-step guides for both.
Read CONTRIBUTING.md to get started.
PR titles follow the feat: add [name] convention (e.g. feat: add nonprofit agent,
feat: add mistral provider). New agent and provider issue templates are ready to go
in .github/ISSUE_TEMPLATE/.
If you work in healthcare, law, real estate, or retail and want to help make the agent prompts more accurate for real-world use — that's one of the most valuable things you can do for this project.
Talovi was built using Claude — Anthropic's AI assistant — as the primary development tool. We think that's worth saying plainly: an open source framework designed to make AI more accessible was itself built with AI.
Talovi is an independent open source project and is not affiliated with Anthropic.
Built and maintained by ITLasso — technology services for small businesses in Canton, Ohio and beyond.
We build tools like Talovi because we work with small businesses every day and see first-hand what a difference the right technology makes. If you're a small business owner looking for hands-on help, we'd love to hear from you.
MIT — free to use, modify, and distribute. No strings attached.