Wire Aider into your menu bar
Aider ships with a --notifications-command flag that runs any shell command whenever the LLM is waiting on your input. Point it at a curl and you're done — this is the easiest of the five setups.
One-click setup
Skip the manual steps
Copy a ready-made prompt and paste it into any AI coding agent — Claude Code, Codex, Gemini, Cursor, or Aider. It detects your CLI and wires Lounge up for you.
Step 1 — Enable the Monitor in Lounge
- Right-click the Lounge icon in the menu bar and pick Settings.
- Open the Monitor tab.
- Toggle HTTP listener on. Optionally enable the unread badge and auto-open.
The Monitor tab and the listener itself only become active with a valid Lounge Pro license. The toggle is a no-op until you activate one in Settings → License.
Step 2 — Smoke-test the listener
Before touching your AI agent, confirm the listener accepts a request. Run this in any terminal — you should see a new row appear in the LoungePanel.
curl -X POST http://127.0.0.1:8866/notify \
-H 'Content-Type: application/json' \
-d '{"title":"Hello from curl","body":"Lounge is listening","source":"smoke-test","level":"info","project":"setup","event":"smoke-test","status":"complete"}'
Step 3a — Pass it as a flag (quickest)
The fastest path: just launch Aider with the flag. Good for a one-off session; nothing persists between runs.
aider --notifications-command 'curl -s -X POST http://127.0.0.1:8866/notify \
-H "Content-Type: application/json" \
-d "{\"title\":\"Aider needs you\",\"body\":\"Awaiting input in $(basename $PWD)\",\"source\":\"aider\",\"level\":\"warn\",\"project\":\"$(basename $PWD)\",\"status\":\"blocked\"}' >/dev/null'
Step 3b — Persist it in ~/.aider.conf.yml
For every-session coverage, drop the command into Aider's YAML config. Aider reads this file from your home directory and from the current working directory, in that order.
# ~/.aider.conf.yml
notifications-command: |
curl -s -X POST http://127.0.0.1:8866/notify \
-H "Content-Type: application/json" \
-d "{\"title\":\"Aider needs you\",\"body\":\"Awaiting input in $(basename $PWD)\",\"source\":\"aider\",\"level\":\"warn\",\"project\":\"$(basename $PWD)\",\"status\":\"blocked\"}' >/dev/null
Step 4 — Try it
Start Aider, kick off an edit, and switch windows. When Aider is ready for your next instruction, a yellow-accented row should pop into the LoungePanel tagged blocked.
Troubleshooting
Nothing shows up in Lounge
Confirm Settings → Monitor is enabled and your license is active. The listener silently refuses to start without a valid license, even if the toggle is on.
Port 8866 already in use
Another process is bound to 8866. Find it with lsof -iTCP:8866 -sTCP:LISTEN and stop it. The port is fixed in the current build.
Connection refused from the CLI
The listener only binds to 127.0.0.1. If your agent runs in a container or VM, forward the port or use host.docker.internal:8866 instead of localhost.
Notifications only fire when Aider is waiting on me
That is the intended behavior — Aider only invokes --notifications-command when it needs input. For end-of-edit pings, pair it with a shell post-prompt hook (e.g. run a notify curl after each aider invocation in a wrapper function).
Quoting errors in the YAML version
YAML is picky about escape sequences. If the block-scalar version chokes, use a single-line notifications-command: followed by the whole curl inside single quotes, or move the curl into a tiny shell script and point Aider at that file path instead.