A native Gnome menu bar app for managing local Symfony CLI servers.
Access, start, and stop your local Symfony servers from the menu bar. Open them in your browser, view logs, manage PHP versions and proxy domains — without leaving your current context.
- Server management: view all your Symfony local servers at a glance; start and stop them directly from the menu
- One-click browser open: open any running server in your default browser instantly
- Server logs: jump straight to
symfony server:login Terminal, pre-filled for the right project - PHP versions: see all installed PHP versions and set the default
- Set PHP version set specific PHP version for a project
- Start at Login: launch on login so it is always available
- gnome 49.0 or later
- Symfony CLI installed and available in your
PATH
TODO: this package will be available by default distro package managers soon.
git clone https://github.com/tito10047/menubar-for-symfony
cd symfony-cli-menubar
# Build and package
# this process will logout you from your current session
npm install
./install-local.sh
You can add custom shell commands to every server's context menu by creating an actions.json file in the extension directory:
[
{
"name": "Deploy",
"command": "npm run deploy",
"icon": "mail-send-symbolic",
"inline": true
},
{
"name": "Open in VS Code",
"path": "~/work/project",
"command": "code .",
"icon": "document-open-symbolic"
}
]| Field | Required | Description |
|---|---|---|
name |
yes | Label shown in menu |
command |
yes | Shell command to run |
path |
no | Working directory; defaults to the server's project directory |
icon |
no | Symbolic icon name; defaults to system-run-symbolic |
inline |
no | true = also show as an icon button in the compact server row |
The command runs as: bash -c "cd '<path>' && <command>".
Use {path} in both path and command fields — it is replaced at runtime with the server's project directory:
[
{
"name": "Open in VS Code",
"path": "{path}",
"command": "code {path}",
"icon": "document-open-symbolic"
},
{
"name": "Git pull",
"command": "git -C {path} pull",
"icon": "view-refresh-symbolic",
"inline": true
}
]File location:
~/.local/share/gnome-shell/extensions/menubar-for-symfony@tito10047.github.com/actions.json
Actions defined without "inline": true appear only in the submenu of favorite servers. Actions with "inline": true also appear as icon buttons in the compact (non-favorite) server rows.
Verbose logging (debug/info messages) is disabled by default to keep the system journal clean.
Enable it when troubleshooting via GSettings:
gsettings set org.gnome.shell.extensions.symfony-menubar debug-logging trueDisable it again with:
gsettings set org.gnome.shell.extensions.symfony-menubar debug-logging falseThe change takes effect immediately without restarting the extension. Errors and warnings are always logged regardless of this setting. To read extension logs use:
journalctl -f -o cat /usr/bin/gnome-shellsee smnandre/symfony-cli-menubar
Contributions are welcome. Please open an issue before submitting a pull request for significant changes. See CONTRIBUTING.md for development guidelines.
Menu Bar for Symfony builds on top of remarkable open source work.
Symfony: the PHP framework this whole ecosystem is built on. Fabien Potencier @fabpot and the Symfony contributors.
Symfony CLI: the local server tooling this app brings to your menu bar. Fabien Potencier @fabpot and Tugdual Saunier @tucksaun.
Released by Jozef Môstka under the GNU General Public License v2.0 or later (GPL-2.0-or-later).
This project is inspired by Symfony CLI Menu bar by @smnandre.
"Symfony" and the Symfony logo are registered trademarks of Symfony SAS.
