Chrysalis

Settings file

Server settings live in config.yaml, a text file created on first start with a note on every line. Account settings, like model connections, live in the app under Settings.

#Where it is

Installconfig.yaml and the data folder
Windows%LOCALAPPDATA%\Chrysalis
macOS~/Library/Application Support/Chrysalis
Linux~/.local/share/chrysalis
Dockerthe /chrysalis volume
From sourcethe repository folder
Androidinside the app

Run chrysalis paths to print both locations. Admins also see them at the bottom of Settings > Server.

#Portable copy

Put a config.yaml next to the chrysalis program and Chrysalis keeps its settings and data in that folder instead, for example on a USB drive. Updates keep both in place.

#Editing it

Edit the file with any text editor while Chrysalis is stopped, then start it again. Admins can change most settings in Settings > Server instead, which applies them right away and saves back to the file. You can also ask the agent, for example "let my phone connect": it shows exactly what will change and waits for you to approve.

A misspelled or invalid setting does not stop Chrysalis from starting. It prints a warning that names the setting and uses the default.

#Every setting

# Folder for accounts, apps, chats and keys. Relative paths start next to
# this file. Move the folder while Chrysalis is stopped.
dataRoot: "./data"

# Port Chrysalis listens on.
port: 8788

# Let other devices (your phone, a tablet, another computer) open Chrysalis.
#   false  only this computer
#   true   any device that can reach this computer; every account still
#          needs its password
lan: false

# Network interface to use when lan is true. "auto" means all of them.
listenAddress: "auto"

# Extra host names that may open Chrysalis, such as a local DNS name or a
# Tailscale machine name. IP addresses and this computer's own name always work.
allowedHosts: []

# Serve over HTTPS. Phones only allow the microphone, installing as an app
# and some other features over HTTPS. Paths start next to this file.
ssl:
  enabled: false
  certPath: "./certs/cert.pem"
  keyPath: "./certs/key.pem"

# Open Chrysalis in your browser when it starts (desktop only).
openBrowser: true

apps:
  # Let apps download their npm packages. Package install scripts never run.
  packageDownloads: true
  # Where the Store's list of apps comes from. false turns the Store off.
  store: "https://raw.githubusercontent.com/ProjectChrysalis/app-store/main/apps.json"

agent:
  # The agent's command shell. It runs inside your browser tab, never on
  # this computer.
  shell: true
  # Longest a single shell command may run, in seconds (5 to 3600).
  shellTimeoutSeconds: 120

# Model the agent uses when an account has not chosen one, as
# "provider/model". null picks the first available model.
defaultModel: null

The defaults above are what a new file starts with; your file may differ.

#For one run only

Every setting also works as an environment variable or a command-line flag. Those apply to that run only and are shown as locked in Settings > Server.

SettingEnvironment variableFlag
dataRootCHRYSALIS_DATA_ROOT--data-root
portCHRYSALIS_PORT--port
lanCHRYSALIS_LAN--lan
listenAddressCHRYSALIS_LISTEN_ADDRESS--listen-address
allowedHostsCHRYSALIS_ALLOWED_HOSTS--allowed-hosts
ssl.enabledCHRYSALIS_SSL_ENABLED--ssl.enabled
ssl.certPathCHRYSALIS_SSL_CERT_PATH--ssl.cert-path
ssl.keyPathCHRYSALIS_SSL_KEY_PATH--ssl.key-path
openBrowserCHRYSALIS_OPEN_BROWSER--open-browser, --no-open-browser
apps.packageDownloadsCHRYSALIS_APPS_PACKAGE_DOWNLOADS--apps.package-downloads
apps.storeCHRYSALIS_APPS_STORE--apps.store
agent.shellCHRYSALIS_AGENT_SHELL--agent.shell
agent.shellTimeoutSecondsCHRYSALIS_AGENT_SHELL_TIMEOUT_SECONDS--agent.shell-timeout-seconds
defaultModelCHRYSALIS_DEFAULT_MODEL--default-model
CHRYSALIS_PORT=9000 ./chrysalis
./chrysalis --lan --port 9000 --no-open-browser
./chrysalis --home /srv/chrysalis

--home (or CHRYSALIS_HOME) chooses the folder that holds config.yaml.

#Commands

CommandWhat it does
chrysalis or chrysalis startRun Chrysalis.
chrysalis pathsShow where the config file and data folder are.
chrysalis reset-password <user>Give an account a new password. Chrysalis must be stopped.
chrysalis --versionPrint the version.
chrysalis --helpList every option.

Edit this page on GitHub