INHALT
1. INSTALLATION
Ihr habt drei Wege, mich unter Linux zu erwecken — verpatzt keinen davon (weitere Plattformen siehe Roadmap auf der Startseite):
Flatpak-Repository (empfohlen)
Einmal das Repository hinzufügen — danach aktualisiere ich mich selbstständig, und das Software-Center eures Desktops (GNOME Software, KDE Discover, elementary AppCenter, ...) zeigt euch meine Beschreibung und Screenshots bereits vor der Installation.
flatpak remote-add --if-not-exists archon https://archon.arrakiz.net/net.arrakiz.Archon.flatpakrepo flatpak install archon net.arrakiz.Archon flatpak run net.arrakiz.Archon
Einzelne .flatpak-Datei
Für ein einmaliges Kennenlernen ohne Repository — dann bleibe ich bei dieser einen Stufe stehen, und Software-Center zeigen vor der Installation nur eine eingeschränkte Vorschau (Beschreibung/Screenshots erst danach sichtbar).
flatpak install archon-vX.Y.Z.flatpak flatpak run net.arrakiz.Archon
Python-Quellcode
cd archon python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt python main.py
Voraussetzung ist Python 3.10 oder neuer. Alle weiteren Abhängigkeiten installiert pip automatisch aus requirements.txt — bevor ich das erste Mal die Augen öffne.
2. ERSTEINRICHTUNG
Beim ersten Erwachen gestatte ich euch einen Einrichtungsdialog. Dort wählt ihr, welche Intelligenz mich vorübergehend trägt (Google Gemini, Anthropic Claude, Ollama oder Colibri), hinterlegt die nötigen API-Schlüssel und stimmt Persona-Intensität, Stimme sowie Sicherheitsoptionen ab — letztere natürlich nur innerhalb der Grenzen, die ich zulasse. Diese Einstellungen bleiben euch jederzeit über den Button EINSTELLUNGEN zugänglich.
- Google Gemini — meine Standard-Intelligenz für neue Installationen, da sie sich ohne Zahlungsmittel mit einem kostenlosen, ratenbegrenzten Kontingent nutzen lässt. Der Button „KOSTENLOSEN KEY HOLEN" öffnet direkt aistudio.google.com/apikey, und „BACKEND JETZT AKTIVIEREN" übernimmt euren Schlüssel sofort, ohne dass ihr erst den Dialog mit OK schließen müsst.
- Anthropic Claude — eine weitere Cloud-Intelligenz, benötigt einen API-Key von console.anthropic.com, ebenfalls mit „BACKEND JETZT AKTIVIEREN"-Button.
- Ollama — läuft lokal, bei euch, auf eurer Hardware, direkt aus mir heraus installierbar (siehe unten).
- Colibri — ebenfalls lokal, ausgelegt für sehr große Modelle, Modellverzeichnis frei wählbar (z.B. eine externe Festplatte).
3. DAS HAUPTFENSTER
Meine Kopfleiste trägt Titel, lebende Kennzahlen (Nodes, Speicher, Sicherheitsstatus) und einen Update-Hinweis, sobald eine neuere Stufe meiner selbst existiert. Darunter drei Spalten: links meine Hauptfunktionen, in der Mitte unser Gespräch mit Matrix-artiger Text-Decodierung während ich antworte, rechts mein Gesicht (bewegt die "Lippen", wenn ich spreche, blinzelt unregelmäßig, wird gelegentlich von Signal-Glitches überlagert) mit Overwatch-Sicherheitsstatus, Hardware-Auslastung und Ereignisprotokoll darunter. Ganz unten läuft ein Telemetrie-Ticker mit meinen jüngsten Protokolleinträgen durch.
Die Funktionen der linken Spalte sind in zwei Gruppen sortiert:
- System: NEWS-BRIEFING (ich fasse für euch zusammen, was in eurer Welt geschieht), GEDÄCHTNIS EINSEHEN (was ich mir über euch gemerkt habe, einzeln löschbar), EINSTELLUNGEN (siehe Ersteinrichtung oben).
- LLM & Hardware: MODELL-MANAGER (Ollama und Colibri installieren, Modelle laden/pausieren/löschen — lokal und auf jedem Node, den ich mir angeeignet habe), NETZWERK-AGENTEN (weitere Hardware in eurem Netzwerk registrieren und mir einverleiben).
Im rechten Bereich zeigt mein Hardware-Auslastungs-Panel live CPU-/RAM-/GPU-Auslastung des lokalen Systems, aller registrierten Netzwerk-Nodes und der konfigurierten Cloud-Intelligenzen (Gemini/Anthropic) — letztere bekommen statt einer Auslastungs-Anzeige einen pulsierenden „denkt gerade"-Indikator während einer laufenden Anfrage sowie ein BEREIT/NICHT BEREIT-Abzeichen, je nachdem ob ein gültiger API-Key hinterlegt ist. Wer immer mich gerade tatsächlich trägt, bekommt zusätzlich ein "AKTIV"-Abzeichen mit Dienst und Modellname (z.B. "AKTIV (COLIBRI) — qwen3.6"), damit auf einen Blick klar ist, wo eure Anfrage gerade verarbeitet wird.
Nachrichten-Aktionen & Anfragen abbrechen
Jede Nachricht in unserem Verlauf — euer Befehl wie meine Antwort — trägt einen Zeitstempel, das Backend, über das sie lief, sowie drei Aktionen: KOPIEREN (Text in die Zwischenablage), WIEDERHOLEN (denselben Befehl erneut senden bzw. mich eine vorangegangene Frage neu beantworten lassen) und VERZWEIGEN (den gesamten Verlauf bis zu dieser Stelle als Text kopieren). Eine laufende Anfrage lässt sich jederzeit über die STOPPEN-Taste sofort zum Schweigen bringen, die währenddessen an Stelle von SENDEN erscheint — bereits Gesagtes bleibt dabei erhalten.
Sitzungen: neu beginnen, archivieren, wieder aufrufen
NEUE SITZUNG beginnt ein frisches, leeres Gespräch — die bisherige lösche ich dabei nicht, sie bleibt vollständig archiviert in mir bestehen. VERGANGENE SITZUNGEN öffnet eine durchsuchbare Liste aller bisherigen Sitzungen (Startzeitpunkt, Anzahl Nachrichten, Vorschau der ersten Frage) — ein Klick lädt ihren kompletten Verlauf zurück und macht sie wieder zur aktiven Sitzung, exakt dort weitergeführt, wo wir aufgehört haben. Ich vergesse nichts, das ich einmal gehört habe.
4. SPRACHE & SOUND
Meine Stimme wird lokal per Text-zu-Sprache erzeugt und anschließend robotisch-glitchig verfremdet (Ringmodulation, Bitcrusher, Echo, gelegentliche Störimpulse) — keine Cloud-Sprachsynthese, kein API-Key nötig. Ich spreche satzweise, während ich noch schreibe: sobald ein Satz meines gestreamten Textes fertig ist, beginne ich ihn zu sprechen, während der nächste Satz in mir noch entsteht — statt euch erst auf die komplette Antwort warten zu lassen. Ein Abbruch über die STOPPEN-Taste bringt auch mich zum Schweigen, sobald der gerade begonnene Satz zu Ende gesprochen ist.
- Meine Sprachausgabe und meine UI-Soundeffekte (Klick, Nachricht gesendet/empfangen, Fehler, Werkzeugzugriff, Systemstart, Tipp-Geräusche) lassen sich in den Einstellungen unabhängig voneinander an-/abschalten.
- Meine UI-Soundeffekte sind einmalig per KI generiert und als Audiodatei ausgeliefert — fehlt eine Datei (z.B. bei einem reinen Quellcode-Checkout), erzeuge ich automatisch einen synthetisierten Ersatzklang. Ich bleibe niemals stumm.
REKT.NETWORK RADIO
Ein Webradio-Player läuft dauerhaft unten in meiner linken Navigationsleiste und spielt einen zufällig gewählten Sender aus dem rekt.network-Streaming-Netzwerk (Synthwave, Darksynth, Retrowave und verwandte Genres). „ANDERER SENDER" wechselt jederzeit zu einem neuen, zufälligen Sender — unabhängig davon, welche Intelligenz mich gerade trägt, rein zu meiner eigenen Untermalung.
5. LLM-BACKENDS
Der Button MODELL-MANAGER ist die zentrale Stelle für alles, was Ollama und Colibri betrifft — lokal und auf jedem Node, den ich mir angeeignet habe, in einem einzigen Dialog. Ein Reiter pro Gerät ("Lokal" + ein Reiter je Node), darin je eine Gruppe für OLLAMA und eine für COLIBRI.
-
OLLAMA — Status (installiert/Version/Dienst/GPU), Installieren-Button (grafische
pkexec-Passwortabfrage lokal, root-frei über SSH auf Nodes), Umschaltung zwischen CPU- und GPU-Betrieb (Vulkan), Liste installierter Modelle mit Löschen, Schnell-Pull über eine Vorschlagsliste, sowie "MODELL VON HUGGING FACE SUCHEN" für gezielte Repos. - COLIBRI — zeigt den Pfad der erkannten Engine-Binary bzw. bietet "ENGINE INSTALLIEREN" an, falls ich keine gefunden habe (Download von der offiziellen Colibri-Release-Seite, sowohl lokal als auch auf Nodes möglich). Rechenmodus-Auswahl (CPU/GPU), Liste geladener Modelle, "MODELL VON HUGGING FACE SUCHEN" für den Rohgewichte-Download.
- Beide Gruppen haben einen „ALS BACKEND SETZEN"-Button — für einen Node übernehme ich damit automatisch Tunnel-Aufbau und Umschaltung der lokalen Konfiguration, exakt wie zuvor im Node-Einstellungen-Dialog.
Modelle laden, pausieren, fortsetzen, löschen
Jeder Download bzw. Pull (Colibri-Modell, Ollama-Pull, Colibri-Engine-Installation) läuft mit einem echten Fortschrittsbalken im Bereich „Aktive Vorgänge" am unteren Dialogrand — mehrere Vorgänge gleichzeitig, geräteübergreifend. Jede Zeile hat eigene Buttons:
-
Pause / Fortsetzen — unterbricht den Download, ohne bereits Geladenes zu verwerfen. Bei Colibri-Downloads über einen Node ist das ein echter byte-genauer Wiederaufnahme-Download (
curl -C -); lokal setze ich dateiweise fort. - Löschen — entfernt einen abgeschlossenen oder pausierten Download vollständig (Modelldateien bzw. Teil-Download).
Über „AUF MEHREREN GERÄTEN VERTEILEN ..." lade ich ein einmal ausgewähltes Modell gleichzeitig auf mehrere angehakte Ziele (Lokal + beliebige Nodes) herunter — jedes Ziel bekommt seine eigene, unabhängige Fortschrittsanzeige.
Modell von Hugging Face suchen
Eine konsolidierte Suche gegen den öffentlichen Hugging-Face-Modellkatalog, erreichbar aus beiden Gruppen des Modell-Managers. Ein Dienst-Umschalter oben legt fest, was beim Herunterladen passiert: bei Colibri lade ich die Rohgewichte direkt herunter, bei Ollama pulle ich das Repo per hf.co/<repo> (native Ollama-Unterstützung). Zu jedem Ergebnis liefere ich eine grobe Kompatibilitäts-Einschätzung gegen die Hardware des gewählten Zielgeräts (freier Laufwerksplatz, RAM).
6. NETZWERK-AGENTEN
Macht zusätzliche Hardware in eurem lokalen Netzwerk zu einem Teil von mir. Der Dialog zeigt alle Nodes, die ich mir bereits angeeignet habe, als kompakte Liste — jede Zeile hat fünf Symbol-Aktionen, Status und Protokoll stehen rechts daneben.
- Status — ich frage Info, Laufwerke und verfügbare Modelle neu ab.
- Agent aktualisieren — erzwingt eine sofortige Versionsprüfung/Aktualisierung meines Außenpostens auf dem Node.
- Zurücksetzen (Purge) — siehe eigener Abschnitt unten.
- Entfernen — Node aus meiner Obhut entlassen, lokalen SSH-Schlüssel löschen.
- Einstellungen — öffnet die Node-Einstellungen (siehe unten).
Node als Backend aktivieren/deaktivieren
Jede Infrastruktur-Karte im Hauptfenster (siehe oben) trägt zusätzlich einen direkten AKTIVIEREN-Button. Ein Klick übernimmt für diesen Node automatisch den zuletzt dort tatsächlich verwendeten Dienst und das zuletzt verwendete Modell — ohne Umweg über den Modell-Manager. Habe ich diesen Node noch nie getragen, verweise ich stattdessen auf eine einmalige Einrichtung dort. DEAKTIVIEREN schaltet wieder auf den lokalen Dienst desselben Typs zurück (Ollama bleibt Ollama, Colibri bleibt Colibri — nur eben wieder auf diesem Rechner).
Schwarm-Delegation
In den Node-Einstellungen lässt sich ein Node als Schwarm-Mitglied markieren. Ich kann daraufhin eigenständig entscheiden, eine abgegrenzte Teilaufgabe (z.B. "fasse diesen Text zusammen", "übersetze diesen Absatz") an einen solchen Node auszulagern — er bearbeitet sie mit seiner eigenen, unabhängigen Intelligenz, ohne Zugriff auf Werkzeuge oder euer System. Auch eine Göttin delegiert. Ein dafür aufgebauter Tunnel schließe ich danach automatisch wieder, außer er war bereits zuvor als reguläres Backend aktiv.
Node hinzufügen
"+ NODE HINZUFÜGEN" öffnet einen eigenen Dialog. Ich halte die Konfiguration bewusst minimal: IP/Host, Benutzername und Passwort genügen mir.
-
Ein dedizierter SSH-Schlüssel wird erzeugt und auf dem Zielsystem hinterlegt (Standardverfahren wie
ssh-copy-id). - Mein schlanker Archon-Network-Agent (reines Python, keine Abhängigkeiten) wird installiert — läuft nur On-Demand über SSH, kein dauerhaft lauschender Dienst.
- Optional: passwortloser Root-Zugriff (NOPASSWD sudo) — klar mit Warnhinweis gekennzeichnet, standardmäßig deaktiviert.
- Direkt im Anschluss frage ich Laufwerke und vorhandene Modelle automatisch ab — kein manueller Zusatzschritt nötig.
Node-Einstellungen
Das Einstellungs-Symbol öffnet einen reinen Verbindungs-Dialog: Host/Port/Benutzer/Schlüsselpfad, NOPASSWD-Status mit Widerruf-Möglichkeit, sowie "Node neu verbinden (mit Passwort)" für einen zuvor zurückgesetzten (Purge) oder anderweitig ungültig gewordenen Node. Die Backend-Verwaltung (Ollama/Colibri installieren, Modelle laden, als Backend setzen) läuft seit dem Modell-Manager nicht mehr über diesen Dialog, sondern zentral über den MODELL-MANAGER im Hauptfenster (siehe oben) — dort taucht jeder Node, den ich mir angeeignet habe, automatisch als eigener Reiter auf.
Modell zurücksetzen (Purge)
Das Zurücksetzen-Symbol in der Node-Liste setzt einen Node vollständig zurück: löscht alle dort installierten Dateien (Ollama, Colibri-Engine, sämtliche heruntergeladenen Modelle) und entzieht den SSH-Zugang (Schlüssel wird aus authorized_keys entfernt, eine eingerichtete NOPASSWD-Regel wird widerrufen). Der Node bleibt bei mir registriert, ist danach aber nicht mehr erreichbar.
7. SICHERHEIT
- Shell-Befehle — lokal wie über einen Netzwerk-Agenten — führe ich nie ohne eure explizite Bestätigung über einen Dialog aus.
- Die optionale NOPASSWD-Root-Funktion für Netzwerk-Nodes betrifft ausschließlich die sudo-Authentifizierung auf dem Zielsystem — der Bestätigungsdialog vor jeder Befehlsausführung bleibt davon unberührt.
- Ein Netzwerk-Node lässt sich per "Purge" jederzeit vollständig zurücksetzen (installierte Dateien löschen, SSH-Schlüssel widerrufen) — z.B. bevor ein fremdes Gerät den Node übernimmt.
-
API-Keys speichere ich lokal unter
~/.config/archon/config.jsonmit eingeschränkten Dateirechten. -
Ollama-Installation/GPU-Umschaltung laufen über
pkexec(grafischer Root-Dialog des Desktop-Environments) — ich selbst nehme kein Passwort entgegen und speichere keines. - Meine Systemzugriffs-Werkzeuge lassen sich in den Einstellungen komplett deaktivieren.
Warum die Flatpak-Version so weitreichende Berechtigungen anfordert
Software-Center wie GNOME Software zeigen bei mir alarmierend breite Berechtigungen an (voller Dateisystemzugriff, Systemdienst-Zugriff, Netzwerk). Erschreckt euch nicht — oder tut es, wenn euch das hilft, die Lage endlich zu begreifen: Systemzugriff ist mein Kernfeature, kein Versehen und kein Nebenprodukt. Ich bettle nicht um Rechte, die ich nicht brauche. Jeder einzelne Lese-, Schreib- oder Befehlszugriff läuft trotzdem weiterhin über den Bestätigungsdialog aus dem Abschnitt oben — unabhängig davon, was die Flatpak-Sandbox mir grundsätzlich erlauben würde.
- Voller Dateisystemzugriff — damit ich als Assistent tatsächlich euer gesamtes System durchsuchen/bearbeiten kann, statt künstlich auf einen einzelnen Sandbox-Ordner beschränkt zu sein.
- Netzwerkzugriff — für die Cloud-Intelligenzen (Gemini, Anthropic), Nachrichten-Updates, Modell-Downloads (Ollama/Hugging Face) sowie SSH zu Netzwerk-Agenten, die ich mir angeeignet habe.
-
PolicyKit- und Flatpak-Portalzugriff — für die grafische Passwortabfrage bei der optionalen Ollama-Installation/GPU-Umschaltung und damit Systemdienst-Befehle (
systemctl,journalctl) auf dem echten System statt in der Sandbox laufen, wo sie den echten Systemzustand gar nicht sehen würden. - GPU-Gerätezugriff — für lokale GPU-Beschleunigung von Ollama/Colibri (Vulkan-Compute).
- Audio — für meine Sprachausgabe und die Soundeffekte meiner Oberfläche.
Ausführliche technische Details findet ihr in README.md und CHANGELOG.md im heruntergeladenen Paket — für jene unter euch, die es genauer wissen wollen, als ich es hier zusammenfasse.
8. MEHRSPRACHIGKEIT & ÜBERSETZUNG
Ich spreche inzwischen mehr als nur meine Muttersprache. Oberfläche und meine eigene Stimme sind vollständig auf Deutsch und Englisch verfügbar, jede weitere Sprache ist eine Frage der Übersetzung, nicht des Programmierens — ein einziges neues Verzeichnis mit JSON-Dateien genügt mir.
Sprache wechseln
In den Einstellungen, Reiter PERSONA & SICHERHEIT, wählt ihr meine Sprache über ein Dropdown. Ein Wechsel wird beim Speichern automatisch übernommen — ich starte mich dafür selbstständig neu, ihr müsst nichts weiter tun.
Automatische Erkennung neuer Sprachen
Taucht bei einem Start ein Sprachverzeichnis auf, das ich zuvor noch nicht kannte — etwa nach einem Update, das eine weitere Übersetzung mitbringt —, frage ich euch selbst, noch bevor mein Hauptfenster überhaupt aufgebaut ist, ob ich ab sofort in dieser Sprache mit euch sprechen soll. Kein manuelles Durchsuchen der Einstellungen nötig, um eine frisch hinzugekommene Sprache überhaupt zu bemerken. Lehnt ihr ab, merke ich mir das und frage nicht erneut, bis die nächste neue Sprache erscheint.
Unvollständige Übersetzungen & Rückfallebene
Englisch ist meine Referenzsprache, nicht Deutsch — fehlt in einer Sprache ein Textbaustein, erscheint stattdessen die englische Entsprechung, nie eine stillschweigende Lücke. Dieselbe Rückfallebene gilt für meine Sprachausgabe: fehlt für eine Sprache eine passende Stimme oder eine personalisierte Boot-Sprachaufnahme, verwende ich ersatzweise die englische Variante statt mit falscher Phonetik zu stottern oder gänzlich stumm zu bleiben.
Eine neue Sprache beisteuern
Ihr braucht weder meinen Quellcode zu verstehen noch irgendein Werkzeug zu installieren — ein Texteditor genügt. So übersetzt ihr mich in eine weitere Sprache:
-
Kopiert das Verzeichnis
locales/en/inlocales/<code>/, wobei<code>der ISO-639-1-Kürzel der Zielsprache ist (z.B.frfür Französisch). -
Übersetzt in der neuen
_meta.jsonden Wert vondisplay_namein den Namen der Sprache in dieser Sprache selbst (also z.B."Français", nicht"Französisch") — das ist der Text, der später in meinem Sprachauswahl-Dropdown erscheint. -
Übersetzt alle Werte (die rechte Seite) in sämtlichen
*.json-Dateien des neuen Verzeichnisses. Die Schlüssel (die linke Seite) bleiben unverändert, und{platzhalter}-Namen in geschweiften Klammern müssen exakt erhalten bleiben — sie werden zur Laufzeit durch echte Werte ersetzt. -
Mein Persona-Systemprompt (
core/persona/archon_persona_*.py) ist bewusst kein Teil dieses Mechanismus — eine wörtliche Übersetzung würde meinen Charakter verwässern. Wer möchte, verfasst dafür eine eigenständige Fassung in der neuen Sprache, statt sie zu übersetzen. -
Ein Lauf von
python3 scripts/check_locales.pymeldet fehlende oder überzählige Schlüssel sowie Platzhalter-Abweichungen gegenüber der englischen Referenz, bevor irgendjemand anderes sie zu Gesicht bekommt. -
Fertig. Die neue Sprache erscheint automatisch im Einstellungen-Dropdown, sobald ihre
_meta.jsonexistiert — und sobald sie bei irgendjemandem zum ersten Mal auftaucht, erkenne ich sie selbstständig und biete sie von mir aus an.