コンテンツにスキップ

設定ファイルの仕様

LoPiQ の設定は JSON 形式で保存されます。Web UI の設定ダイアログ(⚙️)から変更可能ですが、直接編集することもできます。


📂 設定ファイルの保存場所と指定方法

LoPiQ はユーザー設定(待受ポート、画像ルートディレクトリ、カスタムアクション、パスワード、AI設定等)を OS 標準のユーザー設定ディレクトリに安全に保存します(パーミッション 0600、ディレクトリ 0700)。

各 OS でのデフォルト保存場所

  • Linux: ~/.config/lopiq/config.json ($XDG_CONFIG_HOME/lopiq/config.json)
  • macOS: ~/Library/Application Support/lopiq/config.json

設定ファイルの明示的指定(オーバーライド)

コマンドライン引数または環境変数で特定の設定ファイルパスを指定できます。

  1. コマンドライン引数 (-config):
    lopiq -config /path/to/custom-config.json
    
  2. 環境変数 (LOPIQ_CONFIG_PATH):
    export LOPIQ_CONFIG_PATH=/path/to/custom-config.json
    
    ※ ローカル開発時(make run)は、実環境の設定に影響を与えないよう -config ./config.json が自動的に指定されます。

📝 設定例 (config.json)

{
  "port": 13180,
  "root_dirs": [
    "/Users/username/Pictures/sample-photos",
    "/mnt/nas/images"
  ],
  "password": "",
  "actions": [
    {
      "name": "ゴミ箱へ移動",
      "icon": "🗑️",
      "command": "trash \"{file}\"",
      "confirm": false,
      "reload": false
    }
  ],
  "folder_actions": [
    {
      "name": "PNG全削除",
      "icon": "🗑️",
      "color": "#d00b0b",
      "command": "rm -f *.png",
      "confirm": true,
      "reload": true
    }
  ],
  "preset_actions": {
    "rotate": {
      "enabled": true,
      "confirm": false
    },
    "webp": {
      "enabled": true,
      "confirm": false,
      "quality": 85,
      "lossless": false
    },
    "download": {
      "enabled": true,
      "confirm": false
    },
    "clipboard": {
      "enabled": true,
      "confirm": false
    },
    "delete": {
      "enabled": true,
      "confirm": true
    }
  },
  "ai_providers": [
    {
      "id": "provider-1",
      "name": "Gemini agy CLI",
      "type": "agy",
      "cli_path": "agy",
      "cli_model": ""
    },
    {
      "id": "provider-2",
      "name": "OpenAI Codex CLI",
      "type": "codex",
      "cli_path": "codex",
      "cli_model": ""
    },
    {
      "id": "provider-3",
      "name": "OpenAI API",
      "type": "openai",
      "api_key": "sk-...",
      "model": "gpt-4o-mini",
      "base_url": "https://api.openai.com/v1"
    },
    {
      "id": "provider-4",
      "name": "Local LLM",
      "type": "openai_compat",
      "base_url": "http://localhost:1234/v1",
      "model": ""
    }
  ],
  "active_provider_id": "provider-1"
}

⚙️ 主要パラメータ一覧

フィールド 型 デフォルト 説明
port 整数 13180 HTTP サーバーの待機ポート番号。
root_dirs 文字列配列 [] 登録された画像ルートディレクトリの絶対パス一覧。ドット(.)で始まる隠しディレクトリ(例: ~/.config/photos)も指定できます。
password 文字列 "" 簡易認証用パスワード。空文字列の場合は認証無効。
actions オブジェクト配列 [] 個別画像向けカスタムアクション定義(最大3つ。削除・回転・WebP変換等は標準ボタンとして実装されているため自由な用途に使用可能)。
folder_actions オブジェクト配列 [] フォルダ全体向けアクション定義(最大3つ)。
preset_actions オブジェクト { rotate: {enabled:true, confirm:false}, webp: {enabled:true, confirm:false, quality:85, lossless:false}, download: {enabled:true, confirm:false}, clipboard: {enabled:true, confirm:false}, delete: {enabled:true, confirm:true} } 標準アクション(画像回転、WebP変換、ダウンロード、クリップボード、削除)の有効化・確認設定。
ai_providers オブジェクト配列 [] AI プロバイダプロファイル一覧(agy, codex, openai, openai_compat, custom)。
active_provider_id 文字列 "" 現在アクティブに選択されている AI プロバイダの ID。
openai_api_key 文字列 "" (後方互換用) OpenAI API キー。
openai_model 文字列 "gpt-5.6-luna" (後方互換用) OpenAI モデル名。
delete_mode 文字列 "trash" 削除時の挙動("trash": OSゴミ箱へ移動, "permanent": ディスクから完全消去)。

📥 プリセットアクションオブジェクトの仕様

preset_actions オブジェクトには、LoPiQ 標準搭載の5つのアクション(rotate, webp, download, clipboard, delete)の設定が含まれます。各フィールドは以下のプロパティを持ちます。

フィールド 型 デフォルト 説明
enabled 真偽値 true アクションボタンの表示およびショートカットキーの有効/無効。
confirm 真偽値 false(削除のみ true) 実行前に確認モーダルダイアログを表示するかどうか。false にすると即座に処理が実行されます。
quality 整数 85 (webp 専用) WebP 圧縮品質(1〜100)。
lossless 真偽値 false (webp 専用) 可逆圧縮 (Lossless) モードにするかどうか。true の場合は品質設定はスキップされます。
  • preset_actions.rotate: 画像回転機能(時計回り90°回転、ショートカット r)。Pure Go で元画像を安全に上書き更新します。
  • preset_actions.webp: WebP変換機能(ショートカット w)。Pure Go で元画像を保護したまま別名(basename.webp、重複時は _1.webp 等)で保存します。
  • preset_actions.download: 画像ダウンロード機能(ショートカット d)。
  • preset_actions.clipboard: クリップボードへの画像コピー機能(ショートカット c)。
  • preset_actions.delete: 画像のゴミ箱移動/完全削除機能(ショートカット Delete / Backspace)。confirm を false に設定すると、確認なしで即座に削除して次の画像を表示する高速選別モードになります。

🤖 AI プロバイダプロファイルの仕様

ai_providers 配列内の各プロファイルオブジェクトで設定可能な項目です。

フィールド 型 説明
id 文字列 プロファイルのユニーク識別子。
name 文字列 UI上に表示されるプロバイダ名。
type 文字列 プロバイダ種別 (agy, codex, openai, openai_compat, custom)。
cli_path 文字列 CLI 実行コマンド名またはフルパス (例: agy, codex, /opt/homebrew/bin/agy)。
cli_model 文字列 CLI 実行時に渡すモデル名(省略時は空文字でデフォルト)。
api_key 文字列 API キー(OpenAI API 等)。ローカル保存され、UI上ではマスク表示。
model 文字列 API 経由時に使用するモデル名 (例: gpt-4o-mini, llama3.2)。
base_url 文字列 API エンドポイント URL (例: https://api.openai.com/v1, http://localhost:1234/v1)。
custom_command 文字列 カスタム実行コマンド (例: my-cli --prompt "{prompt}" )。

⚡ アクションオブジェクトの仕様

actions および folder_actions 配列内の各オブジェクトで設定可能な項目です。

フィールド 型 デフォルト 説明
name 文字列 "" ボタンに表示されるアクション名。
icon 文字列 "" 表示用絵文字アイコン(例: 🗑️, 🔄, ✨)。
command 文字列 "" 実行するシェルコマンド。画像アクション({file}, {dir}等)およびフォルダアクション({dir}, {folder}, {name}, {parent}等)でプレースホルダーが利用可能。実行時は ~/.pyenv/shims や ~/.local/bin, /opt/homebrew/bin などの主要な開発ツールパスが自動的に補完されます。
confirm 真偽値 false 実行前にブラウザ上で確認ダイアログを表示するかどうか。
reload 真偽値 false コマンド実行後にフォルダ表示をリロードするかどうか。
color 文字列 "" ボタンのカスタム背景色(HEXカラーコード。例: #d00b0b)。