# Dynamic Island

> A small borderless, transparent window that floats above every other application, anchored to a screen edge, and plays a different animation depending on the global state of your agents: all idle, at least one working, or at least one waiting for your input.

- Area: Desktop app
- Plans: All plans
- Last checked against the product: 2026-09-08
- Web page: https://agentsroom.dev/docs/dynamic-island

## What it does

A small borderless, transparent window that floats above every other application, anchored to a screen edge, and plays a different animation depending on the global state of your agents: all idle, at least one working, or at least one waiting for your input. You keep working in your browser or another IDE and still know what the agents are doing. When an agent finishes its turn, a **Done** card surges next to the animation for about five seconds with the agent name, the project logo or name and a preview of its message; clicking it brings AgentsRoom forward on that exact agent in that exact project. Missed it? Click the animation: a history of the last notifications unfolds, each row clickable.

## Where to find it

- On screen, at the edge chosen in Settings > **Dynamic Island** > **Position** (default anchor on the main screen).
- Settings > **Features** > **Dynamic Island** turns the whole feature on or off.
- Right-click the island for a native menu: **Always visible**, **Visible when agents are active**, **Always hidden**, and **Configure** which opens the settings tab.

## How to use it

1. Enable it in Settings > Features (on by default on a fresh install, visible from launch).
2. Start agents and switch to another app: the animation reflects the state; a card appears when a turn ends.
3. Click a card, or a row in the unfolded history, to jump to that agent. When AgentsRoom regains focus, the history clears itself.
4. Drag the animation to move the island anywhere, including another monitor. The dragged position lasts for the session; at the next launch it returns to the configured anchor.

Hover a card to pause its five-second timer.

## Settings

- `featureFlags.dynamicIsland` (global, Settings > Features): master switch, **off by default** (the island is opt-in, and it stays hidden until the first-launch walkthrough is finished).
- `dynamicIslandAlwaysOn` (global, Settings > Dynamic Island > Visibility): true = **Always visible**, false = **Visible when agents are active** (**default**: the island hides itself once every agent is idle). **Always hidden** turns the feature flag off.
- `dynamicIslandHideWhenFocused` (global): hide the island while the AgentsRoom window is focused.
- `dynamicIslandPosition` (global): `top`, `top-left`, `top-right`, `bottom-left`, `bottom-center`, `bottom-right`.
- `dynamicIslandDisplayId` (global, **Screen**): which display; null = main screen.
- `dynamicIslandHideSingleScreen` (global): hide when only one screen is connected.
- `dynamicIslandSizePercent` (global, **Size**): 20 to 300 percent of the base size.
- `dynamicIslandUseLogo` / `dynamicIslandHideVideo` (global, **Animation**): show the AgentsRoom logo instead of the animated status, or hide the animation and keep the rail only.

## Agent tools (MCP)

None. The island reads agent session status; agents do not drive it.

## Providers

All providers, no difference. The idle / active / needs-input state is derived from session status, which every CLI reports the same way.

## Mobile

Not on the phone as a floating window. The mobile **Companion** tab plays the same role: a mascot mirrors the global state (Idle, Working, Needs input), a **History** lists agents that finished or asked something, and tapping an entry focuses AgentsRoom on the desktop at the right project. See [Mobile Companion](https://agentsroom.dev/docs/mobile-companion.md).

## Limits

- **Always hidden** is greyed out in the right-click menu while an agent is working or waiting, so you never lose track of an active agent by accident.
- The history keeps the last six notifications and empties when the app regains focus.
- The finish notification only fires for a transition seen live; agents restored at launch do not all show as "done".
- Available on macOS, Windows and Linux as part of the desktop app.

## Common questions

- **Does it steal focus?** No. It never takes focus from the app you are using, and a click on a card is the only thing that brings AgentsRoom forward.
- **Does clicking really open the right agent?** Yes: the card carries both the project and the agent, the same routing as the native desktop notification.
- **How do I get rid of it?** Right-click > Always hidden (when agents are idle), or Settings > Features. Settings > Dynamic Island brings it back.
- **Can I keep it on my second monitor?** Yes, pick the display under Screen, or drag it there for the session.

## Related

- [Agent Notifications](https://agentsroom.dev/docs/agent-notifications.md): the native and mobile notifications that fire on the same events.
- [Agent Status Tracking](https://agentsroom.dev/docs/agent-status-tracking.md): the per-agent statuses the island aggregates.
- [Needs Input Inbox](https://agentsroom.dev/docs/needs-input-inbox.md): where the agents waiting for you are listed inside the app.
