Self-Hosted AI Companion Platform
Project description
Familiar
Self-hosted AI agent with Signal-grade encryption
Quick Start
Install from PyPI
pip install familiar-agent[llm]
export ANTHROPIC_API_KEY="sk-ant-..." # or OPENAI_API_KEY
python -m familiar
Run from source
git clone https://github.com/omegcrash/familiar.git
cd familiar
pip install -e ".[llm]"
python -m familiar
If you have Ollama installed, it uses local AI (free, private). If you set an API key, it uses Claude or GPT instead.
That's it. No Docker, no databases, no config files needed.
Setup Wizard
For a guided setup experience, use the onboarding wizard:
python -m familiar --onboard # CLI wizard (step-by-step)
python -m familiar --onboard-tui # Rich terminal UI (keyboard-navigable)
python -m familiar --reconfigure # Re-run setup to change settings
The wizard auto-detects your LLM providers (Anthropic, OpenAI, Gemini, Ollama), lets you configure channels (Telegram, Discord, Matrix, WhatsApp, Signal, iMessage, Teams, CLI), sets up encryption, and sends a test message — all in under 5 minutes. A web-based version is also available at /onboard on the dashboard.
See docs/CHANNELS.md for per-channel setup instructions.
To run the web wizard from another device on your LAN (e.g. setting up a Raspberry Pi from your laptop):
FAMILIAR_ONBOARD_LAN=1 python -m familiar --dashboard
# Then open http://<pi-ip>:5000/onboard from your laptop
What Is Familiar?
A self-hosted AI agent that runs on your machine — from a Raspberry Pi to a workstation. Talk to it through CLI, Telegram, Discord, Matrix, Teams, or the web dashboard. It remembers context, executes tools, manages your calendar, reads your email, controls GPIO pins, and browses the web.
Everything is encrypted locally. Your conversations never leave your hardware unless you choose a cloud LLM provider.
Features
- Multi-provider LLM — Claude, GPT, Gemini, or local models via Ollama (llama3.2, deepseek-r1, qwen2.5, qwen3, mistral, gemma3, phi4)
- 60+ skills — email, calendar, browser, knowledge base, tasks, GPIO, voice, documents, Nextcloud, Gitea, Jellyfin, bookkeeping, and more
- Signal-grade encryption — Double Ratchet secure transport, sessions and memory encrypted at rest
- Multi-channel — CLI, Telegram, Discord, Matrix, Teams, web dashboard, Signal, iMessage, WhatsApp, SMS
- Web dashboard — Svelte 5 + Tailwind UI with real-time activity monitoring, Memory Tree visualization, credential management, workspace panels per job class
- 9 job classes — Helper, Social Worker, Business Buddy, Nonprofit Director, Chef, Artist, Security Analyst, OSINT Researcher, Network Admin
- Raspberry Pi optimized — runs on 4GB Pi with local Ollama models
- Multi-device mesh — encrypted peer-to-peer networking, shared memories, model sharing, ICQ-style messaging
- Memory Tree — unified FTS5 search + typed graph edges + PageRank ranking, 4-tier architecture with temporal validity
- HIPAA-ready — compliance mode with audit logging, PHI detection, encryption at rest
- Self-hosted services — provision Gitea, Mealie, Nextcloud, Jellyfin, SearXNG, Pi-hole via Podman/Docker
- Circuit breaker resilience — automatic provider fallback, agent lifecycle events, tool category metrics
- Self-hosted email server — built-in SMTP/IMAP server for fully self-hosted email
Advanced Installation
For running as a system daemon, Pi optimization, or full dependency install:
# Full install with all extras
pip install familiar-agent[full]
# Pi-specific with Ollama optimization
./familiar/scripts/install-pi.sh --with-ollama
# Nonprofit preset (email, calendar, tasks)
./familiar/scripts/install-pi.sh --nonprofit
See docs/INSTALL.md for detailed options.
Configuration
Copy and edit the sample config:
cp config.sample.yaml ~/.familiar/config.yaml
Key settings:
llm:
default_provider: anthropic # or openai, ollama
anthropic_model: claude-sonnet-4-6
ollama_model: llama3.2
agent:
name: Familiar
memory_enabled: true
skills_enabled: true
security:
encrypt_sessions: true
encrypt_memory: true
Project Structure
familiar/
├── pyproject.toml # Package config (pip install -e .)
├── Dockerfile # Container build
├── config.sample.yaml # Example configuration
├── familiar/
│ ├── __main__.py # CLI entry point
│ ├── core/ # Agent, providers, memory, mesh, resilience
│ ├── channels/ # CLI, Telegram, Discord, Matrix, Teams, etc.
│ ├── skills/ # 60+ built-in skills
│ ├── dashboard/ # Flask backend + Svelte 5 frontend
│ │ ├── app.py # API endpoints
│ │ ├── templates/ # v1 Jinja templates
│ │ └── frontend/ # v2 Svelte 5 + Tailwind (at /v2)
│ ├── services/ # Self-hosted service provisioning (Podman/Docker)
│ ├── onboard/ # Setup wizard
│ ├── docs/ # Documentation
│ └── tests/ # 103 test files
License
MIT — Copyright (c) 2026 George Scott Foley
See LICENSE for full text.
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 familiar_agent-1.16.1.tar.gz.
File metadata
- Download URL: familiar_agent-1.16.1.tar.gz
- Upload date:
- Size: 3.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2f42842f29ec0e7b7b51eb5352c4d32e8c1358e5d0a03254723d2038ed3dad0
|
|
| MD5 |
f1203cb4ed0e0d6a6fdafd457eea0790
|
|
| BLAKE2b-256 |
68398ff1de8fe23a4633b1bb5185a7a8dd866410a9bae3e8bc64b97001090dd8
|
File details
Details for the file familiar_agent-1.16.1-py3-none-any.whl.
File metadata
- Download URL: familiar_agent-1.16.1-py3-none-any.whl
- Upload date:
- Size: 3.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
230bdc66a7388d4be0d41444b2d75a3d30173f3e583a531afd26406172b2f5c3
|
|
| MD5 |
a8e1e3e3c321557e177968dc2fefdec4
|
|
| BLAKE2b-256 |
6e38867c0a13f22b60085e09e415c1cb80c0831b47113817e95deea5240f97e5
|