All Lounge tutorials
Lounge Pro · Tutorial

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

  1. Right-click the Lounge icon in the menu bar and pick Settings.
  2. Open the Monitor tab.
  3. 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.

bash
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.

bash
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.

yaml
# ~/.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.

Don't have Lounge Pro yet?

Start a 7-day free trial — no credit card required.

See pricing