| 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). |