メインコンテンツまでスキップ

設定リファレンス

このドキュメントでは、Elftia のすべての設定可能なオプションを機能ドメイン別にまとめています。


環境変数

フロントエンド (Vite / VITE_*)

フロントエンドの環境変数は VITE_ プレフィックス付きで公開され、React コード内では import.meta.env からアクセスできます。

変数デフォルト説明
VITE_APP_TITLEstring'Elftia'アプリケーションのタイトル
VITE_DEV_PORTnumber5375Vite Dev Server のポート

バックエンド (Main Process)

変数デフォルト説明
LOG_LEVELstring'info'ログレベル (debug / info / warn / error)
NODE_ENVstring'development'ランタイム環境
ELECTRON_IS_DEVstring'1'開発モードで実行しているかどうか

アプリ設定 (AppPreferences)

window.api.appPreferences 経由で読み書きします。SQLite データベースに保存されます。

フィールドデフォルト説明
sendByCtrlEnterbooleanfalseCtrl+Enter でメッセージを送信する
autoScrollToBottombooleantrue新しいメッセージで末尾まで自動スクロールする
showThinkingbooleantrueモデルの思考プロセスを表示する
autoExpandToolsbooleanfalseツール呼び出しの詳細を自動展開する
showRawParametersbooleanfalseツール呼び出しの生パラメータを表示する

テーマ設定 (Theme)

window.api.theme 経由で読み書きします。完全な状態構造は次のとおりです。

モード

フィールドデフォルト説明
mode'light' | 'dark' | 'system''system'テーマモード

ユーザーカスタムテーマ (UserTheme)

フィールド説明
colorsRecord<string, string>カスタムカラートークンの上書き
fonts{ ui?: string; code?: string; display?: string }カスタムフォント

カスタム CSS

フィールドデフォルト説明
customCssstring''ユーザーが注入するカスタム CSS

壁紙

壁紙関連のすべてのフィールドは ThemePreferencesSchema (packages/desktop/app/main/services/platform/config/store/configSchema.ts) にあり、config.theme に保存され、IPC theme:setWallpaperPreferences 経由で部分更新されます。ソース定義は packages/desktop/app/shared/contracts/settings-types.ts → ThemePreferences を参照してください。

壁紙ソース (画像 / グラデーション)

フィールドデフォルト説明
wallpaper{ light?: string; dark?: string }{}画像壁紙ソース。file://wallpaper:// プロトコル、data: URL、または許可リスト内の https:// URL をサポート
wallpaperGradient{ stops: string[1..4]; angle?: number 0..360 }null1–4 色の線形グラデーション。wallpaper より優先され、有効化すると画像が一時的に非表示になる
disableWallpaperInCompactWindowsbooleanfalseコンパクトウィンドウ (Mini/Selection) で壁紙を無効化する
wallpaperOverlayEnabledbooleanfalse半透明サーフェスを有効化する (壁紙モードにより適している)

フロストガラスとオーバーレイ

フィールド範囲デフォルト説明
wallpaperBlurIntensitynumber0–306フロストガラスのぼかし量 (px)
wallpaperDimmingnumber0–10070全体オーバーレイの不透明度 %
wallpaperDimmingHuenumber0–3600オーバーレイの HSL 色相 (hex カラーピッカーからデコード)
wallpaperDimmingSaturationnumber0–1000オーバーレイの HSL 彩度 %
wallpaperDimmingLightnessnumber-1–100-1オーバーレイの HSL 明度 %。-1 = 自動 (ライトモードでは白、ダークモードでは黒)。0–100 = 手動
wallpaperDimmingGradientWallpaperGradient | nullnullグラデーションオーバーレイ。有効化すると上記の HSL を上書きするが、wallpaperDimming は引き続き全体の不透明度を制御する

要素の背景ティント (サイドバー / カード / タブなどの半透明サーフェス)

フィールドデフォルト説明
wallpaperElementTintstring (#RRGGBB または '')''要素サーフェスのティント。空文字列 = テーマのデフォルト (暖かいクリーム / 暖かいチャコール) を使用
wallpaperElementGradientWallpaperGradient | nullnull要素グラデーション。単色ティントを上書きし、各階層は独自の alpha を保持する

メッセージバブル (ユーザー / アシスタントを個別に設定)

フィールドデフォルト説明
wallpaperBubbleOverridebooleanfalseマスタースイッチ: true = バブルは下記の独立フィールドを使用する。false = バブルは要素背景設定 (色 + デフォルト不透明度) に従う
wallpaperBubbleTintUserstring (#RRGGBB または '')''ユーザーバブルの単色。override がオンのとき有効
wallpaperBubbleTintAssistantstring (#RRGGBB または '')''アシスタントバブルの単色。override がオンのとき有効
wallpaperBubbleGradientUserWallpaperGradient | nullnullユーザーバブルのグラデーション。この側の単色を上書きする
wallpaperBubbleGradientAssistantWallpaperGradient | nullnullアシスタントバブルのグラデーション。この側の単色を上書きする
wallpaperBubbleOpacitynumber 0–10035バブル塗りつぶしの alpha。override がオンのときのみ有効

要素全体の不透明度

フィールド範囲デフォルト説明
wallpaperElementOpacitynumber0–1000実験的: 半透明 UI 全体を不透明方向へ近づける
wallpaperTransparencynumber0–100100サーフェスティント強度係数 (0 = 完全に透明なサーフェス、100 = デフォルト alpha)

Hex / グラデーション検証

  • Hex フィールド (wallpaperElementTint / wallpaperBubbleTint*) の Zod 正規表現: /^(#[0-9a-fA-F]{6})?$/ (空文字列または #RRGGBB)。
  • WallpaperGradient.stops は 1–4 個の文字列を要求します。バックエンドの ThemeService.setWallpaperPreferences も空文字列の stop を破棄し、配列を 4 項目に切り詰めます。
  • グラデーションフィールドの IPC ペイロードでは、null = クリア、キーの省略 = 現在値を維持。バックエンドは 'wallpaperDimmingGradient' in patch でこれらを区別します。

優先順位 (レンダリング時の上書き順)

wallpaperGradient > wallpaper.{light,dark} // main wallpaper source
wallpaperDimmingGradient > wallpaperDimming{Hue,Saturation,Lightness} // overlay color
wallpaperElementGradient > wallpaperElementTint // element tint
wallpaperBubbleGradient{User,Assistant} > wallpaperBubbleTint{User,Assistant} // bubble color (only when override is on)

wallpaperBubbleOverride=false の場合、下流の data-wp-bubble-override 属性は body に書き込まれず、CSS は「バブルが要素ティントを継承する」ルールへフォールバックします。


LLM 設定

プロバイダー (ProviderConfig)

各 LLM プロバイダーの設定構造:

フィールド説明
idstring一意の識別子
namestring表示名
typestringプロバイダー種別 (openai / anthropic / google / deepseek など)
apiKeystringAPI キー (バックエンドに保存され、IPC 経由では送信されない)
baseUrlstring?カスタム API エンドポイント
modelsModel[]利用可能なモデル一覧
enabledboolean有効かどうか

グローバルモデルパラメータ (GlobalModelParameters)

フィールド範囲デフォルト説明
temperaturenumber0 - 2プロバイダーのデフォルト生成温度
maxTokensnumber1 - モデル上限プロバイダーのデフォルト最大出力トークン数
topPnumber0 - 1プロバイダーのデフォルトTop-P サンプリング
topKnumber1 - 100プロバイダーのデフォルトTop-K サンプリング (一部プロバイダー)
frequencyPenaltynumber-2 - 20頻度ペナルティ
presencePenaltynumber-2 - 20存在ペナルティ

API キープール (ApiKeyEntry)

各キーエントリの設定:

フィールドデフォルト説明
idstring自動生成一意のキー識別子
providerIdstring-所有元プロバイダー ID
labelstring?-キーのラベル
apiKeystring-キー値 (暗号化保存)
weightnumber1重み (1–100)。ラウンドロビン分配確率に影響する
enabledbooleantrue有効かどうか

キープールの動作:

  • Weighted Round-Robin を使用してキーを分配する
  • セッションアフィニティ: 同じセッションでは同じキーを優先的に使用する
  • 429/529 レスポンスでは自動的に次のキーへ切り替える
  • 指数バックオフによるクールダウン: 60 秒 → 2 分 → 5 分 → 15 分

Agent 設定

TinyElf エンジンのデフォルト

フィールドデフォルト説明
maxIterationsnumber40最大イテレーション数
temperaturenumber0.1生成温度
maxTokensnumber8192最大出力トークン数
toolResultMaxCharsnumber50000ツール結果の最大文字数

Claude SDK Engine

フィールド説明
permissionModestring権限モード (ask / auto-approve / deny)
maxTurnsnumber最大会話ターン数
systemPromptAppendstring?システムプロンプトに追加する内容

セキュリティ設定

GuardianAgent

フィールド説明
mode'off' | 'monitor' | 'enforce'動作モード
allowedCommandsstring[]実行可能なコマンドの許可リスト
blockedPathsstring[]アクセスをブロックするパスパターン

PromptGuardian

フィールド説明
mode'off' | 'warn' | 'block'動作モード

RateLimiter

フィールドデフォルト説明
maxRequestsPerMinutenumber601 分あたりの最大リクエスト数
maxTokensPerMinutenumber1000001 分あたりの最大トークン数

MCP 設定 (McpServerConfig)

各 MCP サーバーの設定構造:

フィールド説明
idstring一意の識別子
namestring表示名
transport'stdio' | 'sse' | 'streamable-http'トランスポートプロトコル
commandstring?起動コマンド (stdio モード)
argsstring[]?コマンド引数 (stdio モード)
envRecord<string, string>?環境変数 (stdio モード)
urlstring?サーバー URL (sse / streamable-http モード)
enabledboolean有効かどうか
autoConnectbooleanアプリ起動時に自動接続する

Cron スケジュールタスク

スケジュール設定

フィールド説明
schedulestringCron 式 (5/6 フィールド形式)
timezonestring?タイムゾーン識別子 (例: Asia/Tokyo)
enabledboolean有効かどうか

アクション種別

種別説明
agent-run指定した Agent を実行する
channel-checkChannel メッセージを確認する
custom-scriptカスタムスクリプトを実行する

Channel 設定

トリガーモード

モード説明
mention@メンションされた場合のみ応答する
keywordキーワードが含まれている場合に応答する
allすべてのメッセージに応答する

プラットフォーム別メッセージ長制限

プラットフォーム最大文字数
Discord2000
Telegram4096
Slack40000
Custom Webhook無制限

CSS 変数 (Tailwind トークン)

packages/renderer/src/app/index.css で定義され、Tailwind 設定経由でユーティリティクラスにマッピングされます。

カラートークン

CSS 変数Tailwind クラス説明
--backgroundbg-backgroundページのメイン背景
--foregroundtext-foreground主要テキスト色
--surface-0bg-surface-0L0 レイヤー背景
--surface-1bg-surface-1L1 レイヤー背景 (カード/サイドバー)
--surface-2bg-surface-2L2 レイヤー背景 (入力/セカンダリコンテナ)
--surface-3bg-surface-3L3 レイヤー背景 (ポップオーバー)
--text-strongtext-foreground主要見出し、本文テキスト (93% brightness)
--text-mutedtext-muted-foregroundセカンダリテキスト (65% brightness)
--text-subtletext-text-subtle補助ヒント (50% brightness)
--primarybg-primary / text-primaryテーマ色
--secondarybg-secondaryセカンダリ色
--destructivetext-destructiveエラー/破壊的操作の色
--successtext-success成功色
--warningtext-warning警告色
--borderborder-borderボーダー色
--ringring-ringフォーカスリング色
--mutedbg-muted抑制背景
--accentbg-accentアクセント背景
--popoverbg-popoverポップオーバー背景
--cardbg-cardカード背景

フォント

CSS 変数Tailwind クラスフォント
--font-sansfont-sansInter, system-ui
--font-monofont-monoJetBrains Mono, monospace
--font-displayfont-displayNoto Serif, Georgia, serif
--font-uifont-uiユーザーがカスタマイズした UI フォント
--font-codefont-codeユーザーがカスタマイズしたコードフォント

ボーダー半径

CSS 変数Tailwind クラス
--radiusrounded-lg0.5rem (8px)
-rounded-md0.375rem (6px)
-rounded-sm0.25rem (4px)
-rounded-xl0.75rem (12px)

ファイル設定 (ConfigStore)

window.api.config 経由で読み書きします。ホットリロード対応の JSON ファイルに保存されます。

設定が変更されると、メインプロセスは config:changed チャンネル経由でフロントエンドへ通知します。

一般的な設定キー

キー説明
magiMagiConfigMagi/Claw Agent 設定
magi.promptVersion'v1' | 'v2' | 'v3' | 'v4'プロンプトビルドバージョン
cronCronConfigCron スケジュールタスク設定
channelChannelConfigChannel メッセージング設定
securitySecurityConfigセキュリティ制御設定
ヒント

完全な設定ファイルパスは window.api.config.getPath() で取得できます。