Harbor Boost Configuration
September 6, 2026 ยท View on GitHub
Harbor Boost is configured using environment variables. Following options are available:
HARBOR_OPENAI_URLS
Type:
StrList
Default: (empty)
An alias for HARBOR_BOOST_OPENAI_URLS.
HARBOR_OPENAI_KEYS
Type:
StrList
Default: (empty)
An alias for HARBOR_BOOST_OPENAI_KEYS.
HARBOR_BOOST_OPENAI_URLS
Type:
StrList
Default: (empty)
A semicolon-separated list of URLs to the OpenAI APIs to boost.
Prefer using named APIs via HARBOR_BOOST_OPENAI_URL_* and HARBOR_BOOST_OPENAI_KEY_* instead.
Must index-match contents of HARBOR_BOOST_OPENAI_KEYS.
Example:
HARBOR_OPENAI_URLS=https://localhost:11434/v1;https://localhost:8080/v1
HARBOR_BOOST_OPENAI_KEYS
Type:
StrList
Default: (empty)
A semicolon-separated list of API keys to use for the OpenAI APIs to boost.
Prefer using named APIs via HARBOR_BOOST_OPENAI_URL_* and HARBOR_BOOST_OPENAI_KEY_* instead.
Must index-match contents of HARBOR_BOOST_OPENAI_URLS.
Example:
HARBOR_OPENAI_KEYS=sk-abc123;sk-def456
HARBOR_BOOST_OPENAI_URL_*
Type:
str
Default: (empty)
Named OpenAI-compatible API URLs to boost.
* means multiple variables can be defined with arbitrary postfix.
Example:
HARBOR_BOOST_OPENAI_URL_OLLAMA=https://localhost:11434/v1
HARBOR_BOOST_OPENAI_KEY_OLLAMA=sk-ollama123
HARBOR_BOOST_OPENAI_URL_HF=https://api-inference.huggingface.co/v1
HARBOR_BOOST_OPENAI_KEY_HF=sk-hf456
HARBOR_BOOST_OPENAI_KEY_*
Type:
str
Default: (empty)
Example:
HARBOR_BOOST_OPENAI_URL_OLLAMA=https://localhost:11434/v1
HARBOR_BOOST_OPENAI_KEY_OLLAMA=sk-ollama123
HARBOR_BOOST_OPENAI_URL_HF=https://api-inference.huggingface.co/v1
HARBOR_BOOST_OPENAI_KEY_HF=sk-hf456
HARBOR_MINIMAX_API_KEY
Type:
str
Default: (empty)
MiniMax API key. When set, the MiniMax OpenAI-compatible endpoint (https://api.minimax.io/v1) is automatically registered as a boost backend with MiniMax-M3 (default), MiniMax-M2.7, and MiniMax-M2.7-highspeed.
HARBOR_BOOST_EXTRA_LLM_PARAMS
Type:
ConfigDict
Default: (empty)
Allows to specify extra payload for /chat/completions endpoints for all downstream services at once.
Format is key=value,key2=value2,....
Example:
HARBOR_BOOST_EXTRA_LLM_PARAMS=temperature=0.35,top_p=0.9
# Be careful using provider-specific parameters
HARBOR_BOOST_EXTRA_LLM_PARAMS=temperature=0.12,max_ctx=8192
HARBOR_BOOST_MODULES
Type:
StrList
Default:all
A list of boost modules that will be advertised by /v1/models endpoint.
All loaded modules can still be used directly, this configuration only affects
which modules are advertised in the API.
Supports all value to enable all modules.
Example:
# Serve all modules
HARBOR_BOOST_MODULES=all
# Only serve klmbr and rcn modules
HARBOR_BOOST_MODULES=klmbr;rcn
When using with Harbor, you can configure this via Harbor CLI:
# Enable the module
harbor boost modules add <module>
# Disable the module
harbor boost modules rm <module>
# List enabled modules
harbor boost modules ls
Note that new Harbor releases might introduce new modules, so the default value of this setting could change in the future. Check out Harbor Profiles for a way to save and restore your configuration.
HARBOR_BOOST_MODULE_FOLDERS
Type:
StrList
Default:modules;custom_modules
A list of folders to load boost modules from.
You can mount custom modules to the /boost/custom_modules or a custom location and use this configuration to load them.
Example:
# Load from default locations
HARBOR_BOOST_MODULE_FOLDERS=modules;custom_modules
# Disable all built-in modules and load only custom ones
HARBOR_BOOST_MODULE_FOLDERS=/some/custom/path
HARBOR_BOOST_WORKFLOWS
Type:
str
Default: (empty)
JSON or shorthand workflow definitions served by Harbor Boost. For larger
workflow sets, prefer HARBOR_BOOST_WORKFLOWS_FILE.
JSON object form:
{
"research": {
"name": "Research Agent",
"description": "Answers with live web tools",
"modules": [
{"module": "system", "config": {"prompt": "Use tools before answering."}},
{"module": "tools", "config": {"tools": ["web_search", "read_url"]}},
{"module": "final"}
]
}
}
JSON list form:
[{"id": "research", "modules": ["tools", "final"]}]
Shorthand form:
HARBOR_BOOST_WORKFLOWS=research=tools,final;careful=tools,g1
Workflow IDs become model prefixes, for example research-llama3.2.
IDs may contain letters, numbers, underscores, dots, and dashes.
HARBOR_BOOST_WORKFLOWS_FILE
Type:
str
Default:/boost/workflows.yaml
Optional YAML or JSON file containing workflow definitions. YAML files may use
a direct mapping/list or a top-level workflows:/agents: mapping.
Example:
workflows:
research:
name: Research Agent
description: Answers with live web tools
modules:
- module: system
config:
prompt: Use tools before answering.
- module: tools
config:
tools:
- web_search
- read_url
- module: final
When the default path is used, Boost checks /boost/workflows.yaml,
/boost/workflows.yml, and /boost/workflows.json in that order. Inline
workflow definitions override file definitions with the same ID.
HARBOR_BOOST_INTERMEDIATE_OUTPUT
Type:
bool
Default:true
When set to true, the boost output the intermediate steps of the module, not only the final result, providing more dynamic feedback to the user.
Intermediate output includes status messages, internal monologue, and other non-final completions. Note that it doesn't mean "all output" from the module, as the module source can still decide to not emit specific things at all, or inverse - emit them even if this setting is off.
Example of the intermediate output from the g1 module - underlying reasoning steps:

HARBOR_BOOST_STATUS_STYLE
Type:
str
Default:md:codeblock
A module can call llm.emit_status during its processing, which will be streamed as a "status" or "progress" message to the user. This setting controls the format of this message, which will be dependent on what's supported by the frontend where boost response is displayed.
Options:
md:codeblock "
```boost
{status}
```
",
md:h1 "
# {status}
",
md:h2 "
## {status}
",
md:h3 "
### {status}
",
plain "
{status}
",
none ""
The default is md:codeblock and looks like this in the WebUI:

HARBOR_BOOST_BASE_MODELS
Type:
bool
Default:false
Depending on the configuration of your setup, your LLM backend might or might not be connected to the UI directly. If not (or using boost as a standalone service), you can toggle this option on for the boost to serve them as is.
# Now "unboosted" models will also be available
# via the boost API
harbor config boost.base_models true
HARBOR_BOOST_MODEL_FILTER
Type:
ConfigDict
Default: (empty)
When specified, boost will only serve models matching the filter. The filter is a key/value expression that'll be matched against the model metadata. See examples below:
# Only boost models with the "llama" in the name
harbor config set boost.model_filter id.contains=llama
# Only boost models matching the regex
harbor config set boost.model_filter id.regex=.+q8_0$
# Boost by regex matching multiple IDs
harbor config set boost.model_filter "id.regex=.*(llama3.1:8b|llama3.2:3b|qwen2.5:7b)"
# Only boost a model with the exact ID
harbor config set boost.model_filter id=llama3.1:8b
This filter runs after the boosted models (per module) are added, so you can filter them out as well.
HARBOR_BOOST_API_KEY
Type:
str
Default: (empty)
By default, boost will accept and serve any request, but you can configure one or more API keys to restrict access to the service.
Example:
# Configure the API key
HARBOR_BOOST_API_KEY=sk-boost
# Send the API key in the header
# Authorization: sk-boost
HARBOR_BOOST_API_KEYS
Type:
StrList
Default: (empty)
A colon-separated list of API keys to use for the boost API. Counterpart to HARBOR_BOOST_API_KEY.
Example:
# Configure the API keys
HARBOR_BOOST_API_KEYS=sk-user1;sk-user2;sk-user3
HARBOR_BOOST_API_KEY_*
Type:
str
Default: (empty)
Allows specifying additional, "named" API keys that will be accepted by the boost API.
Example:
# Configure the API keys
HARBOR_BOOST_API_KEY_MAIN=sk-main
# Temporary API key for testing
HARBOR_BOOST_API_KEY_TEST=sk-test
HARBOR_BOOST_PUBLIC_URL
Type:
str
Default:http://localhost:34131
URL which boost artifacts should use to access the boost API
HARBOR_BOOST_TOOLS
Type:
StrList
Default:web_search;read_url;current_time;add_note;read_notes;write_file;read_file;list_files;delete_file;clear_files;finish
The request-scoped utility tools registered by the tools Boost module.
Tool names are semicolon-separated. Unknown names are ignored with a warning.
Example:
HARBOR_BOOST_TOOLS=web_search;read_url;current_time
HARBOR_BOOST_TOOLS_SEARCH_MAX_RESULTS
Type:
int
Default:5
Maximum number of web search results returned by the tools module.
HARBOR_BOOST_TOOLS_READ_MAX_CHARS
Type:
int
Default:20000
Maximum number of characters returned by the read_url tool.
HARBOR_BOOST_RESEARCH_NOTES_MAX_CHARS
Type:
int
Default:4000
Maximum number of characters stored per note on a research brief when fetch adds search or read failure messages.
HARBOR_BOOST_RESEARCH_FETCH_TIMEOUT_SECONDS
Type:
int
Default:30
HTTP timeout, in seconds, for web_search and read_url outbound requests.
HARBOR_BOOST_TOOLS_FILE_MAX_CHARS
Type:
int
Default:100000
Maximum file size, in characters, accepted by the scratch file tools.
HARBOR_BOOST_CODEMODE_TIMEOUT
Type:
int
Default:30
Maximum wall time, in seconds, for a single execute_code program in the codemode module. The sandbox process is killed when it expires.
HARBOR_BOOST_CODEMODE_MAX_OUTPUT
Type:
int
Default:8000
Maximum number of characters of program output returned to the model by the codemode module. Zero or a negative value falls back to the default.
HARBOR_BOOST_CODEMODE_MAX_CALLS
Type:
int
Default:50
Maximum number of hidden tool calls a single codemode program may make. Further calls are rejected with an error inside the program.
HARBOR_BOOST_TAVILY_API_KEY
Type:
str
Default: (empty)
Tavily API key used by the web_search tool. When set, Tavily is preferred over SearXNG.
HARBOR_BOOST_SEARXNG_URL
Type:
str
Default:http://searxng:8080
SearXNG base URL used by the web_search tool when Tavily is not configured.
HARBOR_BOOST_SEARXNG_QUERY_PARAMS
Type:
str
Default: (empty)
Extra URL query parameters appended to SearXNG web search requests.
HARBOR_BOOST_JINA_READER_API_URL
Type:
str
Default:https://r.jina.ai
Jina Reader API base URL used by the read_url tool before falling back to direct HTTP.
HARBOR_BOOST_JINA_READER_API_KEY
Type:
str
Default: (empty)
Optional Jina Reader API key used by the read_url tool.
HARBOR_BOOST_WORKSPACE_ROOT
Type:
str
Default: (empty)
Root directory for workspace file reads and writes by agentic Boost modules and
the read_workspace_file, grep_workspace, list_workspace_files,
git_diff_workspace (git repos), and opt-in write_workspace_file tools. When
unset, workspace file tools are disabled.
In Harbor Compose, bind-mount a host folder with HARBOR_BOOST_WORKSPACE (or
harbor volumes add boost <host>:/workspace) and set this to the in-container
mount point, typically /workspace.
Example:
HARBOR_BOOST_WORKSPACE=/path/to/myproject
HARBOR_BOOST_WORKSPACE_ROOT=/workspace
HARBOR_BOOST_WORKSPACE_FILE_MAX_CHARS
Type:
int
Default:100000
Maximum number of characters returned by read_workspace_file and accepted by write_workspace_file.
HARBOR_BOOST_WORKSPACE_GREP_MAX_MATCHES
Type:
int
Default:50
Maximum number of matches returned by grep_workspace.
HARBOR_BOOST_WORKSPACE_LIST_MAX_ENTRIES
Type:
int
Default:200
Maximum number of file paths returned by list_workspace_files.
HARBOR_BOOST_DEBUG
Type:
bool
Default:false
When true, agentic workflows emit a compact debug metrics summary before the final completion. Overridable per request via @boost_debug.
HARBOR_BOOST_QUICKHOP_MAX_SEARCHES
Type:
int
Default:2
Maximum web searches performed by the quickhop research module.
HARBOR_BOOST_QUICKHOP_MAX_URL_READS
Type:
int
Default:1
Maximum full-page URL reads performed by the quickhop research module.
HARBOR_BOOST_QUICKHOP_MAX_CHARS
Type:
int
Default:30000
Maximum research content characters retained by the quickhop module.
HARBOR_BOOST_QUICKHOP_MAX_QUERIES
Type:
int
Default:3
Maximum search queries extracted by the quickhop research module.
HARBOR_BOOST_QUICKHOP_TRIGGER
Type:
str
Default:heuristic
How quickhop decides whether to run web research: heuristic (keyword/question rules) or llm (cheap yes/no classifier). Module-prefixed requests always research regardless of mode.
HARBOR_BOOST_QUICKHOP_CACHE_BRIEF
Type:
bool
Default:false
When true, quickhop caches the last research brief in request state and reuses it when the same user question is seen again within the session. Experimental.
HARBOR_BOOST_DEEPHOP_MAX_QUERIES
Type:
int
Default:5
Maximum search queries planned by the deephop research module.
HARBOR_BOOST_DEEPHOP_MAX_SEARCHES
Type:
int
Default:4
Maximum web searches performed by the deephop research module.
HARBOR_BOOST_DEEPHOP_MAX_URL_READS
Type:
int
Default:3
Maximum full-page URL reads performed by the deephop research module.
HARBOR_BOOST_DEEPHOP_MAX_CHARS
Type:
int
Default:60000
Maximum research content characters retained by the deephop module.
HARBOR_BOOST_DEEPHOP_EARLY_EXIT_CHARS
Type:
int
Default:15000
When the first deephop research hop gathers at least this many characters, skip the second hop. Set to 0 to disable early exit.
HARBOR_BOOST_DEEPHOP_SYNTHESIS_MAX_CHARS
Type:
int
Default:8000
Maximum characters of gathered research passed to the deephop synthesis step. Set to 0 to disable truncation.
HARBOR_BOOST_DEEPHOP_TRIGGER
Type:
str
Default:heuristic
How deephop decides whether to run deep two-hop research: heuristic (migration/version/API keyword rules) or llm (cheap yes/no classifier). Module-prefixed requests always research when they carry research signals.
HARBOR_BOOST_DEEPHOP_CACHE_BRIEF
Type:
bool
Default:false
When true, deephop caches the last research brief in request state and reuses it when the same user question is seen again within the session. Experimental.
HARBOR_BOOST_CAVEMAN_LEVEL
Type:
str
Default:full
Default terse-output level for the caveman style module: lite, full, ultra, wenyan-lite, wenyan-full, wenyan-ultra, or off.
HARBOR_BOOST_PONYTAIL_LEVEL
Type:
str
Default:full
Default YAGNI build-discipline level for the ponytail style module: lite, full, ultra, or off.
HARBOR_BOOST_AUTOCHECK_ENABLED
Type:
bool
Default:true
When false, the autocheck module passes through without auditing.
HARBOR_BOOST_AUTOCHECK_MAX_PASSES
Type:
int
Default:1
Maximum audit-and-revise passes performed by the autocheck module.
HARBOR_BOOST_AUTOCHECK_MAX_WORKSPACE_FILES
Type:
int
Default:5
Maximum workspace files the autocheck module may read per request.
HARBOR_BOOST_AUTOCHECK_WORKSPACE_FILE_MAX_CHARS
Type:
int
Default:50000
Maximum characters read from each workspace file during autocheck audits.
HARBOR_BOOST_AUTOCHECK_SHOW_AUDIT
Type:
bool
Default:false
When true, the autocheck module appends an audit footer to the final answer and emits an HTML findings summary artifact. Overridable per request via @boost_show_audit.
HARBOR_BOOST_AUTOCHECK_MAX_REVISE_PASSES
Type:
int
Default:1
Maximum revise passes performed by the autocheck module after an audit requests changes. Values above 2 are clamped to 2. When HARBOR_BOOST_AUTOCHECK_STRICT is true, autocheck allows one additional revise pass (still capped at 2 total).
HARBOR_BOOST_AUTOCHECK_STRICT
Type:
bool
Default:false
When true, the autocheck module allows one extra revise pass (see HARBOR_BOOST_AUTOCHECK_MAX_REVISE_PASSES) and prepends a warning banner to the final answer when critical or major audit findings remain after all revise passes.
HARBOR_BOOST_AUTOCHECK_AUDIT_MODEL
Type:
str
Default: (empty)
Model used for the autocheck structured audit sub-call. When empty, autocheck uses the same model as the incoming request.
HARBOR_BOOST_AUTOCHECK_DRAFT_MODEL
Type:
str
Default: (empty)
Model used for the autocheck draft sub-call. When empty, autocheck uses the same model as the incoming request.
HARBOR_BOOST_AUTOCHECK_REVISE_MODEL
Type:
str
Default: (empty)
Model used for the autocheck revise sub-call. When empty, autocheck uses the same model as the incoming request.
HARBOR_BOOST_DIFFSCOPE_ENABLED
Type:
bool
Default:true
When false, the diffscope module passes through without scope checks.
HARBOR_BOOST_DIFFSCOPE_MAX_USER_TURNS
Type:
int
Default:5
Recent user messages scanned by diffscope for scope hints.
HARBOR_BOOST_DIFFSCOPE_MAX_WORKSPACE_FILES
Type:
int
Default:5
Maximum workspace files diffscope verifies per request.
HARBOR_BOOST_DIFFSCOPE_ALLOW_COLLATERAL
Type:
bool
Default:true
When true, files outside hinted scope only warn unless the user said only X. When false, any out-of-scope file triggers a scope revision.
HARBOR_BOOST_KLMBR_PERCENTAGE
Type:
int
Default:15
The percentage of text to modify with the klmbr module
HARBOR_BOOST_KLMBR_MODS
Type:
StrList
Default:all
The list of modifications klmbr will apply
HARBOR_BOOST_KLMBR_STRAT
Type:
str
Default:all
The strategy that selects messages to modify for the klmbr module
HARBOR_BOOST_KLMBR_STRAT_PARAMS
Type:
ConfigDict
Default: (empty)
The parameters for the strategy that selects messages to modify for the klmbr module
HARBOR_BOOST_RCN_STRAT
Type:
str
Default:match
The strategy that selects messages to modify for the rcn module
HARBOR_BOOST_RCN_STRAT_PARAMS
Type:
ConfigDict
Default:role=user,index=-1
Parameters for rcn message selection
HARBOR_BOOST_G1_STRAT
Type:
str
Default:match
The strategy that selects messages to modify for the g1 module
HARBOR_BOOST_G1_STRAT_PARAMS
Type:
ConfigDict
Default:role=user,index=-1
Parameters for g1 message selection
HARBOR_BOOST_G1_MAX_STEPS
Type:
int
Default:15
The maximum number of reasoning steps to generate
HARBOR_BOOST_MCTS_STRAT
Type:
str
Default:match
The strategy that selects messages to target for the mcts module
HARBOR_BOOST_MCTS_STRAT_PARAMS
Type:
ConfigDict
Default:role=user,index=-1
Parameters for mcts message selection
HARBOR_BOOST_MCTS_MAX_SIMULATIONS
Type:
int
Default:2
The maximum number of simulations to run (per iteration)
HARBOR_BOOST_MCTS_MAX_ITERATIONS
Type:
int
Default:2
The maximum number of iterations to run
HARBOR_BOOST_MCTS_THOUGHTS
Type:
int
Default:2
The amount of thoughts (node expansions) to generate per simulation
HARBOR_BOOST_MCTS_EXPLORATION_CONSTANT
Type:
float
Default:1.414
The exploration constant for the MCTS algorithm
HARBOR_BOOST_ELI5_STRAT
Type:
str
Default:match
The strategy that selects messages to target for the eli5 module
HARBOR_BOOST_ELI5_STRAT_PARAMS
Type:
ConfigDict
Default:role=user,index=-1
Parameters for eli5 message selection
HARBOR_BOOST_SUPERSUMMER_STRAT
Type:
str
Default:match
The strategy that selects messages to target for the supersummer module
HARBOR_BOOST_SUPERSUMMER_STRAT_PARAMS
Type:
ConfigDict
Default:role=user,index=-1
Parameters for supersummer message selection
HARBOR_BOOST_SUPERSUMMER_NUM_QUESTIONS
Type:
int
Default:5
The number of questions to generate for the summarisation
HARBOR_BOOST_SUPERSUMMER_LENGTH
Type:
str
Default:few paragraphs
Desired length of the summary
HARBOR_BOOST_R0_THOUGHTS
Type:
int
Default:5
The amount of thoughts to generate for the r0 module
HARBOR_BOOST_RESPONSES_API
Type:
bool
Default:true
When enabled, Boost exposes an OpenAI Responses API-compatible endpoint at
/v1/responses. Incoming Responses API-format requests are converted to
OpenAI Chat Completions format, routed through the normal Boost pipeline,
and responses are converted back to Responses API format (including
streaming SSE). This allows OpenAI SDK clients using the Responses API to
use Boost as a drop-in backend.
harbor config set boost.responses_api true
HARBOR_BOOST_ANTHROPIC_COMPAT
Type:
bool
Default:true
When enabled, Boost exposes an Anthropic-compatible Messages API at
/v1/messages and /v1/messages/count_tokens. Incoming Anthropic-format
requests are converted to OpenAI format, routed through the normal Boost
pipeline, and responses are converted back to Anthropic format (including
streaming SSE). This allows Anthropic SDK clients to use Boost as a drop-in
backend.
harbor config set boost.anthropic_compat true