Skip to content

feat(web): harness bars for opencode, Grok, Muse and Antigravity, with brand icons, Muse's catalog and built-in skill rows - #453

Open
GGGODLIN wants to merge 5 commits into
AltanS:mainfrom
GGGODLIN:feat/grok-muse-icons-bars-skills-b
Open

GGGODLIN wants to merge 5 commits into
AltanS:mainfrom
GGGODLIN:feat/grok-muse-icons-bars-skills-b

Conversation

@GGGODLIN

Copy link
Copy Markdown
Contributor

opencode, Grok Build, Muse Code and Antigravity panes get the harness bar; Grok and Muse panes wear their brand icon; a Muse pane gets an Agent palette; and five agents' palettes list their built-in skills. The bar's rows live in the catalog and the skill rows sit next to them, so the five commits ship together.

Commit What it adds
feat(web) brand icons Grok's mark is the two paths of grok.com/images/favicon.svg, rescaled to 24x24. Muse Code has no mark of its own: its product page at dev.meta.ai shows only Meta's, and its CLI prints only its name. It wears muse.ai's muse-logo.svg, the Muse family's mark, which dev.meta.ai links as Muse's site. Neither source states terms for using the mark; if you would rather not ship them, this commit leaves cleanly on its own
feat(web) Muse catalog Twenty-three rows from Muse Code's docs (dev.meta.ai/docs/muse-code), checked against Muse 1.4.7's /help and slash completion. /new and /clear are dangerous, as in the other catalogs; /stop follows Codex's /stop and is not. Before, a Muse pane had no Agent palette
feat(web) harness bars opencode: Model (/models), Compact, Resume (/sessions). Grok: Model, Compact, Resume. Muse: Model, Effort, Compact, Resume. Antigravity: Model, Compact, Resume, and its catalog gains /resume. Grok's and Antigravity's /model pickers also set the effort, and a bare /effort in Grok opens no picker, so neither has an Effort button
feat(web) built-in skills Codex: five, spelled with the $ sigil Codex uses for a skill. opencode: /customize-opencode, which its own / menu hides. Grok: seventeen of its bundled skills, leaving out three it marks not user-invocable, imagine, which its /imagine command shadows, and review, which its completion showed only as /bundled:review. Antigravity: the three its default agent offers. Muse: its ten user-invocable bundled skills
test(commands) The Muse skill test pins all ten rows; it named ten and checked seven

In the palette, a row with no argument is sent on tap, as Claude's /init is, and 17 of the new skill rows are such rows: Antigravity 3, Grok 8, Muse 6. On this branch's playground, Muse's /doctor was sent on tap and /resume-claude went into the composer with a trailing space. Not checked: what a bare tap of each of those 17 does mid-conversation, Antigravity's /plugin and Muse's /manage-settings in particular, and whether opencode's /customize-opencode, seen in its /skills picker, runs when typed as text.

The Grok, Muse and Antigravity bar buttons go through only with the reader fixes in #447, #448 and the Antigravity dialogs PR opened alongside this one. Without them the phone reads each agent's slash popup as a dialog, or the typed command as polluted, and refuses the send.

Change outline

web/src/components/agent-icon-data.ts   Grok's and Muse's marks
web/src/lib/agent-commands.ts           the Muse catalog, the bar's `// harness-bar` rows, agy's /resume, the skill rows
web/src/lib/harness-bar.ts              bars for opencode, grok, muse, agy and antigravity
web/src/lib/operator-scope.ts           muse joins AGENT_FAMILIES
docs/configure.md                       the bar table gains the four agents, and why some have no Effort button

Reviewer guide

  • Start: web/src/lib/harness-bar.ts, the four new entries.
  • Then: the MUSE catalog and the skill rows in web/src/lib/agent-commands.ts.
  • Validate: harness-bar.test.ts, agent-commands.test.ts, harness-bar.test.tsx and actions-row.test.tsx.
  • Focus: every bar command is a catalog row; a row with takesArg: false is sent on its first tap, so those 17 skill rows and /stop are the ones to read.

Validation beyond the suites

These ran on the fork build that carries these commits along with the fork's other changes, not on this branch over main alone, on 2026-10-15:

  • The harness canary's bar scenario (feat(canary): a bar scenario that presses each harness-bar button, and Oh My Pi's paste chip in drafts #449), in a throwaway Herdr session, pressed each picker button through the phone's send path: opencode 1.18.34 2/2, Grok 1.0.52 2/2, Muse 1.4.8 3/3, Antigravity 1.3.5 2/2, each saved screen showing its picker. Before the reader fixes above, Grok, Muse and Antigravity failed it.
  • Each skill row was seen in the agent's own completion: Codex 0.159.3's $ popup, opencode 1.18.34's /skills picker, the / completion of Grok 1.0.52, Antigravity 1.3.5 and Muse 1.4.8. The fork's palette puts every row in the composer rather than sending it, and there the staged text for each kind read back as a verifiable draft.
  • On a phone against the fork build: Grok's bar, and Muse's Model and Effort.

Before and after, from the playground's PaneRouter in a PhoneFrame at 390 px with each agent's idle capture from the corpus, main on the left and this branch on the right. The bottom row is scrolled to where the bar sits. No bridge is running there, so the keys are inert. The last shot is Muse's palette, searched for resume.

Before: a Muse pane with a letter tile for its icon and no bar buttons After: a Muse pane with Muse's mark and Model, Effort and Compact on the bar

Before: a Grok pane whose row ends at Agent After: a Grok pane with Grok's mark and Model, Compact and Resume on the bar

Before: an opencode pane whose row ends at Agent After: an opencode pane with Model, Compact and Resume on the bar

Before: an Antigravity pane whose row ends at Agent After: an Antigravity pane with Model, Compact and Resume on the bar

After: Muse's Agent palette searched for resume, listing /resume, /goal, /resume-claude and /resume-codex

Base branch — see CONTRIBUTING.md:

  • Opened against main — there is one line of development, and main is it

Checks

  • On this branch (macOS): bun run typecheck at the root and in web/ exited 0; bun run lint exited 0; bun test ./bridge ./cli ./scripts 8539 pass, 70 skip, 0 fail; cd web && bun run test 416 of 416 files, 26154 tests pass. With each commit's implementation taken out and only its tests left, over the commits before it on main 8629ecb: 2 failures for the icons, 2 for the Muse catalog, 5 for the bars, 5 for the skill rows; the last commit's test fails when /manage-settings leaves the catalog. Not run: cd web && bun run e2e, the Windows suites, and a live agent run on this branch over main alone.
  • CHANGELOG: fork PR, so no entry. If lines help:
    • - **opencode, Grok Build, Muse Code and Antigravity panes get the harness bar.** Model, Compact and Resume, and Effort on Muse, above the keys.
    • - **Grok and Muse panes wear their brand icon.**
    • - **A Muse Code pane gets the Agent palette.** Its built-in commands, from Muse's own docs.
    • - **The Agent palette lists each agent's built-in skills.** Codex, opencode, Grok, Antigravity and Muse.

GGGODLIN and others added 5 commits October 16, 2026 02:02
Grok's mark is the two paths of grok.com/images/favicon.svg, rescaled from its 400x400 mark box to
24x24; it matches the app icon (grok.com's header draws a different, animated bot face).

Muse Code has no mark of its own: its product page at dev.meta.ai shows only Meta's, and its CLI
prints only its name. The Muse family does have one, muse.ai's muse-logo.svg, and dev.meta.ai links
muse.ai as Muse's site. One path rescaled from its 100x100 box to 24x24, its blue gradient as grad,
on the white tile of muse.ai's own app icon. Rendered and checked by eye beside the other seven
tiles.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Twenty-three rows, taken from Muse Code's own docs (dev.meta.ai/docs/muse-code/interactive and
/configuration), not from captures, then checked against Muse 1.4.7's /help and slash completion:
the configuration doc's /models is /model there, and completion turns /mod into /model only;
/fork [prompt] and /copy [N] take an argument; the other rows were found in /help or by completion
(/btw is /side's alias, /workflows exists). /new and /clear both start a fresh session and are
marked dangerous, as in the other catalogs; /stop follows Codex's and is not. The docs name no exit
command, so none is listed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… bar

opencode: Model (/models), Compact, Resume (/sessions). Grok: Model, Compact, Resume; a bare /effort opens no picker and its /model picker walks the effort step. Muse: Model, Effort, Compact, Resume; its /effort opens a picker of its own. agy and antigravity: Model, Compact, Resume; its /model picker carries the effort slider, and the agy catalog gains /resume from agy 1.3.5's own completion. Each picker button was pressed through sendGuardedReply by the canary's bar scenario on 2026-10-15 (opencode 1.18.34 2/2, grok 1.0.52 2/2, muse 1.4.8 3/3, agy 1.3.5 2/2) with the picker on screen; Compact was found in each agent's own completion.

Co-Authored-By: Claude <noreply@anthropic.com>
Codex: $imagegen, $openai-docs, $review-agent, $skill-creator, $skill-installer, written with the $ mention sigil Codex uses for a skill (the catalog test now allows $ for Codex only). opencode: /customize-opencode, which its own / menu hides. Grok: seventeen bundled skills; docx, pdf, pptx (not user-invocable), imagine (shadowed by the /imagine command) and review (seen only as /bundled:review) left out. Antigravity: the three its default agent offers. Muse: the ten user-invocable bundled skills. Every row was seen in the agent's own completion on 2026-10-15 (Codex 0.159.3 $ popup, opencode 1.18.34 /skills picker, Grok 1.0.52, agy 1.3.5 and Muse 1.4.8 / completion), and staged text for each kind read back as a verifiable draft on the live pane.

Co-Authored-By: Claude <noreply@anthropic.com>
The test named for ten checked seven; /create-plugin, /manage-settings and /resume-claude could leave the catalog with it green.

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions github-actions Bot added documentation Improvements or additions to documentation area: web Phone PWA — UI, mirror, composer, service worker area: install bin/collie verbs, Herdr plugin lifecycle, update, tailscale serve area: harness Per-agent adapters and send guards (claude/codex/pi/omp) enhancement New feature or request labels Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: harness Per-agent adapters and send guards (claude/codex/pi/omp) area: install bin/collie verbs, Herdr plugin lifecycle, update, tailscale serve area: web Phone PWA — UI, mirror, composer, service worker documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant