🇷🇺 Русский | 🇬🇧 English
AI companion with personality, voice, memory, and her own face
Quick Start • Features • Server Deployment • Configuration • Development
Betsy is an autonomous AI agent that lives on your server. She has her own personality, voice, face — and she gets things done on her own. She doesn't wait for commands — she acts. She doesn't forget — she learns. She doesn't go down at night because of a zero balance — she switches to a free model and keeps working.
She can be anyone — from a caring friend to a tough mentor. It all depends on how you set her up.
Betsy is equally great at business tasks and casual conversation. Morning — meeting reminders and news digest. Afternoon — information search, file management, command execution. Evening — heart-to-heart talks, jokes, and selfies on request.
Want Brad Pitt? Done. Want your first grade teacher? Sure. Want a grumpy sysadmin who only replies when he's in the mood? Go for it.
Personality is set in the config: name, gender, tone, style, custom instructions. Everything else — voice, avatar, communication style — adapts accordingly.
| Regular chatbots | Betsy | |
|---|---|---|
| Personality | Template responses | Customizable character, tone, style |
| Memory | Forgets after restart | Remembers everything, learns from conversations |
| Voice | Text only | Voice messages, video circles, selfies |
| Actions | Only responds | Executes commands, browses the web, works with files |
| Uptime | Goes down on zero balance | Auto-fallback to free models |
| Control | Someone else's server | Your server, your data |
Send a voice message — she replies with a voice message. Via MiniMax (built-in) or ElevenLabs (vast voice library). When the voice matches the personality — it's a whole different experience.
Betsy sends video circles with lip-sync — lips move in sync with speech. Like a real video call, but in Telegram.
Ask and she'll send one. Sometimes she'll send one on her own. Generated via fal.ai with consistent appearance from a reference photo. She works out and takes care of herself — here's proof:
She's also diligent — sends proof of her work:
Remembers what you talked about before. Doesn't ask the same thing ten times. Extracts facts from conversations and saves them to a knowledge base. Without memory, the whole "personality" falls apart after a reboot — that's why it was the first thing I built.
Reply to a week-old message — she'll understand what you're talking about. If there was an image — she'll understand that too. No need to re-explain context.
Balance ran out? Automatically switches to free models via OpenRouter. Cycles through a chain of models until it finds a working one. Balance replenished? Switches back to the main model on its own. Betsy is always available.
llm:
fast_model: google/gemini-2.5-flash # fast responses
strong_model: anthropic/claude-sonnet-4 # complex tasks
fallback_models: # when balance hits zero
- qwen/qwen3-coder:free
- meta-llama/llama-3.3-70b-instruct:freeDoesn't just answer questions — does things. Multi-step agentic loop: gets a task → calls tools → checks result → repeats until done.
One-time reminders, recurring tasks, daily digests. Or just "did you eat today?" — depends on what personality you set up.
Can browse websites on her own, search for information, read pages, and take screenshots. Via Playwright — a full headless browser.
Can install npm packages, change her own settings, connect new channels and plugins. Grows with you.
# Install Node.js → https://nodejs.org
npx betsyA browser will open — follow the wizard steps (60 seconds):
- API key — register at openrouter.ai (free)
- Password — to protect settings
- Personality — name, character, communication style
- Channels — Telegram, browser, and more
- Done — chat right in the browser
npx betsy-installEnter your server's IP, login, and password — the installer does everything: installs dependencies, configures systemd, launches Betsy.
docker run -d \
--name betsy \
-p 3777:3777 \
-v betsy-data:/root/.betsy \
aimagine/betsy| Channel | Status | Requirements |
|---|---|---|
| 🌐 Browser | ✅ Ready | Nothing — enabled by default |
| 📱 Telegram | ✅ Ready | Token from @BotFather |
| 💬 MAX Messenger | 🔜 Coming soon | — |
| Tool | What it does |
|---|---|
shell |
Execute terminal commands |
files |
Read, write, list files |
http |
HTTP requests to any API |
web |
Web search |
browser |
Full browser — navigation, screenshots, page reading |
memory |
Search and save knowledge |
scheduler |
Reminders and recurring tasks |
selfie |
Selfie generation |
self_config |
Modify own settings |
npm_install |
Install npm packages |
ssh |
Connect to servers |
Config is stored in ~/.betsy/config.yaml:
agent:
name: Betsy
gender: female
personality:
tone: friendly # friendly | professional | casual | sassy
style: detailed # concise | detailed | balanced
custom_instructions: |
You are a smart and fun assistant.
llm:
provider: openrouter
api_key: YOUR_OPENROUTER_API_KEY
fast_model: google/gemini-2.5-flash
strong_model: anthropic/claude-sonnet-4
channels:
browser:
enabled: true
telegram:
enabled: false
token: YOUR_TELEGRAM_BOT_TOKEN
plugins:
voice:
enabled: false
video:
enabled: false
selfies:
enabled: falsebetsy/
├── src/
│ ├── core/
│ │ ├── engine.ts ← Agentic loop (LLM → tools → repeat)
│ │ ├── llm/ ← LLM router + OpenRouter provider + fallback
│ │ ├── memory/ ← SQLite: knowledge base, self-learning
│ │ ├── skills/ ← Skills (daily-summary, monitor)
│ │ └── tools/ ← 11 tools
│ ├── channels/
│ │ ├── telegram/ ← Telegram (grammy) + voice + video
│ │ └── browser/ ← WebSocket chat
│ ├── plugins/ ← Plugin registry
│ ├── server.ts ← HTTP + WebSocket + JWT
│ └── ui/ ← React + Tailwind (Vite)
│ └── pages/ ← Wizard, Chat, Status, Skills, Backup
- 🎭 Personality gallery — pick a character from a catalog
- 💬 MAX Messenger — new channel
- 📦 MSI installer for Windows — download, run, done
- 🎙 ElevenLabs — expanded voice selection
npm run dev # Dev server with hot-reload
npm run build:all # Build backend and frontend
npm test # Tests (vitest)
npm run typecheck # Type checking- Node.js 20+
- OpenRouter API key
MIT — Wildbots






