1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# wez-sidebar configuration
# Copy to ~/.config/wez-sidebar/config.toml and customize.
# All values are optional; defaults are used when omitted.
# WezTerm binary path (full path recommended).
# When wez-sidebar is launched directly by WezTerm (without a shell),
# `which wezterm` may fail due to limited PATH. Set the full path explicitly.
= "/opt/homebrew/bin/wezterm"
# Session stale threshold in minutes (default: 30)
# stale_threshold_mins = 30
# Data directory for sessions.json (default: ~/.config/wez-sidebar)
# data_dir = "~/.config/wez-sidebar"
# --------------------------------------------------------------------------
# Hook command
# --------------------------------------------------------------------------
# By default, wez-sidebar uses its built-in hook handler to manage
# sessions.json. Set hook_command to delegate to an external program instead.
#
# hook_command = "my-custom-tool hook"
#
# Hook setup in ~/.claude/settings.json:
# "hooks": {
# "PreToolUse": [{ "command": "~/.cargo/bin/wez-sidebar hook PreToolUse" }],
# "PostToolUse": [{ "command": "~/.cargo/bin/wez-sidebar hook PostToolUse" }],
# "Notification": [{ "command": "~/.cargo/bin/wez-sidebar hook Notification" }],
# "Stop": [{ "command": "~/.cargo/bin/wez-sidebar hook Stop" }],
# "UserPromptSubmit": [{ "command": "~/.cargo/bin/wez-sidebar hook UserPromptSubmit" }]
# }
# --------------------------------------------------------------------------
# Tasks
# --------------------------------------------------------------------------
# Path to a tasks JSON file. If omitted, the Tasks panel is hidden.
# Manage tasks via CLI: wez-sidebar task add/done/list
# The CLI uses ~/.config/wez-sidebar/tasks.json by default even without this setting.
#
# tasks_file = "~/.config/wez-sidebar/tasks.json"
#
# Task file format:
# {
# "tasks": [
# { "id": "1", "title": "Task name", "status": "pending", "priority": 1, "due_on": "2026-03-10" }
# ]
# }
# status: "pending" | "in_progress" | "completed"
# priority: 1 (high) | 2 (medium) | 3 (low)
# --------------------------------------------------------------------------
# REST API (optional)
# --------------------------------------------------------------------------
# If set, tasks are fetched from GET {api_url}/api/tasks/cache
# with tasks_file as fallback.
#
# api_url = "http://localhost:3000"
# --------------------------------------------------------------------------
# Desktop Notifications (macOS)
# --------------------------------------------------------------------------
# When a Claude Code session enters "waiting_input" (permission prompt),
# a desktop notification is sent via terminal-notifier.
#
# Install: brew install terminal-notifier
#
# - Clicking the notification body → focuses the WezTerm pane
# - Clicking "承認" (approve) → focuses the pane + sends Enter (approves)
# - If terminal-notifier is not installed, notifications are silently skipped.