ALIA — the cognitive partner of the AI-n-Box desktop. A native GNOME agent surface on the lingo/lovelaice engine.
Project description
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.
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 alia_ai-1.2.0.tar.gz.
File metadata
- Download URL: alia_ai-1.2.0.tar.gz
- Upload date:
- Size: 81.4 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b5d8a7e98cec2c8410eeaaee0c5eee90539b833f7e9a56c19f8e4ebec325d40
|
|
| MD5 |
ae9a267fbe548dccecdfafbc24ef2a9f
|
|
| BLAKE2b-256 |
8776c15fadacdf66d4e5d3bc59ad991056f1d05f1a6655b47bdeb9b6824e3d48
|
File details
Details for the file alia_ai-1.2.0-py3-none-any.whl.
File metadata
- Download URL: alia_ai-1.2.0-py3-none-any.whl
- Upload date:
- Size: 78.7 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c1e52330fe9caad363567e654ea9fed4d316cca75f06b9118c86872151d7920b
|
|
| MD5 |
f6c2e62dbee8aeac48a4ed230b274fed
|
|
| BLAKE2b-256 |
0755e2a949e839cd747651379abb787251d23eb13c4aad37989b95850f0d139d
|