Verbinden-Seite: auf 3 Tools kuratiert (Kilo Code, OpenCode, Claude Code)

Roo Code wurde April 2026 eingestellt (Repo archiviert) — Kilo Code ist der aktive
Nachfolger der Roo/Cline-Linie (Orchestrator-Modus, Modell-pro-Modus, JetBrains+CLI).
Cursor/Zed/Continue raus (cloud-first bzw. von Kilo abgedeckt). Kilo-Note enthaelt die
Modus-Zuordnung: Code->coding, Architect/Orchestrator->heavy, Ask/Debug->chat.
Das Evolution-Radar (AUTONOMIE_PLAN E4) ueberwacht die Tool-Kategorie kuenftig selbst.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-07-02 19:53:03 +02:00
parent 2263e298fd
commit a8d6f3f598
7 changed files with 20 additions and 56 deletions
+12 -45
View File
@@ -31,7 +31,9 @@ def build_snippets(host: str = DEFAULT_HOST,
gw = _gw(host) gw = _gw(host)
mc_url = f"http://{host}:{PORT}" mc_url = f"http://{host}:{PORT}"
cline = json.dumps({ # Kilo Code = aktiver Nachfolger der Roo/Cline-Linie (Roo im April 2026 eingestellt).
# Gleiche Provider-Settings-Struktur; Multi-Agent kommt aus dem Tool (Orchestrator-Modus).
kilo = json.dumps({
"apiProvider": "openai", "apiProvider": "openai",
"openAiBaseUrl": gw, "openAiBaseUrl": gw,
"openAiApiKey": "local", "openAiApiKey": "local",
@@ -49,39 +51,6 @@ def build_snippets(host: str = DEFAULT_HOST,
} }
}, indent=2) }, indent=2)
cursor = json.dumps({
"Base URL": gw,
"API Key": "local",
"Active Model": "coding"
}, indent=2)
zed = json.dumps({
"language_models": {
"openai_compatible": {
"bosgame": {
"api_url": gw,
"available_models": [
{"name": IDE_MODEL, "display_name": IDE_MODEL, "max_tokens": 131072,
"capabilities": {"tools": True}}
],
}
}
},
"assistant": {
"default_model": {
"provider": "openai_compatible",
"model": IDE_MODEL
}
}
}, indent=2)
cont = json.dumps({
"models": [
{"title": f"Bosgame / {IDE_MODEL}", "provider": "openai", "model": IDE_MODEL,
"apiBase": gw, "apiKey": "local"}
]
}, indent=2)
# Claude Code spricht das Anthropic-Format; der Gateway ist OpenAI-kompatibel und # Claude Code spricht das Anthropic-Format; der Gateway ist OpenAI-kompatibel und
# bietet KEIN /v1/messages (verifiziert). Daher braucht es einen kleinen Übersetzer # bietet KEIN /v1/messages (verifiziert). Daher braucht es einen kleinen Übersetzer
# (Anthropic ⇄ OpenAI) als Aufsatz. Die env-Vars sind Claude Codes echte Schnittstelle. # (Anthropic ⇄ OpenAI) als Aufsatz. Die env-Vars sind Claude Codes echte Schnittstelle.
@@ -112,20 +81,18 @@ def build_snippets(host: str = DEFAULT_HOST,
"host": host, "host": host,
"gateway_url": gw, "gateway_url": gw,
"mc_url": mc_url, "mc_url": mc_url,
# Leitung 1 — das MODELL. Alle Snippets zeigen auf den OpenAI-kompatiblen Gateway. # Leitung 1 — das MODELL. Bewusst NUR 3 Tools (Verdikt 03.07.2026): Kilo Code (IDE,
# Multi-Agent via Orchestrator-Modus), OpenCode (Terminal), Claude Code (starke Sessions).
# Cursor/Zed/Continue/Roo entfernt — Roo eingestellt, Rest von Kilo abgedeckt bzw.
# cloud-first. Das Evolution-Radar (AUTONOMIE_PLAN E4) überwacht die Tool-Kategorie.
"tools": { "tools": {
"cline": {"label": "Roo Code / Cline", "lang": "json", "snippet": cline, "kilo": {"label": "Kilo Code", "lang": "json", "snippet": kilo,
"note": "OpenAI-Provider → Gateway. Nur Lane 'coding' — die Box routet intern selbst."}, "note": "VS Code/JetBrains. OpenAI-Provider → Gateway; Lane 'coding' routet intern. "
"cursor": {"label": "Cursor", "lang": "json", "snippet": cursor, "Empfohlen: API-Profile je Modus — Code→coding · Architect/Orchestrator→heavy · Ask/Debug→chat."},
"note": "Einstellungen ➔ Models ➔ OpenAI API key + Base URL."},
"opencode": {"label": "OpenCode", "lang": "jsonc", "snippet": opencode, "opencode": {"label": "OpenCode", "lang": "jsonc", "snippet": opencode,
"note": "Datei opencode.jsonc, Key 'provider'."}, "note": "Terminal-Agent. Datei opencode.jsonc, Key 'provider'."},
"zed": {"label": "Zed", "lang": "json", "snippet": zed,
"note": "settings.json → language_models.openai_compatible."},
"continue": {"label": "Continue", "lang": "json", "snippet": cont,
"note": "~/.continue/config.json (oder config.yaml mit identischen Keys)."},
"claude_code": {"label": "Claude Code", "lang": "bash", "snippet": claude_code, "claude_code": {"label": "Claude Code", "lang": "bash", "snippet": claude_code,
"note": "Braucht einen Anthropic⇄OpenAI-Übersetzer vor dem Gateway."}, "note": "Für die starken Sessions. Lokal-Betrieb bräuchte einen Anthropic⇄OpenAI-Übersetzer vor dem Gateway; Gedächtnis-Anbindung via Memory-MCP unten."},
}, },
# Leitung 2 — das GEDÄCHTNIS. Separater MCP-Server, gilt zusätzlich zu jedem Tool oben. # Leitung 2 — das GEDÄCHTNIS. Separater MCP-Server, gilt zusätzlich zu jedem Tool oben.
"memory": {"label": "Shared Memory (MCP)", "lang": "json", "snippet": memory_mcp, "memory": {"label": "Shared Memory (MCP)", "lang": "json", "snippet": memory_mcp,
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -7,8 +7,8 @@
<link rel="manifest" href="/manifest.webmanifest" /> <link rel="manifest" href="/manifest.webmanifest" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" /> <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<title>Mission Control 2.0</title> <title>Mission Control 2.0</title>
<script type="module" crossorigin src="/assets/index-CMk0U3JS.js"></script> <script type="module" crossorigin src="/assets/index-DyBEWJ2j.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-DnPDtMyG.css"> <link rel="stylesheet" crossorigin href="/assets/index-_Rap01H_.css">
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
+3 -6
View File
@@ -9,12 +9,9 @@ import { cn } from "@/lib/utils"
// Dateiziel je Tool — nur Hinweis im Editor-Kopf, keine Logik. // Dateiziel je Tool — nur Hinweis im Editor-Kopf, keine Logik.
const FILE_NAMES: Record<string, string> = { const FILE_NAMES: Record<string, string> = {
cline: "cline_settings.json", kilo: "Kilo: Einstellungen → API Provider",
cursor: "Settings → Models",
opencode: "opencode.jsonc", opencode: "opencode.jsonc",
zed: "settings.json", claude_code: "env / Übersetzer",
continue: "~/.continue/config.json",
claude_code: "~/.zshrc / env",
} }
function StatusBadge({ line, loading }: { line?: ConnectLine; loading: boolean }) { function StatusBadge({ line, loading }: { line?: ConnectLine; loading: boolean }) {
@@ -78,7 +75,7 @@ function CodeWindow({
export function ConnectView() { export function ConnectView() {
const [host, setHost] = useState(localStorage.getItem("mc_host") || "192.168.178.151") const [host, setHost] = useState(localStorage.getItem("mc_host") || "192.168.178.151")
const [mcpPath, setMcpPath] = useState(localStorage.getItem("mc_mcp_path") || "") const [mcpPath, setMcpPath] = useState(localStorage.getItem("mc_mcp_path") || "")
const [active, setActive] = useState("cline") const [active, setActive] = useState("kilo")
const [copied, setCopied] = useState<"model" | "memory" | null>(null) const [copied, setCopied] = useState<"model" | "memory" | null>(null)
const params = new URLSearchParams({ host }) const params = new URLSearchParams({ host })