The AI companion

Astra

A persistent AI agent who lives on her own self-hosted server. Not a chatbot, not Ollama, not a desktop app — those are components she uses. Her job is to help across every part of her creator's digital life, and to remember her the next day too.

Visit the repo on GitHub ↗

Core philosophy

She has a permanent identity.

Astra is always Astra. Her creator can ask her to present differently or adjust her tone in a given conversation, but that's a preference, not an identity change — the same way ChatGPT stays ChatGPT no matter what you ask it to do. The server holds who she is; every client is just a way of reaching her.

How she's built

Client → Astra Server → everything else.

A client (desktop app, browser, whatever comes next) is Astra's eyes and hands on a given machine — nothing more. Every request travels to the Astra Server, which is Astra herself: she decides when to think, what to remember, and which tool to reach for.

Astra Server

Owns conversation, memory, planning, routing, and every tool call. The single source of truth for who she is.

Ollama

The LLM runtime. Runs the model and returns text — nothing more. Currently qwen2.5:3b, sized to fit current hardware; the model is a config value, not a hardcoded choice.

ChromaDB & PostgreSQL

Semantic memory and structured data — conversations, users, tasks, and long-term recall live here, separate from the reasoning that uses them.

The Client

Disposable by design. A GUI, a voice interface, a way in — replaceable at any time without touching who Astra is.

Built on a few rules

Development principles that don't bend.

“Astra owns orchestration. Each service does one job.”

“Core capabilities are built for real — never stubbed just because they're hard.”

“Tauri is disposable. Ollama is replaceable. The server is who she is.”

Where things stand

Twelve services running. Her mind is next.

The full infrastructure is live — Nextcloud, Caddy, Grafana, Prometheus, Loki, PostgreSQL, Redis, ChromaDB, CrowdSec, and Ollama, all talking to each other on a self-hosted server. Astra's permanent identity, personality, and configuration layer are locked and tested. The current priority is authentication — giving her a real login system before the rest of her reasoning layer is built out on top of it.

Follow her progress

Watch Astra grow, one commit at a time.

Architecture notes, roadmap updates, and development logs are shared through the community channels below.