-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.example.toml
More file actions
146 lines (116 loc) · 4.22 KB
/
config.example.toml
File metadata and controls
146 lines (116 loc) · 4.22 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# Threshold Configuration Example
# Copy this to ~/.threshold/config.toml and customize
# Optional: Override default data directory (~/.threshold)
# data_dir = "/path/to/custom/data"
# Optional: Set log level (trace, debug, info, warn, error)
# Can also be set via RUST_LOG environment variable
log_level = "info"
# Secret storage backend: "file" (default) or "keychain"
# - file: stores secrets in <data_dir>/secrets.toml (chmod 600)
# - keychain: uses OS keychain (macOS Keychain, Windows Credential Manager)
# secret_backend = "file"
# ── Claude CLI Configuration ──
[cli.claude]
# Optional: Claude CLI command (defaults to "claude")
# command = "claude"
# Optional: Default model (sonnet, opus, haiku)
model = "sonnet"
# Maximum time for a single Claude invocation (seconds).
# 0 = no timeout. Default: 21600 (6 hours).
# timeout_seconds = 21600
# Optional: Skip permission prompts (use with caution!)
# skip_permissions = false
# Enable immediate acknowledgment via Haiku when a message is received.
# The bot will send a brief "got it" message within 1-2 seconds.
# Default: true.
# ack_enabled = true
# Interval for live status updates during processing (seconds).
# A single Discord message is periodically edited with Haiku-summarized progress.
# 0 = disabled. Default: 30.
# status_interval_seconds = 30
# Optional: Extra CLI flags to pass
# extra_flags = ["--some-flag"]
# ── Discord Configuration ──
[discord]
# Your Discord server (guild) ID
# Right-click server in Discord → Copy Server ID (Developer Mode must be enabled)
guild_id = 1234567890123456789
# List of allowed user IDs (only these users can interact with the bot)
# Right-click user in Discord → Copy User ID
allowed_user_ids = [
1234567890123456789, # Your Discord user ID
# Add more user IDs as needed
]
# Note: Discord bot token is stored in the secret store or DISCORD_BOT_TOKEN env var
# Set via web UI at /config/credentials, or run: ./scripts/setup-discord-token.sh
# ── Agent Configurations ──
# Default agent (used for General conversation)
[[agents]]
id = "default"
name = "Default Assistant"
cli_provider = "claude"
# Optional: Override model for this agent
# model = "sonnet"
# Optional: Custom system prompt
# system_prompt = "You are a helpful assistant."
# Optional: System prompt from file
# system_prompt_file = "~/.threshold/prompts/default.txt"
# Optional: Tool profile (see below)
# tools = "minimal"
# Coding agent (used for /coding conversations)
[[agents]]
id = "coder"
name = "Coding Assistant"
cli_provider = "claude"
model = "sonnet"
system_prompt = "You are an expert software engineer. Focus on writing clean, maintainable code."
tools = "full"
# Research agent (used for /research conversations)
[[agents]]
id = "researcher"
name = "Research Assistant"
cli_provider = "claude"
model = "sonnet"
system_prompt = "You are a research assistant. Provide thorough, well-sourced information."
tools = "full"
# ── Tool Configurations ──
[tools]
# Global permission mode for tools
# Options: "full-auto", "approve-destructive", "approve-all"
# - full-auto: Allow all tool calls without prompting
# - approve-destructive: Prompt only for destructive operations
# - approve-all: Prompt for all tool calls
permission_mode = "approve-all"
# Browser tool configuration
[tools.browser]
enabled = true
# Optional: Run headless (default: true)
# headless = true
# Optional: Allowed origins (whitelist)
# allowed_origins = ["https://example.com"]
# Optional: Blocked origins (blacklist)
# blocked_origins = ["https://malicious.com"]
# Gmail tool configuration
[tools.gmail]
enabled = false
# Optional: Specific inboxes to access
# inboxes = ["INBOX", "work"]
# Optional: Allow sending emails (default: false)
# allow_send = false
# Image generation tool
[tools.image_gen]
enabled = true
# ── Heartbeat Configuration ──
# Per-conversation heartbeats are managed via /heartbeat enable in Discord.
# This section provides defaults for new heartbeats.
# [heartbeat]
# default_interval_minutes = 30
# ── Web Interface Configuration ──
[web]
enabled = true
# bind = "127.0.0.1" # Loopback only — no auth exists
# port = 3000
# ── Scheduler Configuration ──
# [scheduler]
# enabled = true
# store_path = "~/.threshold/state/schedules.json"