Skip to content

dustinbroussard/VivicaAndroid

Repository files navigation

Vivica: Your Local AI Chat Companion

Deploy to GitHub Pages Live Site

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.

Features

  • 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.
  • 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 topic in chat to fetch real-time results via Brave Search.
    • Vivica summarizes, analyzes, or jokes about search results in her own style.
  • 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.

Quick Start

  1. Clone or download the repo.
  2. npm install
  3. npm run dev (or npm run build for production)
  4. Open in your browser. Vivica is ready!

Development

  • Lint: npm run lint
  • Type check: npx tsc --noEmit
  • Build: npm run build

RSS Proxy Configuration

  • Development (npm run dev): the Vite dev server exposes /api/rss-proxy and the app uses it automatically.
  • Production: set VITE_RSS_PROXY_URL to your own proxy endpoint.
  • VITE_RSS_PROXY_URL supports 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)
  • 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.

Usage Notes

  • 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.

Data Storage

  • 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.

Credits & License

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

VivicaAndroid

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors