A local AI companion and system assistant powered by Ollama. Run a fully offline, customizable AI from your terminal.
- CLI-first — send messages directly from your terminal
- Companion profiles — swap between different AI personas via YAML config
- Custom system prompts — define your companion's behavior with plain text files
- Ollama backend — runs models locally via the Ollama API
- Python 3.11+
- Ollama running locally (or via Docker)
- An Ollama-compatible model pulled
git clone https://github.com/Joshua92500/sodalis.git
cd sodalis
pip install -e .This installs the sodalis CLI command.
You can run Ollama locally, or use the included Docker Compose file (requires NVIDIA GPU):
docker compose up -dThen pull a model:
docker exec -it sodalis-ollama ollama pull qwen3:8bSodalis looks for companion profiles and system prompts in ~/.config/sodalis/.
Copy the defaults to get started:
mkdir -p ~/.config/sodalis/companions ~/.config/sodalis/prompts
cp config/companions/default.yaml ~/.config/sodalis/companions/
cp config/prompts/system_prompt.txt ~/.config/sodalis/prompts/name: Default
model: qwen3:8b
system_prompt: system_prompt.txt
temperature: 0.7| Field | Description |
|---|---|
name |
Display name for the companion |
model |
Ollama model to use |
system_prompt |
Filename of the system prompt in ~/.config/sodalis/prompts/ |
temperature |
Sampling temperature (0.0–1.0) |
Plain text file that sets the personality and behavior of the companion.
sodalis --chatUse a specific companion profile:
sodalis --chat --companion="MyCompanion"sodalis/
├── config/
│ ├── companions/ # Default companion profiles
│ └── prompts/ # Default system prompts
├── src/sodalis/
│ ├── cli.py # Entry point and argument parsing
│ ├── config.py # Companion config loader
│ ├── db.py # SQLite database client
│ ├── history.py # Chat history handling
│ ├── llm.py # Ollama API client
│ └── paths.py # XDG-style path helpers
├── docker-compose.yml # Ollama service with GPU support
└── pyproject.toml # Project metadata and dependencies
Sodalis follows XDG conventions:
| Purpose | Path |
|---|---|
| Config & companions | ~/.config/sodalis/ |
| Data (memory DB) | ~/.local/share/sodalis/ |