ALIA
ALIA — the cognitive partner of the AI-n-Box desktop. A native GNOME agent you summon with a key, backed by the lovelaice agent runtime (sessions, persistence, tools, MCP) over its ACP engine.
This repo is the standalone slice: ALIA installs and runs on any recent GNOME, independent of AI-n-Box OS (where she'll later be baked in and pre-wired to the local Ollama daemon).
Vision:
vault/Atlas/Architecture/2026-06-25-alia-cognitive-partner-vision.mdin the Workspace.
Voice (v1.2)
ALIA is a four-modality partner — text and voice, in and out:
- 🎤 push-to-talk — click the mic, speak, click to stop; it transcribes the clip locally (harp's whisper engine) and auto-sends. Offline.
- 🔊 talk-back — if you spoke, she speaks the reply (Kokoro via
kokoro-onnx, CPU, no torch). Mirrors your modality; the 🔊 toggle mutes it. Typed input stays text-only.
Needs PortAudio + espeak-ng (see Requirements); install.sh/alia setup
add them. Models download once to ~/.cache/alia.
What works today (v1.0 agent core)
- A borderless GNOME HUD with a WebKit transcript — real markdown +
syntax highlighting (reuses superbot's
marked/highlight), an in-page "working…" spinner, and input locked while a turn runs. Enter sends, Esc hides. - A resident single-instance app — pressing the shortcut again toggles the HUD; the agent stays alive in the background.
- She acts on your machine via the shell, with you in the loop:
read(path)— reads any file, silently (observation is free).bash(command)— runs a shell command. Well-known read-only commands auto-run (ls,cat,df,git status, …); anything else shows an inline bar with Deny / Approve / Permitir «prefix» esta sesión. Picking the session option auto-approves that command prefix (e.g.git push,npm install) for the rest of the run. This is how she manages files, launches apps, changes GNOME settings, inspects the system, uses git, …- Safety floor: any command containing shell operators (
;,|,>,&&,$(…)) always prompts — a safe lead can't smuggle a dangerous tail. Hard red-lines (sudo,rm -rf /…) are blocked outright. Tool activity is shown in the transcript as it happens.
- Conversation persists per session to
~/.alia/sessions/<ts>.jsonl. - Model-agnostic via the lovelaice engine: defaults to Haiku over OpenRouter
(
anthropic/claude-haiku-4.5), points anywhere OpenAI-compatible.
Not yet: she can't see the screen (no screenshots/vision) or control the mouse/keyboard/click — those are the next rungs. She says so when asked.
Requirements
- GNOME with GTK 4 and its Python bindings (
python3-gobject/ PyGObject — from your distro, not pip). - WebKitGTK 6.0 for the transcript (
gir1.2-webkit-6.0on Debian/Ubuntu;webkitgtk6.0on Fedora). - For voice: PortAudio + espeak-ng (
libportaudio2 espeak-ngon Debian/Ubuntu;portaudio espeak-ngon Fedora). - Python ≥ 3.13.
Install
git clone https://github.com/syalia-srl/alia && cd alia
./install.sh
install.sh installs ALIA user-local (no sudo for the app itself):
- system GTK 4 + PyGObject + WebKitGTK 6.0 via
apt/dnf— only if missing (the one step that uses sudo); - a venv at
~/.local/share/alia/venvwithalia+ the engine (lovelaice/lingo/beaver) resolved from PyPI; - a launcher at
~/.local/bin/alia, an app entry, and the<Super>ishortcut.
Then configure a key and summon it:
mkdir -p ~/.config/alia
echo 'ALIA_API_KEY=sk-or-...' >> ~/.config/alia/env # any OpenAI-compatible key
# ALIA_MODEL=anthropic/claude-haiku-4.5 (optional)
# ALIA_BASE_URL=https://openrouter.ai/api/v1 (optional)
Press <Super>i (or run alia).
Install with pipx
Requires the system GTK 4 + WebKitGTK libraries (see Requirements) — pipx's venv
borrows them via --system-site-packages:
pipx install --system-site-packages alia # PyPI (once published)
# or, from the private repo:
# pipx install --system-site-packages git+ssh://git@github.com/syalia-srl/alia
alia setup # wires the <Super>i shortcut, .desktop entry, and config
alia setup is also safe to re-run anytime (re-checks deps, re-installs the
shortcut). install.sh calls it under the hood.
Run from source (dev)
export ALIA_API_KEY="sk-or-..."
make run # builds .venv (--system-site-packages) and launches
make run starts the resident app. To summon it with a key:
make shortcut # binds <Super>i → ALIA
BINDING='<Super>j' make shortcut # or pick your own free key
Picking a key. Many obvious combos are already grabbed and will silently do
nothing if you bind a custom shortcut to them: the bare Super/Windows key
(Activities overview), <Super>space (ibus input-source switch — an
independent grabber, so freeing the WM binding isn't enough), and often F12
(terminal dropdowns). The default is <Super>i (mnemonic for IA). If a
binding seems dead, it's almost certainly already taken — check
/tmp/alia-launch.log: the launcher logs every time the shortcut actually
fires, so an empty log means the key never reached ALIA.
Config
| Env var | Default | Purpose |
|---|---|---|
ALIA_API_KEY / OPENROUTER_API_KEY / API_KEY |
— | API key |
ALIA_MODEL / MODEL |
anthropic/claude-haiku-4.5 |
model slug |
ALIA_BASE_URL / BASE_URL |
https://openrouter.ai/api/v1 |
endpoint |
Develop
make test # agent-core unit tests (offline, via lingo's MockLLM)
The GTK HUD is smoke-tested manually (make run); the agent core is unit-tested.
Status
Conventions: ships to main, vertical-slice-first. See AGENTS.md.
Metadata
Release files for alia-ai 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| alia_ai-1.2.0.tar.gz | 81.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| alia_ai-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 160.1 kB
Release files / alia_ai-1.2.0.tar.gz
| Download URL | alia_ai-1.2.0.tar.gz |
|---|---|
| Size | 81.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7b5d8a7e98cec2c8410eeaaee0c5eee90539b833f7e9a56c19f8e4ebec325d40
|
|
BLAKE2b-256 checksum How to use checksums |
8776c15fadacdf66d4e5d3bc59ad991056f1d05f1a6655b47bdeb9b6824e3d48
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / alia_ai-1.2.0-py3-none-any.whl
| Download URL | alia_ai-1.2.0-py3-none-any.whl |
|---|---|
| Size | 78.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c1e52330fe9caad363567e654ea9fed4d316cca75f06b9118c86872151d7920b
|
|
BLAKE2b-256 checksum How to use checksums |
0755e2a949e839cd747651379abb787251d23eb13c4aad37989b95850f0d139d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|