Quick start
You need three things before you start:
That's it. Postgres, Neo4j, Redis, and Celery all spin up automatically via Compose. No local database installation required.
Clone the repo and copy the environment template.
git clone https://github.com/wastrilith2k/roux companion-framework
cd companion-framework
cp .env.example .env
Open .env in your editor. You'll fill in API keys in the next step
and set your database passwords in Step 4.
Roux supports multiple providers with automatic failover. You need at least one. For the cheapest setup, use OpenRouter with free models. For production quality, use Fireworks (primary) + OpenAI (embeddings and tool calls).
| Provider | Key in .env | Notes |
|---|---|---|
| OpenRouter | OPENROUTER_API_KEY | Free tier available. Recommended for getting started. |
| Fireworks AI | FIREWORKS_API_KEY | Primary in production. Fast inference, DeepSeek models. |
| OpenAI | OPENAI_API_KEY | Used for embeddings and tool calling. Recommended alongside Fireworks. |
| Anthropic | ANTHROPIC_API_KEY | Claude models. Last-resort fallback in the provider chain. |
| DeepSeek | DEEPSEEK_API_KEY | Direct API access to DeepSeek models. |
Add whichever keys you have to .env. Roux uses whatever's available and skips what isn't.
Change the two default passwords in .env before starting any services.
POSTGRES_PASSWORD=your_secure_password
NEO4J_GRAPHITI_PASSWORD=your_secure_password Choose development (hot-reload) or production mode:
# Development — with hot-reload
docker compose -f docker-compose.dev.yml up -d
# Production
docker compose up -d First run will pull images and run database migrations automatically. Give it a minute, then check that all containers are up:
docker compose ps Everything should be running. Here's where to find it:
localhost:5000 (production)
localhost:5001 (dev)
localhost:5000/observe
Real-time simulation viewer.
Terminal interface:
docker compose run companion-cli
localhost:7475
Inspect the knowledge graph directly.
The observation dashboard shows the same live view as demo.getroux.dev/observe — episodes forming, facts being extracted, and the relationship graph evolving in real time.
Optional integrations
All integrations are opt-in via feature flags in .env.
The core framework runs without any of these. See the
README
for full setup instructions.
The companion reads your calendar, scans email, and manages its own Google Calendar with a generated daily schedule.
Enables proactive reach-outs — the companion messages you via Telegram when it has something to say, without waiting to be spoken to.
NanoBanana (free, Gemini-powered) or RunComfy for LoRA-tuned workflows. Companion generates images when it detects image intent in conversation.
Cloudinary or AWS S3 for persistent image hosting. URLs won't expire between sessions.
Text-to-speech for companion responses. Deepgram for fast synthesis, ElevenLabs for higher-quality voice cloning.
Lets the companion search the web for current information and reference it naturally in conversation.
What's next
Each companion is defined by a handful of files in instances/<name>/:
a persona.yaml, a personality.md,
and entity profiles for what they know about others.
The framework builds the rest — memory, opinions, inner state, proactive behavior.