設定ファイルの仕様
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
設定ファイルの明示的指定(オーバーライド)
コマンドライン引数または環境変数で特定の設定ファイルパスを指定できます。
- コマンドライン引数 (
-config):lopiq -config /path/to/custom-config.json - 環境変数 (
LOPIQ_CONFIG_PATH):※ ローカル開発時(export LOPIQ_CONFIG_PATH=/path/to/custom-config.jsonmake 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)。 |