Most commands that take a site default to the one linked to the current directory. Domains can be given with or without the .test suffix. Commands with subcommands run a sensible default when called bare — bitl services lists, bitl php shows info.
Environment
| Command | Does |
|---|---|
bitl init | Create BitL directories, write nginx/PHP/dnsmasq configs, generate the local CA |
bitl start | Start the core stack: nginx, PHP-FPM, dnsmasq |
bitl stop | Stop the core stack |
bitl restart | Restart the core stack (apply php.ini / Xdebug changes) |
bitl status | Stack status, default PHP, TLD and site count |
bitl doctor | Check the environment and print a fix for each problem |
bitl self-update [--check] [--beta] [--rollback] | Update the CLI; check only, include pre-releases, or go back one version |
Sites
| Command | Does |
|---|---|
bitl link [path|name] [--domain <name>] [-t|--tld <tld>] | Link a directory (default: current) as a site |
bitl unlink <domain> | Unlink one site |
bitl unlink --all | --group <path> [--yes] | Unlink every site, or every site from one parked directory |
bitl park [path] [-t|--tld <tld>] | Serve every subdirectory of a folder as a site |
bitl unpark [path] | Remove a parked folder and its sites |
bitl parked | List parked folders and their sites |
bitl list | All sites: domain, path, PHP, SSL, linked/parked |
bitl secure [domain] | Enable HTTPS (default: current directory’s site) |
bitl unsecure [domain] | Disable HTTPS |
bitl isolate <php-version> [domain] | Pin a site to a PHP version |
bitl open [domain] [--editor | --terminal] | Open in the browser, editor or terminal |
bitl edit [domain] | Open the site folder in $EDITOR |
bitl detect [path] [--verbose] | Show what kind of project a directory is |
bitl new <laravel|wordpress|static> <name> [-t|--tld <tld>] [--park] | Scaffold a project in the current directory and link it |
Site groups
| Command | Does |
|---|---|
bitl group create <name> | Create a group |
bitl group delete <name> | Delete a group |
bitl group add <group> <domain> | Add a site to a group |
bitl group remove <domain> | Take a site out of its group |
bitl group list | List groups and their sites |
bitl group apply <group> [--php <version>] [--secure | --unsecure] | Change every site in a group at once |
Docker & sharing
| Command | Does |
|---|---|
bitl docker link <name> <port> | Proxy name.test to 127.0.0.1:<port> |
bitl docker unlink <name> | Remove that proxy |
bitl docker proxy <container> | Proxy a running container (domain/port from labels or name) |
bitl docker unproxy <container> | Remove a container proxy |
bitl docker list | Proxies and running containers |
bitl share <domain> [--provider cloudflared|ngrok|expose] [--port <n>] | Expose a site through a public tunnel (port default 80) |
bitl share <domain> --stop | Close that tunnel |
bitl share --list | Active tunnels |
PHP
| Command | Does |
|---|---|
bitl php [info] | Current version and FPM availability |
bitl php list | Installed versions |
bitl php available | Versions you can download |
bitl php install <version> [--build] | Install a pre-built binary, or build from source |
bitl php use <version> | Switch the global version (CLI and default FPM pool) |
bitl php extensions [version] | Loaded extensions |
bitl php pools [--json] | Running FPM pools and which sites use them |
bitl php path [--check | --install] | Show, check or add BitL’s bin directory to PATH |
bitl composer [status] | Composer wrapper status |
bitl composer self-update | Update Composer |
bitl composer install [--force] | Reinstall the Composer wrapper |
Node.js, Python, Go, Flutter
| Command | Does |
|---|---|
bitl node [info] | Current Node.js version |
bitl node list | available | Installed / downloadable versions |
bitl node install <version> | Install (a major like 22 picks the latest 22.x) |
bitl node use <version> | Switch globally |
bitl node uninstall <version> | Remove a version |
bitl node isolate <version> [--path <dir>] | Write .node-version for a project |
bitl node unisolate [--path <dir>] · bitl node isolated [--path <dir>] | Remove / show a project’s pinned version |
bitl python [current] · list [--available] | Current / installed / downloadable versions |
bitl python install | use | uninstall <version> | Manage versions (e.g. 3.12.8) |
bitl python venv <path> [-p|--python-version <v>] | Create a virtual environment |
bitl go [current] · list [--available] | Current / installed / downloadable versions |
bitl go install | use | uninstall <version> | Manage versions (e.g. 1.24.0) |
bitl flutter [version] [--channel <c>] | Show current, or switch when a version is given |
bitl flutter list [--available] · current | Installed / downloadable / active SDK |
bitl flutter install | use | uninstall <version> [--channel stable|beta|dev] | Manage SDK versions |
bitl flutter doctor · devices | Run flutter doctor / list devices |
Services
Service names: mysql, mariadb (maria, mdb), postgresql (postgres, pg), mongodb (mongo), redis, meilisearch (meili), typesense, minio — or an instance name you chose.
| Command | Does |
|---|---|
bitl services [list] | Every instance: type, name, version, status, port |
bitl services install <type> [--name <n>] [--version <v>] [--port <p>] | Install a service instance |
bitl services start <name> | --all | Start one or all installed services |
bitl services stop <name> | --all | Stop one or all running services |
bitl services restart <name> | Restart a service |
bitl services open <name> | Open in TablePlus, or print the connection URL |
bitl services health [name] [--json] | Health, restarts and recent crashes |
bitl env-sync [path] [--add] | Write service connection details into .env |
bitl herd-import [path] | Report which services a herd.yml needs and which are installed |
Database snapshots
Connection flags on snapshot, restore and import: --host (127.0.0.1), --port (the engine’s BitL port), --user (root; bitl for PostgreSQL), --password.
| Command | Does |
|---|---|
bitl db snapshot <name> [--database <db>] [--type mysql|postgresql|mariadb] [--site <domain>] | Dump a database (defaults: laravel, mysql) |
bitl db restore <name> [--site <domain>] | Restore a snapshot over the database |
bitl db list [--site <domain>] [--json] | List snapshots |
bitl db delete <name> [--site <domain>] | Delete a snapshot |
bitl db import <file.sql|file.sql.gz> [--database <db>] [--type <t>] | Load an external dump |
Frameworks & nginx
| Command | Does |
|---|---|
bitl artisan <domain> <command…> | Run php artisan with the site’s PHP version |
bitl wp <domain> <command…> | Run WP-CLI with the site’s PHP version |
bitl queue start [site] [--workers <n>] [--connection <c>] [--queue <q>] | Start queue:work processes (1 worker, queue default) |
bitl queue stop | restart [site] · status [--json] | Manage workers from any earlier queue start |
bitl vite start [site|path] [--port <n>] | Start a Vite dev server (ports from 5173) |
bitl vite stop [site] · status | Manage running Vite servers (any terminal) |
bitl nginx templates | List templates: laravel, spa, wordpress, static, proxy, node |
bitl nginx template <name> --domain <d> --root <path> [--port <n>] | Print a rendered server block |
bitl nginx validate | Check BitL’s nginx configuration |
bitl nginx reload | Reload nginx |
Debugging
| Command | Does |
|---|---|
bitl debug [status] · start · stop · clear | Debug server (port 8765) and SMTP server (port 2525) |
bitl mail [list] · show <id> · status · clear | Captured email |
bitl logs [nginx|nginx-access|php|<path>] [-f] [--lines <n>] | Show or follow a log (default: nginx error log, 50 lines) |
bitl logs … [--level <l>] [--channel <c>] [--search <text>] [--clear] | Filter, search or truncate |
bitl xdebug on [--php <v>] [--ide vscode|phpstorm] [--mode debug|profile|trace] [--site <s>] | Enable Xdebug |
bitl xdebug off [--php <v>] [--site <s>] | Disable Xdebug |
bitl xdebug status [--php <v>] | Xdebug state per PHP version |
bitl xdebug setup <vscode|phpstorm> [--php <v>] [--mode <m>] | Write the IDE preset |
bitl extension install | enable | disable | status [--php <v>] | The bitl.so dump-capture extension |
bitl profile parse <file> | Call-tree summary of a cachegrind file |
bitl profile top <file> [-s|--sort self-time|total-time|calls] [-l|--limit <n>] | Hottest functions (20 by self time) |
bitl profile folded <file> | Folded stacks for flamegraph tools |
bitl profile save <file> [-l|--label <name>] · list | Keep a profile for comparison |
bitl profile compare <baseline> <current> [-t|--threshold <pct>] | Regressions and improvements (default 5%) |
bitl profile watch <dir> | Watch a directory for new cachegrind files |
bitl dashboard [site|log] [--range 5m|15m|1h|24h] [--json] [--export] | Request stats from nginx access logs |
Mobile
| Command | Does |
|---|---|
bitl sim list [--booted] [--iphone] [--ipad] | iOS Simulators |
bitl sim boot <name|udid> | Boot a simulator |
bitl sim shutdown <name|udid|all> | Shut down simulators |
bitl sim screenshot [name|udid] [-o|--output <path>] | Screenshot a booted simulator |
bitl emu list [--running] | Android Virtual Devices |
bitl emu start <avd> [--cold-boot] | Start an emulator |
bitl emu stop <avd|all> | Stop emulators |
bitl metro start [--path <dir>] [-p|--port <n>] [--clear] | Start Metro / Expo (port 8081) |
bitl metro stop | status [-p <n>] · restart [--path <dir>] [-p <n>] | Manage Metro |
AI & notebooks
| Command | Does |
|---|---|
bitl ollama install · start · stop · status | Ollama server |
bitl ollama models [--available] | Installed or popular models |
bitl ollama pull <model> · rm <model> | Download / remove a model |
bitl jupyter install | Install JupyterLab |
bitl jupyter start [dir] [-p|--port <n>] [--classic] [--open] | Start a server (port 8888) |
bitl jupyter list · stop [session-id] | List / stop servers (all by default) |
Configuration & migration
| Command | Does |
|---|---|
bitl config [list] [--json] | Every setting |
bitl config get <key> · set <key> <value> | Keys: tld, php-default, editor, terminal, browser, theme, auto-start |
bitl config reset [key] · path | Reset to defaults / show settings.json location |
bitl migrate [detect] | Look for a Herd or Valet install |
bitl migrate herd | valet [--dry-run] [--force] | Import sites, parked paths, certificates and isolations |
bitl completions install [--shell zsh|bash|fish] | Install tab completion |
bitl completions generate <zsh|bash|fish> | Print the completion script |
bitl plugin [list] [--json] · install <path|git-url> · remove <id> · create <name> | Plugins (preview) |
Getting help
bitl --help # every commandbitl help services # one commandbitl services install --helpbitl --versionTip. Many list and status commands take
--json for scripting: config, db list, services health, php pools, queue status, plugin list, dashboard.