yuke Docs
Overview

Configuration

Where yuke keeps its config, and what one file may set.

Location

yuke reads its config from this directory.

Unix $XDG_CONFIG_HOME/yuke (~/.config/yuke)
Windows %APPDATA%\yuke

Set YUKE_APPNAME to change the directory leaf. That keeps a second profile beside the first.

index.js

One file configures yuke: index.js in the directory above. It is optional — with no file, yuke runs on its defaults. The same file loads under both frontends, the TUI and --rpc, so a plugin written once works in either.

Settings are JavaScript, not JSON. Import from the bare name yuke and export the result of defineConfig. An unknown key throws. yuke never ignores one.

// index.js
import { defineConfig } from "yuke";

export default defineConfig({
  systemPrompt: "Answer in British English.",
  mouse: { scrollLines: 5 },
});

A fault in index.js is a warning, not a stop: yuke reports it and runs on without your plugins.

Options

Every field is optional. defineConfig({}) keeps the defaults.

Key Default Meaning
systemPrompt null The prompt for sessions that supply none. Null matches the engine.
agents.maxConcurrent 8 How many agents may run at once.
mouse.scrollLines 3 Screen lines per wheel step, the same in every widget.
mouse.copyOnSelect true A drag that ends copies the selection.
keymap.chordMs 1000 The longest wait in milliseconds for the next stroke of a chord.

Tools, commands and plugins

The same yuke facade registers a tool the model may call, a command for the palette, and a plugin. The Modules page lists what else a config may import.

// index.js
import { commands, tools } from "yuke";
import "./plugins/vim.js";

commands.define({
  name: "reload-catalog",
  title: "Reload catalog",
  description: "Re-read the provider catalog from disk.",
  run: () => {},
});