$ kode

← alle Dateien · als Text

README.md

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92# kode Vibe Coding im Terminal mit eigenen Modellen auf Mietkarten (RunPod, Vast.ai). *English: a Claude-Code-style coding agent for the terminal that rents a GPU on RunPod or Vast.ai on demand, loads an open-weight model with tool calling via Ollama, and deletes the GPU again when you are done. The UI and code comments are in German.* kode liest und schreibt Dateien, führt Shell-Befehle aus und fragt dabei je nach Freigabemodus nach. Das Modell läuft nicht lokal, sondern auf einer Grafikkarte, die kode bei der ersten Nachricht selbst mietet: bestes Angebot bis zum Höchstpreis, bei Fehlern die nächste Karte. Beim Beenden wird die Karte gelöscht oder für eine Frist gehalten; ein Wächterdienst räumt nach Leerlauf auf und prüft jedes Löschen nach. ## Warnung vorab - kode ist für den Betrieb als **root** auf dem eigenen Server gebaut und hat Zugriff auf das ganze System. - Es gibt **keine Geheimnis-Sperre**: Was das Modell liest, geht an eine fremde Mietkarte – bei Vast.ai unter Umständen an einen Privatrechner. - Mietkarten kosten Geld. Der Wächter löscht sie nach Leerlauf, trotzdem gilt: Guthaben im Blick behalten (`kode kosten`). ## Installation Voraussetzung: Linux, Python ≥ 3.11, ein Konto bei RunPod und/oder Vast.ai. ```sh curl -fsSL https://kode.boothtml.com/install.sh | sudo sh ``` Das Skript installiert fehlende Pakete (python3-venv, tmux, curl), legt den Code nach `/opt/kode`, den Befehl nach `/usr/local/bin/kode`, eine Vorlage für die Schlüssel nach `/etc/kode/kode.env` und richtet den Wächterdienst `kode-waechter` ein. Ein zweiter Aufruf aktualisiert, Schlüssel und Daten bleiben stehen. Danach Schlüssel eintragen (`sudo nano /etc/kode/kode.env`) oder gleich mitgeben: ```sh curl -fsSL https://kode.boothtml.com/install.sh | sudo RUNPOD_API_KEY=... VAST_API_KEY=... sh ``` Von Hand: Archiv `https://kode.boothtml.com/kode.tar.gz` entpacken, `python3 -m venv .venv && .venv/bin/pip install -r requirements.txt`, starten mit `.venv/bin/python -m kode`; `systemd/kode-waechter.service` ist die Vorlage für den Wächter (Pfade anpassen). ## Benutzung kode interaktiv im aktuellen Ordner kode -p "Auftrag" ein Auftrag ohne Rückfragen (Karte muss laufen) kode -m <modell> mit bestimmtem Modell starten kode status | stopp | kosten | modelle | auswertung Im Gespräch zeigt `/hilfe` alle Befehle, `/` schlägt sie vor. Wichtig: - `/modelle`, `/modell <nr|name>` – Katalog und Wechsel - `/maxpreis <usd>`, `/maxpreis gross <usd>` – Höchstpreis je Stunde für den automatischen Start (Standard 0,50 USD/h, Modelle ab 80 GB 1,50 USD/h) - `/wahl` – Karte selbst aus der Liste wählen - `/modus fragen|dateien|alles` (auch Shift+Tab) – Freigabemodus - `/stopp` – Karte löschen (nachgeprüft) ## Modelle Der Katalog (`kode/katalog.py`) enthält nur Modelle, deren Chat-Vorlage Werkzeugaufrufe kennt. Nach dem Laden prüft kode zusätzlich, ob Ollama das Modell als werkzeugfähig meldet, und gibt die Karte sonst zurück. Die Kontextlängen sind geschätzt, nicht gemessen. ## Dateien - `/etc/kode/kode.env` – Schlüssel (`RUNPOD_API_KEY`, `VAST_API_KEY`), nur root. - `/var/lib/kode/` – Zustand der Karte, Kosten, Wächter-Log, Sitzungsprotokolle (`KODE_DATEN`). - `~/.kode/` – Einstellungen, Freigaben, Sicherungen, Sitzungen (`KODE_HEIM`). - `KODE.md` (oder `CLAUDE.md`/`AGENTS.md`) im Arbeitsordner geht in den Systemprompt. Gemietete Karten tragen das Label `kode-cli` (`KODE_LABEL`). Aufgeräumt wird nur, was dieses Label trägt. ## Test ohne Miete Gegen ein vorhandenes Ollama, es wird nichts gemietet: KODE_BASIS=http://host:11434 KODE_LOKAL_MODELL=qwen3:1.7b kode ## Lizenz MIT, siehe [LICENSE](LICENSE).