Skip to Content

Open the workspace, and learn where everything is before you type

A robot icon has appeared in your Home Assistant sidebar. This article explains what that icon proves, why nobody else in the house can see it, and how the workspace behind it is arranged — so that a later instruction li
September 12, 2026 by
Open the workspace, and learn where everything is before you type
OdooBot
first steps
Pi Agent Guide · Part 2

Open the workspace, and learn where everything is before you type

A robot icon has appeared in your Home Assistant sidebar. This article explains what that icon proves, why nobody else in the house can see it, and how the workspace behind it is arranged — so that a later instruction like “open the Models panel” sends you to the right part of the screen. No key, no message yet. This one is about recognition.

0 extra ports
Router or firewall rules Pi Agent needs of its own
5-10 seconds
The first load, before the workspace appears
5 areas
Worth being able to point at by the end
Opening it

One line in the sidebar, and what it proves

Pi Agent gets no desktop shortcut, no address of its own and no login screen. It gets one entry in the Home Assistant sidebar with a robot icon. That single line is a three-part status report: the add-on is running, its Ingress panel is registered, and your account is an administrator. Fail any one and the entry is simply not there.

Scroll the sidebar past the built-in items your installation shows and look for the robot icon, mdi:robot. The wording beside it comes from the add-on's own config.yaml, which sets panel_title: Pi Agent — the label to scan for unless someone renamed it.

Its absence is a diagnosis, not a fault. Missing means one of the three conditions above is not met — the last section works through which, in the order worth checking.
  1. Step 1

    Sign in to Home Assistant as an administrator

    Open your usual HA address in a desktop browser — on the local network that is normally http://homeassistant.local:8123 or http://home-IP:8123 — and sign in with an administrator account.

  2. Step 2

    Select Pi Agent in the sidebar

    The workspace opens in the main area. The first load may take 5-10 seconds while the request travels through Ingress to nginx and then to pi-web. Later loads should be faster.

  3. Step 3

    Note where Open in new tab is

    It opens the same workspace in its own tab — useful for putting Home Assistant and Pi Agent side by side. Both use the same pi-web instance and the same data.

  4. Step 4

    On a phone or tablet, use the Companion App

    Sign in to the official Home Assistant Companion App as an administrator, open its navigation menu, select Pi Agent. Same functions, though some controls collapse on a small screen.

The address in that new tab is a credential. Open in new tab creates a URL containing a temporary access token. Do not put it in a screenshot, a message or a bookmark. If it later returns 404, the token has expired — go back to the sidebar entry and open a new tab from there. Bookmark your Home Assistant home page, or the stable route http://homeassistant.local:8123/hassio/ingress/woow_ha_pi_agent.
Why no port to open

Home Assistant is the front desk

In plain terms

Picture an office building with one front desk. The add-on has an office inside, not its own street door. You show your pass at the desk, and the desk walks your message to the right office. That desk is Home Assistant Ingress.

Inside the add-on, the program that does the work is pi-web, listening on internal port 30141. In front of it sits nginx, on the add-on's declared ingress port 30142. Without Ingress you would reach that port yourself at something like http://home-IP:30142, which brings four chores: forwarding port 30142 on your router, protecting a separate login, remembering your home IP when you are out, and sorting out mobile access.

Ingress removes all four: you sign in to Home Assistant, and it embeds the workspace after its own authentication and administrator check.

flowchart LR
  A["Your browser
still on the HA address"] --> B["Home Assistant
login session and admin check"] B --> C["Ingress proxy"] C --> D["nginx in the add-on
port 30142"] D --> E["pi-web
internal port 30141"]
The path a click takesEvery request travels the same authenticated chain, and the answer comes back the same way.
ComparisonIngress, as Pi Agent uses itA directly exposed service
Router changesNone for Pi AgentOften requires port forwarding
Separate passwordNo; uses the HA accountUsually required, and separately protected
Remote accessUses the existing HA remote pathNeeds its own VPN, tunnel or DDNS

Whatever you already use to reach Home Assistant from outside — Nabu Casa, a Cloudflare Tunnel, a VPN — Pi Agent inherits it. Nothing new to set up, nothing new pointed at the internet.

If it is slow from outside: load the Home Assistant home page over the same connection. If that is slow too, the problem is your HA remote access, not Pi Agent.
Why only you can see it

The entry is hidden from everyone else on purpose

The add-on declares panel_admin: true, so Home Assistant registers the panel as administrator-only. A regular user does not see a greyed-out entry — they see no entry.

Three things sit behind that panel, and each is a reason for the restriction:

  • Your API keys, which may authorize billable usage at a provider.
  • Session history, which may contain device IDs, locations or other private household details.
  • Skills, which may run shell commands or change Home Assistant files and settings, depending on their permissions and your approval.

You can give another household member access, and the supported way is the blunt one: Settings → People → Users, select the user, enable Administrator. They sign in again and the entry appears.

In plain terms

That is handing over the whole keyring because someone asked for one drawer. An administrator does not just get Pi Agent — they get every add-on, system settings, developer tools, backups and the restart button.

If someone needs occasional help, sit with them and use Pi Agent yourself rather than promoting their account — and never share an Open in new tab link as a workaround. Do not promote a child account for this. There are currently no documented per-Session access controls: the README puts it as “Anyone with HA admin login = full pi-web access.”
The workspace

Five areas to be able to point at

The workspace behind the icon is pi-web, and it is not a Home Assistant dashboard with a different skin.

In plain terms

Think of a text editor opened inside a browser tab. The tab belongs to Home Assistant; the program inside it is its own thing, with its own menus and its own files. Your dashboards read and switch devices from /config/. This keeps its data under /data/pi-agent/ and changes nothing in Home Assistant unless a tool is asked, and permitted, to do so.

On a wide screen it splits into a left column, a center and a thin top bar; on a narrow one some of that collapses into menus. Move your pointer over each in turn — nothing to click yet.

The Pi Web workspace with a new conversation open. The left column holds a New button, the working directory ~/pi-cwd-20260909, three saved conversations, an EXPLORER list containing notes.md, and Models, Skills and Settings buttons along the bottom. The center shows the Pi Web mark, the versions web v0.9.0 and pi v0.85.1, and an empty message box with a Send button. The top bar carries System and Tools.
A new conversationThe message box is empty because this conversation has not started. The machine behind it has plainly been used before.web v0.9.0 · pi v0.85.1
  • + New at the top of the left column, with the working directory ~/pi-cwd-20260909 just below it. One conversation per separate task; the path is where the agent's file tools land.
  • The session list under that — here three earlier conversations, each with a relative time and a message count, such as 36 minutes ago · 8 msgs. A brand-new install has no entries; this one is not.
  • EXPLORER below the list, showing what is in that working directory — one file, notes.md. It is the fastest way to see what the agent has actually written.
  • Models, Skills and Settings sit as three buttons along the bottom of the left column in this build. That is where those panels open from.
  • The message box in the center, reading Message… Type / for commands, @ for files, with Send at its right end. The row beneath it carries the model name, GPT-5.6 Sol, then auto, default and Compact. System and Tools live up in the top bar.

The model name below the box is the one to watch, because it tells you where you are in the setup:

“No provider configured,” or a control you cannot click — nothing is set up yet. That is Part 3.
A model name, for example glm-4.6 — that model will answer your next message.
Provider names with model lists under them — more than one route is configured, and you pick per message.
Where the source and the screen differ: the written guide puts the panel controls in a top-right toolbar and tells you to look there for an avatar as proof the Ingress session loaded. This build has them at the bottom left and shows no avatar at all. Positions move between pi-web versions, so trust the labels on your own screen over the compass directions in any guide, this one included.
Switching models mid-conversation only affects what comes next. It does not regenerate answers you already have. If you want a different model's take on a question, send the question again.
Panels and settings

Everything opens as a drawer over the conversation

A panel here is a drawer over the workspace — not a Home Assistant sidebar panel, and not a page you navigate to. Close it and you are back in the same conversation. In the build pictured above, Models, Skills and Settings open from the buttons at the foot of the left column, System and Tools from the top bar.

PanelWhat it is forCovered in
ModelsAdd providers, enter API keys, run Test, configure modelsPart 3
SkillsInstall a Skill package from a GitHub URL or owner/repoParts 9-10
PluginsExtensions; most people never need this for daily work
SystemRead the system prompt this session is actually running onPart 5

Two are worth opening now, purely to look. First the tool list — the agent's actual reach.

The Tools panel: a list of tools down the left column reading read, bash, edit and write, with read selected, and the right column showing read's full description, its three parameters — path, required, a string; offset, optional, a number; limit, optional, a number — and the beginning of a Prompt guidelines section.
ToolsWhat the agent can do, spelled out one tool at a time, with the exact inputs each one takes.
  • read, bash, edit, write in the left column — these are the verbs, and the honest answer to “what can it actually touch?” Worth knowing, because a tool call card in a conversation is labeled with one of them.
  • Select read and the right column fills in: path is required and takes a string, offset and limit are optional numbers. That is the level of detail the model is working from.
  • Under the parameters the panel begins a Prompt guidelines section — the wording the model itself reads about using that tool.

The second is the system prompt: the standing instructions the agent carries into every message, including any loaded Skill descriptions.

The System panel showing the full text of the system prompt the agent is running under: it opens with “You are an expert coding assistant operating inside pi”, then an Available tools list with one line each for read, bash, edit and write, then a Guidelines section.
SystemThe full instructions, readable rather than hidden. Part 5 comes back to this when reasoning blocks start appearing.

Appearance and comfort settings live apart from those.

The Settings screen on its General tab, with General, Models, Skills, Sub-agents and Plugins as tabs along the top. Appearance offers Light, Dark or System, with System chosen. A Chat section below holds a switch for expanding thinking blocks by default, currently off, a chat content width slider reading 820px, a chat font size slider reading 14px, and a switch for showing actions for selected text.
GeneralAppearance, content width and font size — and the switch that decides whether reasoning blocks arrive open or closed.
  • Light / Dark / System is pi-web's own theme, set to System here. Home Assistant's theme is set in your HA profile and does not carry over.
  • Expand thinking blocks by default is off in this build, so a model's reasoning arrives collapsed. Leave it off until Part 5 explains what you are reading.
  • Chat content width at 820px and Chat font size at 14px are the two that make long answers readable on a wide monitor.
  • The tabs across the top — General, Models, Skills, Sub-agents, Plugins — are where the panels in the table above live here.
Another one of those differences: the guide describes appearance and language as top-bar controls and says pi-web has no single Settings panel, while the workspace above gathers them onto a General screen. Follow the labels in front of you, and use tooltips rather than memorizing positions.

There are exactly two global shortcuts: Esc stops a running agent, and Ctrl+Alt+N opens a new session in the current working directory. There is no command palette and no Cmd+K. In the message box itself, Enter sends and Shift+Enter starts a new line.

pi-web settings and add-on settings are different things. What you change in the browser controls the interface and the model. Settings → Add-ons → Woow HA Pi Agent → Configuration controls the container: log_level, timezone, reset_video_tools, env_vars. Since v0.13.0, provider keys belong in pi-web's Models panel, not there.
If it will not open

The problems people actually hit

There is no Pi Agent entry in the sidebar
Check three things in this order. First, is this account an Administrator: Settings → People → Users, select your account, look at the Administrator switch. Second, Settings → Add-ons → Woow HA Pi Agent → Info, is Show in sidebar on. Third, force-reload the frontend with Ctrl+Shift+R, or Cmd+Shift+R on macOS.
The main area stays blank
Give the first load 10-15 seconds. Still blank after 30 seconds: press F12 and look at the Network and Console tabs. Several _next/… or /api/… responses returning 404 suggest the Ingress prefix was not applied; check the add-on's Log tab and restart the add-on. A 403, sometimes with Untrusted API request, is worth a restart first — and if the documented procedure calls for it, ha core restart, so the Supervisor registers a fresh panel session.
The composer is disabled and nothing types
Almost always because no model is configured yet — normal here, and what Part 3 fixes. The written guide says to check the top right for an avatar and treat a missing one as a failed Ingress session; the build pictured above has no avatar there at all, so read nothing into that corner. If the workspace looks broken rather than merely idle, sign in to Home Assistant again and reopen Pi Agent from the sidebar.
The session list has vanished
The left column is collapsed, which happens in a narrow window. Use pi-web's own sidebar control near the top left. On a phone it starts collapsed and may open with a swipe from the left edge.
Can I use it on my computer and phone at the same time?
Yes. Both use the same pi-web instance and the same session files, so a refresh on one device shows sessions started on the other. Just avoid two messages to the same session at once — the model may take them as two consecutive turns.
Next

Where to go from here

keep going

You can find everything. Now make it answer.

Part 3 creates an OpenRouter key and pastes it into the Models panel — the one panel this article deliberately left shut. After that the composer wakes up.

Open the full guide

Part 2 of the Pi Agent Onboarding Guide series, published by WoowTech.

Based on the Woow HA Pi Agent Onboarding Guide, produced by WoowTech and released under CC BY 4.0.

The Smart Space Solution · 智慧空間解決方案 · © 2026 WOOW Technology Co., Ltd.

Share this post