Skip to main content

Overview

Formal Endpoint reads ~/.formal/config.toml on startup. Restart Formal Endpoint after you edit the file. On macOS, Forced .mobileconfig keys override ~/.formal/config.toml. See MDM overrides.

config.toml settings

Every key the Endpoint reads from ~/.formal/config.toml:
Omit [oidc] and auth_mode unless the Endpoint should authenticate with OIDC. Use oidc.env instead of oidc.provider when the JWT comes from an environment variable. See Log In with OIDC.

Configuring the Transparent Proxy on Startup

To avoid toggling the transparent proxy every time you open Formal Endpoint, configure it in ~/.formal/config.toml.
enable specifies whether the endpoint agent should try to enable the transparent proxy upon startup. If omitted, enable defaults to false. enforce controls whether you can change transparent proxy behavior with formal transparent-proxy install, formal transparent-proxy enable, and the tray toggle. If omitted, enforce defaults to false.
Privileged users can still disable the network extension without formal transparent-proxy enable or formal transparent-proxy disable.
fail can be open or closed. If the endpoint agent errors, open preserves network connectivity. closed keeps enforcing that the transparent proxy is running. If omitted, fail defaults to open. allow_quic controls whether the transparent proxy allows QUIC traffic (UDP/443). Blocking QUIC is required to intercept Claude Chat sessions in the Claude Desktop App. If omitted, allow_quic defaults to false. intercept_localhost controls whether the transparent proxy intercepts IPv4 loopback traffic, such as local tunnels on 127.0.0.1. If omitted, intercept_localhost defaults to false. See Transparent Proxy for install and enable steps.

MDM overrides (macOS)

Forced .mobileconfig keys override ~/.formal/config.toml. On macOS, Forced keys in the com.formal.desktop domain take precedence over the file. They apply even when config.toml is absent. Deploy the values as Forced (locked) keys in a com.apple.ManagedClient.preferences payload. Generate the profile from Endpoint Rollout in the Formal console. These config.toml keys have no MDM mapping: postgres_db, launch_commands, auth_mode, and [oidc].

Require a password to uninstall

Set the uninstallPasswordHash managed preference to protect formal uninstall. This key exists only in the .mobileconfig profile. It is not a config.toml setting. When the key is present, the CLI prompts for the password. It refuses to remove Formal unless the password matches. Enter an Uninstall Password on the Configuration Profile step in Endpoint Rollout. Formal embeds the SHA-256 hex digest in the profile. The plaintext password never leaves your browser.
This is a deterrent, not tamper protection. A user with sudo can still stop processes and delete files manually.

Next Steps

Formal Endpoint

Install the app, log in, and connect to resources

MDM Integration

Deploy Formal Endpoint with your MDM