Script for easily configuring, using, switching and comparing local offline coding models
at main 45 lines 1.5 kB view raw
1import { log } from "../log.js"; 2import { writeConfig } from "../util.js"; 3import { 4 AIDER_CONFIG_FILE, 5 AIDER_ENV_FILE, 6 OPENCODE_CONFIG_FILE, 7 PI_MODELS_FILE, 8 PI_SETTINGS_FILE, 9 CODEX_CONFIG_FILE, 10} from "../config.js"; 11import { getActiveChatModel, getActiveTui } from "../runtime-config.js"; 12import { aiderConfig, aiderEnv } from "../templates/aider.js"; 13import { opencodeConfig } from "../templates/opencode.js"; 14import { piModelsConfig, piSettingsConfig } from "../templates/pi.js"; 15import { codexConfig } from "../templates/codex.js"; 16 17export async function writeTuiConfig(): Promise<void> { 18 const chatModel = getActiveChatModel(); 19 const tui = getActiveTui(); 20 21 // Always write all configs so switching TUIs doesn't require re-running setup 22 await writeConfig(AIDER_CONFIG_FILE, aiderConfig(chatModel.id)); 23 await writeConfig(AIDER_ENV_FILE, aiderEnv()); 24 log(`Aider config written to ${AIDER_CONFIG_FILE}`); 25 26 await writeConfig( 27 OPENCODE_CONFIG_FILE, 28 opencodeConfig(chatModel.id, chatModel.name), 29 ); 30 log(`OpenCode config written to ${OPENCODE_CONFIG_FILE}`); 31 32 await writeConfig( 33 PI_MODELS_FILE, 34 piModelsConfig(chatModel.id, chatModel.name), 35 ); 36 await writeConfig(PI_SETTINGS_FILE, piSettingsConfig()); 37 log(`Pi config written to ${PI_MODELS_FILE}`); 38 39 await writeConfig(CODEX_CONFIG_FILE, codexConfig(chatModel.id)); 40 log(`Codex config written to ${CODEX_CONFIG_FILE}`); 41 42 // Goose and gptme are configured via env vars at launch time (no config files needed) 43 44 log(`Active TUI: ${tui.name}`); 45}