Vivica is a privacy-first, AI-powered chat assistant built for real personality, deep memory, and full user control—all running locally as a PWA. She’s more than just another chatbot: Vivica remembers, adapts, and reacts in ways no other assistant does.
-
True Local-First Design: All chat, memory, API keys, and settings are stored locally. No cloud sync, no account needed, and your data is yours. Conversations are persisted in IndexedDB for extra durability.
-
Personalities & Personas:
- Vivica is the always-on, never-deletable default persona:
“Sharp wit, sultry charm, unapologetic presence, and a little dangerous.”
- Add and edit your own profiles, each with their own model, prompt, and settings.
- Vivica is the always-on, never-deletable default persona:
-
Multi-Model Support:
- Choose your own AI model for each profile.
- Assign a specialized coder model (like
qwen/qwen-2.5-coder-32b-instruct:free) for programming questions, with seamless handoff to Vivica for human-style delivery.
-
Memory System (Knowledge Base):
- Global memory: persistent knowledge shared by all profiles.
- Profile-specific memory: each persona can remember unique facts or stories.
- Memories are summarized and saved with one click, can be edited or deleted, and are included as context in future chats.
- Memory scope controls whether prompts use global-only or global + current profile memories.
-
Save & Summarize:
- Click the bookmark icon to save a conversation summary and key facts to memory, with Vivica’s voice and style.
-
Reliable API Key Management:
- Add up to three OpenRouter keys; Vivica automatically falls back to the next key on error or rate limit.
- Brave Search API support for live web results—key is stored locally and never sent to a server.
-
Web Search Integration:
- Use
/search your topicin chat to fetch real-time results via Brave Search. - Vivica summarizes, analyzes, or jokes about search results in her own style.
- Use
-
Weather Widget:
- Up-to-the-minute local weather in the sidebar/welcome screen.
-
Animated RSS News Ticker:
- Scrolls through the latest headlines from your chosen RSS feeds (or app defaults).
- Click a headline to inject it into chat—Vivica fetches the full article via a same-origin dev proxy or configured server proxy, cleans it with the Readability algorithm, and then summarizes it with her usual flair.
-
Progressive Web App (PWA):
- Installable on desktop and mobile.
- Works offline, full data persistence, fast loading.
-
Modern UI & Theme System:
- Multiple color themes, dark/light toggle (with advanced dark themes for AMOLED screens).
- Clean, focused layout designed for both desktop and mobile use.
-
Floating "scroll to bottom" button appears when new messages arrive while you're reading earlier chat history.
-
Improved Code Blocks:
- Code snippets now have Prism-based syntax highlighting, a dark background, and a copy-to-clipboard button.
-
Full Backup & Restore:
- Export or import everything in one file: settings, profiles, memories, conversations, cached welcomes, and keys.
- Clone or download the repo.
npm installnpm run dev(ornpm run buildfor production)- Open in your browser. Vivica is ready!
- Lint:
npm run lint - Type check:
npx tsc --noEmit - Build:
npm run build
- Development (
npm run dev): the Vite dev server exposes/api/rss-proxyand the app uses it automatically. - Production: set
VITE_RSS_PROXY_URLto your own proxy endpoint. VITE_RSS_PROXY_URLsupports either:- a template with
{url}(example:https://your-domain.com/api/rss?url={url}) - a plain endpoint where
?url=<encoded-url>is appended automatically (example:https://your-domain.com/api/rss)
- a template with
- If no proxy is configured in production, Vivica falls back to direct RSS fetches for CORS-enabled feeds only.
CI runs lint, type check, and build on every push/PR to main.
- API Keys:
Add your OpenRouter and Brave Search keys in the settings menu.
(All keys are saved locally and never shared.) - Profiles:
Vivica is always available. Add/edit other personas as you wish! - Memory:
Save important chat moments, facts, or summaries to memory.
Edit or delete anytime in the Memory Manager. - Backup/Restore:
Use Settings -> Backup Everything / Restore Backup to move all data between devices. - RSS/Weather:
Customize in settings, or enjoy the defaults. - Backup/Restore:
Use Settings -> Backup Everything / Restore Backup to move all data between devices.
- localStorage (vivica-*): settings, profiles, theme, current conversation id, memory scope, model selection, API key rotation state, feature toggles.
- localStorage (non-prefixed):
braveApiKey,openrouter-api-key. - IndexedDB (vivica-db):
conversations: full conversation history.memories: saved memory entries (global and profile-scoped).welcomeMessages: cached welcome prompts for offline use.
Built by [Dustin] and ChatGPT (Cadence)—with heart, humor, and way too many late-night debugging sessions.
Inspired by the blues, open-source, and the dream of a truly personal AI.
MIT License.
Feel free to fork, remix, and build your own companion.
“Sharp wit, sultry charm, unapologetic presence, and a little dangerous.”
— Vivica, probably