Skip to content

Configuration

Paulus1337 edited this page Jul 28, 2026 · 2 revisions

Configuration

One file: ~/.openphoenix/config.toml. First flight writes it; edit any time. Everything below is optional except the provider.

[provider]
kind = "anthropic"                 # anthropic|openai|openrouter|google|nvidia|groq|mistral|deepseek|ollama
model = "claude-sonnet-5"
fallbacks = ["openrouter/deepseek/deepseek-chat"]
# api_key via env var; [provider.keys] holds per-provider key rings

[agent]
workspace = "~/phoenix"            # file tools stay inside here
sessions = true                    # remember chats between restarts
thinking = "off"                   # off|low|medium|high
stream = false
# lean = "off"                     # off|lean|grunt
# compact_after = 0                # squash history past N messages, 0 = automatic only

[security]
confirm_shell = true               # ask before running shell commands
approvals = true                   # serve mode: queue commands for /approve
# allow_outside_workspace = false  # let file tools leave the workspace
# audit_log = true                 # append a JSONL record of every action
# deny_commands = []               # extra regexes refused on top of built-ins

[telegram]
token = "..."
allowed_chat_ids = ["111111111"]

[irc]
server = "irc.libera.chat"         # port 6697 TLS by default
nick = "myphoenix"
channels = ["#mychannel"]
allowed_nicks = ["yournick"]

[matrix]
homeserver = "https://matrix.org"
token = "..."
user_id = "@you:matrix.org"
allowed_users = ["@you:matrix.org"]

[mattermost]
url = "https://mm.example.com"
token = "..."
allowed_users = ["you"]

[http]                             # web UI + APIs: see Web-UI
[memory]                           # embeddings for smarter recall
[audio]                            # voice transcription
[media]                            # image/video/music generation
[[jobs]]                           # cron, see below

Whatever you skip stays off. phoenix doctor reviews the result and names any key it does not recognise, so a typo never fails silently.

Scheduled jobs

The key is cron, not schedule:

[[jobs]]
name = "morning-brief"
cron = "0 7 * * *"
prompt = "Summarize the TODO file in my workspace."
# chat_ids = []                    # deliver only to these chats
# webhook = ""                     # POST the result here instead

Check them with phoenix jobs, which validates every schedule.

Clone this wiki locally