Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
98 lines (85 loc) · 4.46 KB
/
Copy path.env.example
File metadata and controls
98 lines (85 loc) · 4.46 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
# fren environment. Copy to `.env` at the repo root. Everything is optional in dev.
# API keys are used by the LOCAL GATEWAY only — they never reach the desktop app,
# which deletes them from its own environment at startup.
#
# Set ONE of these. If both are present, DeepSeek wins.
# DeepSeek: https://platform.deepseek.com (key looks like sk-...)
DEEPSEEK_API_KEY=
# Anthropic: https://console.anthropic.com (key looks like sk-ant-...)
# Optional if you are logged in via `ant auth login` (the SDK picks up the profile).
ANTHROPIC_API_KEY=
# Which model to use. Leave EMPTY to let the chosen provider pick its own
# default (deepseek-chat, or claude-haiku-4-5). Only set this to override —
# and make sure the name matches the provider you're actually using.
FREN_MODEL=
# Force the provider: "deepseek", "anthropic", or "mock". Leave empty to pick
# automatically from whichever key is set (DeepSeek first), falling back to the
# offline mock when there is no key at all.
FREN_LLM_PROVIDER=
# Shared secret between desktop app and gateway (dev default: dev-token).
FREN_GATEWAY_TOKEN=
# Where the desktop app finds the gateway (dev default: http://127.0.0.1:4519).
FREN_GATEWAY_URL=
# --------------------------------------------------------------- VISION ----
# Only used when you press the eye button to have fren look at your screen.
# Everything else stays on the text provider above — vision is chosen
# SEPARATELY, so a vision key does not change which model answers your chat.
#
# DeepSeek's chat models cannot see images, so without one of these the eye
# button stays hidden rather than guessing about a picture it never received.
#
# Any OpenAI-compatible vision endpoint works. Describing a screenshot is not
# work worth frontier prices, and the gap is large — roughly:
#
# qwen-vl-plus (Alibaba DashScope) ~$0.40 / M input
# glm-4v (Zhipu) comparable
# claude-haiku-4-5 (Anthropic) $1.00 / M input, $5.00 / M output
#
# Leave these empty and fren falls back to ANTHROPIC_API_KEY if you have one.
FREN_VISION_API_KEY=
# Defaults to Alibaba DashScope's OpenAI-compatible endpoint.
FREN_VISION_BASE_URL=
# Defaults to qwen-vl-plus. Others: glm-4v, moonshot-v1-8k-vision-preview,
# or any OpenRouter vision model.
FREN_VISION_MODEL=
# ---------------------------------------------------------------- VOICE ----
# fren speaks with ElevenLabs. Optional — without a key it stays silent and
# replies in text only. The reply TEXT is what crosses the network here.
# https://elevenlabs.io -> Profile -> API key
ELEVENLABS_API_KEY=
# Voice and model are configurable because ElevenLabs revises these IDs.
# If a request 404s, set them here rather than editing code.
ELEVENLABS_VOICE_ID=
ELEVENLABS_MODEL=
# Delivery, 0..1. Lower stability is more expressive but wobblier; higher is
# calmer and more consistent. Style adds exaggeration (0 is usually best).
ELEVENLABS_STABILITY=
ELEVENLABS_SIMILARITY=
ELEVENLABS_STYLE=
# ---------------------------------------------------- SECURE EXECUTION ----
# Where fren runs anything that ACTS for you (agent chat with tools, scheduled
# automations): the vendored runtime host in isolated containers. Build it once
# with `npm run runtime:build` and have Docker Desktop running; fren's settings
# say what is missing otherwise. `nanoclaw` forces it, `mock` runs nothing
# (development/demos), empty = auto (the host when built, else mock).
FREN_RUNTIME=
# The model an agent inside the environment talks to, through fren's own proxy
# so no key ever enters a container. Empty = auto: Anthropic if an Anthropic
# key/token is set, else DeepSeek's Anthropic-compatible endpoint (deepseek-chat).
FREN_SANDBOX_UPSTREAM=
# Override the model name the environment is told to use (rarely needed).
# A model chosen in fren's settings pane wins over this while it is set, as
# long as the environment talks to the same provider as the rest of fren.
FREN_SANDBOX_MODEL=
# The proxy's port (default 4527); containers reach it at host.docker.internal.
FREN_SANDBOX_PORT=
# fren LISTENS locally: push-to-talk audio is transcribed by whisper.cpp on
# this machine and never leaves it. Install with: brew install whisper-cpp
# then download a model, e.g.
# mkdir -p ~/.cache/whisper.cpp && curl -L -o ~/.cache/whisper.cpp/ggml-base.en.bin \
# https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.en.bin
# Both are auto-detected; set them only to override.
FREN_WHISPER_BIN=
FREN_WHISPER_MODEL=
# Spoken language, or "auto" (default).
FREN_WHISPER_LANG=