- Include detailed architecture overview in `docs/architecture.md`. - Add `docs/configuration.md`, detailing configuration file structure and settings. - Provide a step-by-step provider implementation guide in `docs/provider-implementation.md`. - Add frequently asked questions (FAQ) document in `docs/faq.md`. - Create `docs/migration-guide.md` for future breaking changes and version upgrades. - Introduce new examples in `examples/` showcasing basic chat, custom providers, and theming. - Add a changelog (`CHANGELOG.md`) for tracking significant changes. - Provide contribution guidelines (`CONTRIBUTING.md`) and a Code of Conduct (`CODE_OF_CONDUCT.md`).
4.5 KiB
Owlen Configuration
Owlen uses a TOML file for configuration, allowing you to customize its behavior to your liking. This document details all the available options.
File Location
By default, Owlen looks for its configuration file at ~/.config/owlen/config.toml.
A default configuration file is created on the first run if one doesn't exist.
Configuration Precedence
Configuration values are resolved in the following order:
- Defaults: The application has hard-coded default values for all settings.
- Configuration File: Any values set in
config.tomlwill override the defaults. - Command-Line Arguments / In-App Changes: Any settings changed during runtime (e.g., via the
:themeor:modelcommands) will override the configuration file for the current session. Some of these changes (like theme and model) are automatically saved back to the configuration file.
General Settings ([general])
These settings control the core behavior of the application.
-
default_provider(string, default:"ollama") The name of the provider to use by default. -
default_model(string, optional, default:"llama3.2:latest") The default model to use for new conversations. -
enable_streaming(boolean, default:true) Whether to stream responses from the provider by default. -
project_context_file(string, optional, default:"OWLEN.md") Path to a file whose content will be automatically injected as a system prompt. This is useful for providing project-specific context. -
model_cache_ttl_secs(integer, default:60) Time-to-live in seconds for the cached list of available models.
UI Settings ([ui])
These settings customize the look and feel of the terminal interface.
-
theme(string, default:"default_dark") The name of the theme to use. See the Theming Guide for available themes. -
word_wrap(boolean, default:true) Whether to wrap long lines in the chat view. -
max_history_lines(integer, default:2000) The maximum number of lines to keep in the scrollback buffer for the chat history. -
show_role_labels(boolean, default:true) Whether to show theuserandbotrole labels next to messages. -
wrap_column(integer, default:100) The column at which to wrap text ifword_wrapis enabled.
Storage Settings ([storage])
These settings control how conversations are saved and loaded.
-
conversation_dir(string, optional, default: platform-specific) The directory where conversation sessions are saved. If not set, a default directory is used:- Linux:
~/.local/share/owlen/sessions - Windows:
%APPDATA%\owlen\sessions - macOS:
~/Library/Application Support/owlen/sessions
- Linux:
-
auto_save_sessions(boolean, default:true) Whether to automatically save the session when the application exits. -
max_saved_sessions(integer, default:25) The maximum number of saved sessions to keep. -
session_timeout_minutes(integer, default:120) The number of minutes of inactivity before a session is considered for auto-saving as a new session. -
generate_descriptions(boolean, default:true) Whether to automatically generate a short summary of a conversation when saving it.
Input Settings ([input])
These settings control the behavior of the text input area.
-
multiline(boolean, default:true) Whether to allow multi-line input. -
history_size(integer, default:100) The number of sent messages to keep in the input history (accessible withCtrl-Up/Down). -
tab_width(integer, default:4) The number of spaces to insert when theTabkey is pressed. -
confirm_send(boolean, default:false) If true, requires an additional confirmation before sending a message.
Provider Settings ([providers])
This section contains a table for each provider you want to configure. The key is the provider name (e.g., ollama).
[providers.ollama]
provider_type = "ollama"
base_url = "http://localhost:11434"
# api_key = "..."
-
provider_type(string, required) The type of the provider. Currently, only"ollama"is built-in. -
base_url(string, optional) The base URL of the provider's API. -
api_key(string, optional) The API key to use for authentication, if required. -
extra(table, optional) Any additional, provider-specific parameters can be added here.