bitl config
The same preferences as the app's Settings window, from the terminal.
bitl config # every key and its value (--json for scripts)bitl config get tldbitl config set editor cursorbitl config reset editor # one key back to defaultbitl config reset # everythingbitl config path # where settings.json lives| Key | Values | Default |
|---|---|---|
tld | letters and digits, e.g. test, localhost | test |
php-default | an installed version, e.g. 8.4 | 8.5 |
editor | vscode phpstorm sublime cursor zed | vscode |
terminal | terminal iterm warp | terminal |
browser | systemDefault safari chrome firefox arc | systemDefault |
theme | auto light dark | auto |
auto-start | true false — launch BitL at login | false |
Note. Changing
tld affects sites you link afterwards. The resolver file for a new TLD needs root: echo 'nameserver 127.0.0.1' | sudo tee /etc/resolver/<tld>.App settings
Open with ⌘ ,. General holds everything above plus a few app-only switches:
- Start services on launch — bring up nginx, PHP-FPM and dnsmasq when BitL opens (on by default)
- Stop services on quit
- Auto-detect public folder — serve
public/when a project has one - Keep window on top
- Watched Folders — the parked directories BitL monitors for new projects
- Privileged Helper — its status, and an Install / Reinstall button if it needs repairing
The other tabs: Runtimes (PHP, Node, Python, Go, Flutter), Notifications, Certs (the local CA and every issued certificate), Keys (shortcuts) and About (version, updates).
Keyboard shortcuts
| Shortcut | Where | Action |
|---|---|---|
| ⌘ ⇧ B | anywhere | Show or hide BitL (change it under Settings → Keys) |
| ⌘ ⇧ E | anywhere | Show or hide the Debug Bar |
| ⌘ K | in BitL | Quick Switcher: jump to a site, switch PHP, start or stop a service |
| ⌘ R | in BitL | Refresh status |
| ⌘ , | in BitL | Settings |
| esc | in BitL | Close the current panel |
| ⌘ Q | in BitL | Quit |
Shell completions
Tab-complete every command, subcommand and flag.
bitl completions install # detects your shellbitl completions install --shell fishbitl completions generate zsh > _bitl # or wire it up yourselfWhere things live
Everything user-level is under ~/Library/Application Support/BitL/:
| Path | Contents |
|---|---|
config/settings.json | Preferences (bitl config path) |
config/sites.json | Linked and parked sites |
config/services.json | Installed service instances |
config/groups.json | Site groups |
nginx/vhosts/ | One nginx server block per site |
php/ | Per-version php.ini, php-fpm.conf and conf.d (xdebug.ini lands here) |
ssl/ca/ · ssl/certs/ | Local certificate authority and site certificates |
data/ | Service data directories — your databases |
snapshots/ | Database snapshots |
profiles/ | Saved profiler runs |
php-versions/ node-versions/ … | Installed runtimes |
bin/ | Symlinks to the active php, node, python3, go, flutter, composer |
log/ | nginx, PHP-FPM and service logs |
plugins/ | Installed plugins |
System-level pieces, written by the privileged helper:
| Path | Contents |
|---|---|
/usr/local/bin/bitl | CLI symlink → /usr/local/bitl/bin/bitl |
/etc/resolver/test | Sends *.test lookups to dnsmasq on 127.0.0.1 |
~/Library/LaunchAgents/com.bitl.service.* | One launch agent per started service |
/tmp/bitl/ | Sockets and PID files |
Tip. Back up
config/ and ssl/ to carry your setup to a new Mac; restore them before first launch.Plugins (preview)
A plugin is a directory with a plugin.json that declares extra service types and the lifecycle hooks it wants.
bitl plugin create my-service # scaffold ./my-service with plugin.json and READMEbitl plugin install ./my-service # or a Git URLbitl plugin listbitl plugin remove com.bitl.my-serviceNote. The plugin format is still settling: installing registers the manifest, but the app doesn't run plugin services or hooks yet. Expect changes before it's stable.
See also
- CLI reference — every command and flag
- Troubleshooting — DNS, certificates, ports