You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Let plugins read workspace label colors and project icons
#7481
Build a plugin screen that lists agents across workspaces (a task board) and shows where each one runs the way Paseo's sidebar does: the project's icon, the workspace name, and the workspace's labels in their colors.
How do you do it today?
paseo.workspaces.list() gives each workspace its projectId and the names of its assigned labels, and nothing else about either:
Label colors live in the host's label definitions. DaemonClient.listWorkspaceLabels() and observeWorkspaceLabels() read them, but the PaseoApi that plugins get (usePaseo(), client.paseo) does not expose them.
The project icon comes from DaemonClient.getProjectIcon(projectId), which is not on PaseoApi either.
So the plugin draws every label in one neutral color and every project as a letter avatar, and its board does not match the sidebar right next to it.
Where does Paseo get in the way?
The daemon already serves both (workspace.label.list.request, with subscriptions, and project.icon.get.request), and the app uses them for the sidebar. Only the SDK surface is missing.
On the web build of the prototype, a plugin screen shows the label definitions with their colors, each workspace's labels and project icon matching the sidebar, and live updates when a label is added and another is recolored:
(Prototype implemented and verified with an AI coding agent on a local web build.)
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
What are you trying to do?
Build a plugin screen that lists agents across workspaces (a task board) and shows where each one runs the way Paseo's sidebar does: the project's icon, the workspace name, and the workspace's labels in their colors.
How do you do it today?
paseo.workspaces.list()gives each workspace itsprojectIdand the names of its assignedlabels, and nothing else about either:DaemonClient.listWorkspaceLabels()andobserveWorkspaceLabels()read them, but thePaseoApithat plugins get (usePaseo(),client.paseo) does not expose them.DaemonClient.getProjectIcon(projectId), which is not onPaseoApieither.So the plugin draws every label in one neutral color and every project as a letter avatar, and its board does not match the sidebar right next to it.
Where does Paseo get in the way?
The daemon already serves both (
workspace.label.list.request, with subscriptions, andproject.icon.get.request), and the app uses them for the sidebar. Only the SDK surface is missing.What would a better workflow look like?
Two read-only wrappers on
PaseoApi:No protocol or daemon change.
A working prototype is on a branch (one commit, with tests and docs): RoundRedDot/paseo@main...RoundRedDot:paseo:feat/plugin-workspace-labels-project-icon
On the web build of the prototype, a plugin screen shows the label definitions with their colors, each workspace's labels and project icon matching the sidebar, and live updates when a label is added and another is recolored:
(Prototype implemented and verified with an AI coding agent on a local web build.)
All reactions