Files
macos-configuration/serena_config.yml
Trevi Awater 2c89b8f169 Refresh configs, add update.fish, rewrite README as setup runbook
- Re-dump brewfile (adds postgresql@16, tree; drops typeit4me)
- Refresh claude-settings.json, hosts, and serena_config.yml from machine
- Add update.fish to actualise the copied configs in one go
- Rewrite README as a complete ordered fresh-machine setup guide

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MN5eka2MuNJP9uCMdTda75
2026-09-07 19:08:42 +02:00

215 lines
12 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# the language backend to use for code understanding and manipulation.
# Possible values are:
# * LSP: Use the language server protocol (LSP), spawning freely available language servers
# via the SolidLSP library that is part of Serena.
# * JetBrains: Use the Serena plugin in your JetBrains IDE.
# (requires the plugin to be installed and the project being worked on to be open
# in your IDE).
language_backend: LSP
# line ending convention to use when writing source files.
# Possible values: "lf" (Unix), "crlf" (Windows), "native" (platform default).
# Note that Serena's own files (e.g. memories and configuration files) always use native line endings.
# This setting can be overridden on a per-project basis in project.yml files.
line_ending: native
# whether to open a graphical window with Serena's logs.
# This is mainly supported on Windows and (partly) on Linux; not available on macOS.
# If you prefer a browser-based tool, use the `web_dashboard` option instead.
# Further information: https://oraios.github.io/serena/02-usage/060_dashboard.html
#
# Being able to inspect logs is useful both for troubleshooting and for monitoring the tool calls,
# especially when using the agno playground, since the tool calls are not always shown,
# and the input params are never shown in the agno UI.
# When used as MCP server for Claude Desktop, the logs are primarily for troubleshooting.
# Note: unfortunately, the various entities starting the Serena server or agent do so in
# mysterious ways, often starting multiple instances of the process without shutting down
# previous instances. This can lead to multiple log windows being opened, and only the last
# window being updated. Since we can't control how agno or Claude Desktop start Serena,
# we have to live with this limitation for now.
gui_log_window: false
# whether to start the Serena Dashboard, which provides detailed information on your Serena session,
# the current configuration and furthermore allows some settings to be conveniently modified on the fly.
# We strongly recommend to always enable this option!
# If you want to prevent the Dashboard window from being opened on launch,
# set `web_dashboard_open_on_launch` to false (see below).
# Further information: https://oraios.github.io/serena/02-usage/060_dashboard.html
web_dashboard: true
# the address the web dashboard will listen on (bind address).
web_dashboard_listen_address: 127.0.0.1
# whether to open the Dashboard window/browser tab when Serena starts (provided that `web_dashboard` is enabled).
# If set to false, you can still open the dashboard manually:
# * When using an interface that supports a tray icon (see setting `web_dashboard_interface`),
# you can conveniently open the dashboard from the system tray.
# * When using the `browser` interface (no tray icon), so you can only open the dashboard by
# a) telling the LLM to "open the dashboard" (provided that the open_dashboard tool is enabled) or by
# b) manually navigating to http://localhost:24282/dashboard/ in your web browser (actual port
# may be higher if you have multiple instances running; try ports 24283, 24284, etc.)
# Further information: https://oraios.github.io/serena/02-usage/060_dashboard.html
web_dashboard_open_on_launch: false
jetbrains_plugin_server_address: 127.0.0.1
# the minimum log level for the GUI log window and the dashboard (10 = debug, 20 = info, 30 = warning, 40 = error)
log_level: 20
# whether to trace the communication between Serena and the language servers.
# This is useful for debugging language server issues.
trace_lsp_communication: false
# advanced configuration option allowing to configure language server-specific options.
# Maps the language key to the options.
# Have a look at the docstring of the constructors of the LS implementations within solidlsp (e.g., for C# or PHP) to see which options are available.
# No documentation on options means no options are available.
ls_specific_settings: {}
# list of paths to ignore across all projects.
# Same syntax as gitignore, so you can use * and **.
# These patterns are merged additively with each project's own ignored_paths.
# Quote patterns that start with `*`, e.g. `"**/bin/**"`.
ignored_paths: []
# list of regex patterns which, when matched, mark a memory entry as readonly.
# For example, "global/.*" will mark all global memories as read-only.
# You can extend the list on a per-project basis in the project.yml configuration file.
read_only_memory_patterns: []
# timeout, in seconds, after which tool executions are terminated
tool_timeout: 240
# list of tools to be globally excluded
excluded_tools: []
# list of optional tools (which are disabled by default) to be included
included_optional_tools: []
# fixed set of tools to use as the base tool set (if non-empty), replacing Serena's default set of tools.
# This cannot be combined with non-empty excluded_tools or included_optional_tools.
fixed_tools: []
# list of mode names to that are always to be included in the set of active modes.
# The full set of modes to be activated is base_modes + default_modes + added_modes,
# where added_modes can be defined by projects/CLI parameters.
# If this is undefined/empty, no base modes are included.
# See https://oraios.github.io/serena/02-usage/050_configuration.html#modes
base_modes:
default_modes:
- interactive
- editing
# Used as default for tools where the apply method has a default maximal answer length.
# Even though the value of the max_answer_chars can be changed when calling the tool, it may make sense to adjust this default
# through the global configuration.
default_max_tool_answer_chars: 150000
# the name of the token count estimator to use for tool usage statistics.
# See the `RegisteredTokenCountEstimator` enum for available options.
#
# By default, a very naive character count estimator is used, which simply counts the number of characters.
# You can configure this to TIKTOKEN_GPT4O to use a local tiktoken-based estimator for GPT-4o (will download tiktoken
# data files on first run), or ANTHROPIC_CLAUDE_SONNET_4 which will use the (free of cost) Anthropic API to
# estimate the token count using the Claude Sonnet 4 tokenizer.
token_count_estimator: CHAR_COUNT
# time budget (seconds) per tool call for the retrieval of additional symbol information
# such as docstrings or parameter information.
# (currently only used by LSP-based tools).
# If the budget is exceeded, Serena stops issuing further retrieval requests
# and returns partial info results.
# 0 disables the budget (no early stopping). Negative values are invalid.
# This is an advanced setting that can help alleviate problems with LSP servers
# that have a slow implementation of request_hover (clangd is one of those)
# or with tool calls that find very many symbols.
# Can be overridden in project.yml.
symbol_info_budget: 10
# template for the location of the per-project .serena data folder (memories, caches, etc.).
# Supports the following placeholders:
# $projectDir - the absolute path to the project root directory
# $projectFolderName - the name of the project directory
# Default: "$projectDir/.serena" (data stored inside the project directory)
# Example for a central location: "/projects-metadata/$projectFolderName/.serena"
project_serena_folder_location: "$projectDir/.serena"
# the list of registered project paths (updated automatically).
projects:
- /Users/trevi/Repositories/personal/xamarin-neo4j
# list of regex patterns for memories to completely ignore.
# Matching memories will not appear in list_memories or activate_project output
# and cannot be accessed via read_memory or write_memory.
# To access ignored memory files, use the read_file tool on the raw file path.
# This is useful for projects with large numbers of archived memory files.
# You can extend the list on a per-project basis in the project.yml configuration file.
# Example: ["_archive/.*", "_episodes/.*"]
ignored_memory_patterns: []
# defines the interface (application mode) used for the web dashboard (if enabled).
# If empty/null, use platform-dependent default. Otherwise, possible values:
# * browser: the dashboard is opened in the default browser (if `web_dashboard_open_on_launch` is true)
# This is supported on all platforms.
# * app: the dashboard is opened in a separate native-like app window with accompanying tray icon, whose
# lifecycle is tied to the Serena process.
# If `web_dashboard_open_on_launch` is false, the dashboard can be conveniently accessed via the tray icon.
# This is supported on Windows and macOS, but note that on macOS, where tray icons are very visible,
# this may result in too many icons being displayed when using multi-agent setups.
# * tray_manager: use a global tray icon to provide access to the dashboards of all running Serena instances,
# opening the dashboard in browser tabs when selected from the tray menu.
# This is EXPERIMENTAL. It is tested on Windows only. We will establish macOS support, but it is yet untested.
# On Linux, this cannot be universally supported, but it may work in some desktop environments.
# On NixOS, when using the package from flake.nix, both modern AppIndicator trays as well as
# older Xorg-/XEmbed-based trays should be supported.
# See https://oraios.github.io/serena/02-usage/060_dashboard.html
web_dashboard_interface:
# trusted hosts used to access the web dashboard.
# By default, only allow access via local addresses for security reasons.
# If you want to allow access from remote machines, add the hostname used to access the dashboard to this list.
# If the list is empty/undefined, all hosts are trusted.
web_dashboard_trusted_hosts:
- 127.0.0.1
- localhost
# command used to launch a JetBrains IDE on demand (only relevant when using the JetBrains language backend)
# If this is non-empty and, at project activation, the Serena JetBrains Plugin server instance corresponding
# to the project is not found, use this command to spawn a new instance.
# Specifically, if this is <cmd>, then `<cmd> <projectDir>` is launched.
# Provide the full path to the executable/script (e.g., "/usr/bin/idea" or "C:/Users/bob/AppData/Local/JetBrains/Toolbox/scripts/idea.cmd").
jetbrains_launch_command:
# list of glob patterns for project root directories that are considered trusted.
# Some project settings will only be applied if the project is trusted.
# A glob pattern can contain the following:
# * matches any sequence of characters except path separators
# ** matches any sequence of characters including path separators
# ? matches any single character except path separators
# [abc] matches any single character in the set (here: a, b, or c)
# Path separators are normalised internally, so on Windows, both / and \ can be used in the patterns.
# Example:
# trusted_project_path_patterns:
# - /home/user/projects/**
# - C:\Users\Anna\Dev\work\**
# The pattern "**" matches any project path, so it can be used to trust all projects.
trusted_project_path_patterns:
- '**'
# mapping from language server keys to integer priority values (higher = more preferred), which determine
# language server selection during automatic project creation and are used to break ties when multiple
# language servers match an equal number of source files.
# The priority values override Serena's default priorities:
# * 0 = experimental or secondary language servers, which are never auto-detected
# (e.g. `python_*` and `php_*` are "secondary"; also applies to non-programming languages like `json`)
# * 1 = supersets of other languages, which shall be preferred only if they match more files
# (e.g. `vue` and `svelte`, which are supersets of `typescript`)
# * 2 = default priority
# Example:
# ls_priorities:
# python: 0
# python_basedpyright: 3
# This example would achieve that `python_basedpyright` becomes the preferred language server for Python,
# giving it a high priority of 3, while the default Python language server is fully excluded from
# auto-detection with priority 0.
ls_priorities: