Overview
The Formal Desktop App simplifies connecting to protected resources by automating authentication and connection management. It’s available for macOS and Linux and includes a powerful CLI.Installation
Download the app for your platform:macOS
Download .pkg installer
Ubuntu/Debian (x86_64)
Download .deb package
Ubuntu/Debian (ARM64)
Download .deb package
macOS Installation
- Download the
.pkgfile - Open the package and follow installation instructions
- Allow requested permissions
- Launch Formal from Spotlight or Applications
Linux Installation
NixOS
Use the Formal overlay:Setup
1
Launch the App
Start Formal - you’ll see the logo in your system tray
2
Install CLI (macOS)
Click the tray icon → Preferences → Install in PATH Or manually:
bash sudo ln -s /Applications/Formal.app/Contents/MacOS/formal /usr/local/bin/formal 3
Log In
bash formal auth login 4
Verify
bash formal ls You should see all available resourcesCLI Reference
Authentication
List Resources
↑/k- Move up↓/j- Move downenter- Connect to resource/- Filter resourcesq- Quit?- Show help
Connect to Resources
Databases (PostgreSQL, MySQL, MongoDB)
Specify Native User
If you need to specify a different native user than the default one assign to your user, you can specify using the convention:formal@[the_name_of_the_native_user].
SSH
~/.ssh/config automatically.
Kubernetes
~/.kube/config to route through the Connector.
Disconnect
Policy Evaluation
Test policies locally:Decrypt Data
Decrypt Formal-encrypted data:S3 Operations
The Formals3 command automatically routes traffic to the right Connector so your users don’t have to worry about formatting the right parameters for S3.
Interact with S3 through Formal:
Device Trust
The Desktop App reports device information for policy enforcement:- Hardware model and serial number
- OS version and security settings
- System Integrity Protection status
- Secure boot status
Headless Mode
The Formal Desktop app supports being launched in headless mode. This can be useful in server environments without a GUI or keyring support. To start the agent in headless mode, you can use the following command:Using an API Key
The Formal Desktop app supports using an API key to authenticate to the control plane. First, you will need to create an API key on the Formal Console. You can learn how to create an API key here. To start the agent with an API key, you can use the following command:MDM Deployment
Deploy the Desktop App organization-wide via your MDM:- Download the macOS .pkg
- Add as a custom app in your MDM (Jamf, Intune, etc.)
- Push to all user devices
Need help deploying via MDM? Contact Formal support for assistance.
Troubleshooting
App not running
App not running
Error:
WARNING: CLI cannot connect to the Formal app. Please make sure the Formal app is running. Solution: 1. Check that Formal is
visible in system tray 2. Restart the Formal app 3. On Linux: systemctl start --user formalCommand not found
Command not found
Error:
bash: formal: command not found Solution: 1. Reinstall
CLI: Click tray icon → Preferences → Install in PATH 2. Or create symlink
manually (see Setup section) 3. Or add alias to .bashrc/.zshrcConnection fails
Connection fails
Solution: 1. Verify you’re logged in:
formal status 2. Check resource
exists: formal ls 3. Ensure Connector is running 4. Check network
connectivityBest Practices
Keep App Running
Keep App Running
The Desktop App must be running for CLI commands to work. Enable “Launch at
startup” in preferences.
Use Descriptive Resource Names
Use Descriptive Resource Names
When connecting via
formal connect, use tab completion to find resources
quickly.Leverage the TUI
Leverage the TUI
formal ls provides an interactive way to explore and connect to resources
without memorizing names.Disconnect When Done
Disconnect When Done
Always disconnect from resources when finished to free up local ports.