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!
- Report Issues: GitHub Issues
- Request Features: Feature Requests
- General Discussion: GitHub Discussions
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
- Choose option
4(Settings & Management) - Select
API Key Management - 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
- Initialize the database:
python src/main.py - Register a user and login via CLI prompts.
- 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.pyto 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_KEYto 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
reloadmethod inConfigManagerandUniversalLLMManager.
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
- Email: aistudentlearn4@gmail.com
- GitHub: @AIMLDev726
๐ Reporting Issues & Getting Help
How to Report a Bug
- Check Existing Issues: Browse current issues to see if it's already reported
- Create New Issue: Report a new bug
- Provide Details: Include the following information:
Bug Description A clear description of what went wrong
Steps to Reproduce
- Go to '...'
- Click on '...'
- 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
- GitHub Discussions: Ask questions and share ideas
- Documentation: Check our Contributing Guide
- Email: aistudentlearn4@gmail.com for private matters
๐ค 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
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afd7b396ae8232255c58f01fc027ee942cd6b6d8bb8f0a104501367cd911160b
|
|
| MD5 |
2b31612e024101441309b18ad87f52d3
|
|
| BLAKE2b-256 |
c3367e0d79efcba4ee87f0071316ac184643578a5dd62673d5597e7fbf200bca
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4660096e3b81c83148a68ab2f8fcfa984b808fc31d3be9751bc4bc9a523f3fd4
|
|
| MD5 |
31bc43d5e42a6fd62ff1e0761e307457
|
|
| BLAKE2b-256 |
f5ed6d06bb0b017a5848bf76e72a1b0a7794480fd28d31cef894ac9a80ac1686
|