Skip to main content

A warm, child-safe AI family chat experience in your terminal

Project description

FamilyCLI ๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ

A warm, child-safe AI family chat experience in your terminal

๐Ÿšง Beta Release Notice

Welcome to Family AI CLI v1.0.0! ๐ŸŽ‰

This is our initial beta release and we're thrilled to have you as part of our testing community! Your feedback and contributions are invaluable in making this the best family-friendly AI experience possible.

๐Ÿ› Found a bug or have suggestions? We'd love to hear from you!

Thank you for helping us improve Family AI CLI! ๐Ÿ™


About Family AI CLI

FamilyCLI brings AI-powered family members to life in your command line. Chat with loving personas like Grandma Rose, Uncle Joe, Dad Mike, and more - each with unique personalities, memories, and caring responses designed for children and families.

โœจ Features

  • ๐Ÿ  6 Unique Family Members - Each with distinct personalities and LLM providers
  • ๐Ÿ’ญ Conversation Memory - Personas remember and reference previous messages
  • ๐Ÿ›ก๏ธ Child-Safe Responses - Carefully engineered prompts for appropriate, caring interactions
  • ๐Ÿ” Secure API Storage - Encrypted API key management in ~/.familyai
  • ๐Ÿ”„ Multi-Provider Support - Groq, OpenAI, Anthropic, Cerebras, Google
  • ๐Ÿ“ฑ WhatsApp-like Interface - Familiar chat experience with recent conversations
  • ๐ŸŽจ Rich UI - Beautiful terminal interface with markdown support
  • โšก Retry & Fallback - Robust error handling and graceful degradation

๐Ÿš€ Quick Start

Installation

Option 1: Install from PyPI (Recommended)

pip install familycli

Option 2: Install from Source

# Clone the repository
git clone https://github.com/AIMLDev726/ai-family-cli.git
cd ai-family-cli

# Install in development mode
pip install -e .

First Run

# Start the Family AI CLI
familycli

# Or if installed from source
python -m src.main

Setup API Keys

  1. Choose option 4 (Settings & Management)
  2. Select API Key Management
  3. Add keys for your preferred providers (Groq recommended for speed)

๐Ÿ“‹ CLI Commands

# Main command
familycli                    # Start the family chat interface

# Alternative (if installed from source)
python -m src.main          # Direct module execution

Usage

  1. Initialize the database:
    python src/main.py
    
  2. Register a user and login via CLI prompts.
  3. Create personas, start chat sessions, and interact with AI family members.

Configuration Management

  • All configuration is managed via JSON files in the config/ directory and can be overridden by environment variables.
  • Use src/config/config_manager.py to load, get, and reload config at runtime.
  • Example:
    from src.config.config_manager import ConfigManager
    config = ConfigManager().load('llm_providers')
    value = ConfigManager().get('llm_providers', 'default_provider')
    ConfigManager().reload('llm_providers')
    
  • Environment variable override: set LLM_PROVIDERS_OPENAI_API_KEY to override OpenAI key in config.

Performance Optimization

  • Database uses connection pooling and batch commit for high throughput.
  • LLM responses are cached (LRU) and API usage is tracked for cost management.

Error Handling

  • All critical operations have robust error handling and failover logic.
  • LLM manager supports rate limit handling and provider failover.
  • Streaming and chat modules recover from deadlocks and interruptions.

Runtime Reload

  • You can reload configuration at runtime using the reload method in ConfigManager and UniversalLLMManager.

Project Structure

familycli/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ auth/
โ”‚   โ”œโ”€โ”€ personas/
โ”‚   โ”œโ”€โ”€ chat/
โ”‚   โ”œโ”€โ”€ llm/
โ”‚   โ”œโ”€โ”€ database/
โ”‚   โ”œโ”€โ”€ ui/
โ”‚   โ””โ”€โ”€ main.py
โ”œโ”€โ”€ config/
โ”‚   โ”œโ”€โ”€ llm_providers.json
โ”‚   โ”œโ”€โ”€ app_config.json
โ”‚   โ””โ”€โ”€ default_personas.json
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ README.md

Security

  • All sensitive data is encrypted at rest.
  • API keys are stored securely and never exposed in logs.

Testing

  • Run unit and integration tests with pytest:
    pytest
    

Extending

  • Add new LLM providers by implementing a subclass of BaseLLMProvider.
  • Add new UI features in src/ui/.

๐Ÿ‘จโ€๐Ÿ’ป Creator

Created by AIMLDev726

๐Ÿ› Reporting Issues & Getting Help

How to Report a Bug

  1. Check Existing Issues: Browse current issues to see if it's already reported
  2. Create New Issue: Report a new bug
  3. Provide Details: Include the following information:

Bug Description A clear description of what went wrong

Steps to Reproduce

  1. Go to '...'
  2. Click on '...'
  3. See error

Expected Behavior What you expected to happen

Environment

  • OS: [e.g., Windows 11, macOS 13, Ubuntu 22.04]
  • Python Version: [e.g., 3.11.5]
  • Family CLI Version: [e.g., 1.0.0]

Error Messages Any error messages or logs (check ~/.familyai/logs/familycli.log)

Screenshots If applicable, add screenshots to help explain the problem

Request a Feature

Have an idea to make Family AI CLI better? Request a feature and include:

  • Feature Description: What you'd like to see added
  • Use Case: How this would help families
  • Child Safety: How this maintains our family-friendly focus

Beta Testing Feedback

As a beta tester, your feedback is especially valuable! Please share:

  • What works well: Features you love and find useful
  • What's confusing: Areas that need better documentation or UX
  • Performance issues: Slow responses, crashes, or errors
  • Family experience: How your family interacts with the AI personas
  • Safety concerns: Any responses that seem inappropriate for children

Get Help

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guidelines for details on:

  • How to submit bug reports and feature requests
  • Development setup and coding standards
  • Pull request process
  • Code of conduct

Quick Contributing Steps

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the Mozilla Public License 2.0 (MPL-2.0).

See the LICENSE file for details.

What this means:

  • โœ… You can use this software for any purpose
  • โœ… You can modify and distribute the software
  • โœ… You can use it in proprietary software
  • โš ๏ธ If you modify MPL-licensed files, you must share those modifications
  • โš ๏ธ You must include the original license and copyright notices

๐Ÿ™ Acknowledgments

  • Built with โค๏ธ for families who want safe AI interactions
  • Powered by multiple LLM providers for the best experience
  • Inspired by the need for child-safe AI conversations

Family AI CLI - Bringing AI family members to life in your terminal! ๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

familycli-1.0.0.tar.gz (59.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

familycli-1.0.0-py3-none-any.whl (72.7 kB view details)

Uploaded Python 3

File details

Details for the file familycli-1.0.0.tar.gz.

File metadata

  • Download URL: familycli-1.0.0.tar.gz
  • Upload date:
  • Size: 59.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.0

File hashes

Hashes for familycli-1.0.0.tar.gz
Algorithm Hash digest
SHA256 afd7b396ae8232255c58f01fc027ee942cd6b6d8bb8f0a104501367cd911160b
MD5 2b31612e024101441309b18ad87f52d3
BLAKE2b-256 c3367e0d79efcba4ee87f0071316ac184643578a5dd62673d5597e7fbf200bca

See more details on using hashes here.

File details

Details for the file familycli-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: familycli-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 72.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.0

File hashes

Hashes for familycli-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4660096e3b81c83148a68ab2f8fcfa984b808fc31d3be9751bc4bc9a523f3fd4
MD5 31bc43d5e42a6fd62ff1e0761e307457
BLAKE2b-256 f5ed6d06bb0b017a5848bf76e72a1b0a7794480fd28d31cef894ac9a80ac1686

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page