Skip to content

feat: agents, skills, usage, agent control by default and a calmer, clearer UI - #18

Merged
JuanmanDev merged 11 commits into
mainfrom
feat/ux-wave
Oct 15, 2026
Merged

JuanmanDev merged 11 commits into
mainfrom
feat/ux-wave

Conversation

@JuanmanDev

Copy link
Copy Markdown
Owner

What

  • Skills: page, API and agent-control tools to see, check, allow/ask/deny, write and improve skills; a skill library served to opencode as an HTTP skill catalog.
  • Agents: edit agents (model, prompt, tools) and which MCP servers each may use; AI drafts.
  • Usage & cost: group by session/day/hour/weekday/model/provider/agent; real vs list-price cost.
  • Agent control on by default; MCP on/off applied live; reload & continue; run_subagent, current_session.
  • Subagent per MCP: AI-written summaries; specialists can call each other.
  • Chat: paste/drop attachments, Tab/↑/Esc keys, help per option, big model/agent pickers, chat width, JSON component payloads rendered as cards/tables, /reload, /skills.
  • UI: project shell stays mounted when switching projects, animated sidebar/rail, project switcher, projects panel with recent/unread/starred/running chats, touch long-press labels, filled stars, starred projects, wider home carousels.

Tests

  • typecheck, 210 unit tests, 52 e2e (new tests/e2e/ux.spec.ts), demo suite
  • deployed as a local build on the home server and smoke-tested against opencode 1.19

…der or agent

Real cost as opencode recorded it next to an estimate at the models' list
prices, so promotions and free tiers show what they save. New endpoint
GET /api/v1/usage returns one row per assistant reply plus a price table.
New Agents page: description, mode, model, prompt, temperature, built-in
tools and per-server MCP access (inherit / allow / block), saved to the
project or global config. Descriptions and prompts can be drafted by a
model through the new POST /api/v1/ai-text. Long model lists open a
roomy searchable picker.
…d & continue

- the control MCP server is registered once by default (NUXT_AGENT_CONTROL=auto|off),
  so every chat lists it; switching it off is remembered
- switching an MCP server on or off connects/disconnects it in the running
  opencode at once (POST /api/v1/mcp-apply); the MCP page flags servers whose
  config and running state disagree, with Connect now / Reload buttons
- reloads can resume chats afterwards: reload_opencode continues the busy
  chats (the asking one included), the UI offers "Reload now & continue"
- new tools run_subagent (any agent in a sub-chat) and current_session
…each other

Each summary of Subagent per MCP can be written by a chosen model, one at a
time or all at once. Specialists get the task tool and the list of the
other specialists, so work spanning two servers is handed on as a sub-chat.
…eb, API and MCP

- Skills page: every skill opencode loads (built-in, global, project,
  remote, library) with its description, instructions, quality checks and
  auto / ask / off (permission.skill)
- a skill library kept by the web app and served to opencode as an HTTP
  skill catalog (skills.urls / skills array), versioned so reloads pick up
  changes; a library copy overrides a same-name skill
- new skills from a template or drafted by a model; improve any skill
- /api/v1/skills, /skills/library, /skills/ai, /skills/check and the
  agent control tools get_skill, save_skill, delete_skill,
  set_skill_permission, improve_skill
…t width

Tools that return JSON for their own front-end components
({ __componentType, message, data }) instead of an HTML or ui:// app now show
as cards and tables without running the tool again; a re-run that brings no
app says so instead of doing nothing. The chat column can be comfortable,
wide or full width, MCP apps and tables may use all the available width,
and apps can fit the screen height.
… option

- paste screenshots or copied files, drop files anywhere on the chat;
  image thumbnails with a preview, 10 MB per file
- Tab / Shift+Tab cycle agents, Up/Down recall earlier prompts, Esc Esc stops
- a ? next to model, think level, agent and MCP explains them and links to
  their settings; a keyboard help sheet
- agent picker shows descriptions and opens a large picker when long
- /reload [all] [now] [stay] reloads opencode and continues the chat;
  /mcp enable|disable applies at once; /skills lists the skills
…ects panel

Under each project the panel lists starred chats, then the ones used in the
last hours (unread ones a few days longer, running ones always), with a
"more" toggle. Windows, limits and options are configurable; unread is
tracked per browser.
- switching projects keeps the sidebar mounted; only the content fades
- the sidebar's width animates between the full panel and the icon rail
  (and the projects panel slides) instead of jumping
- project switcher menu; "Project" overview tile vs "All projects";
  Agents and Skills tiles
- long press on any icon button shows its label on touch screens
- favourites and starred projects get a filled amber star; projects can be
  starred to list them first
- home carousels use 90% of wide screens, with fading edges
- calmer hover effects (no sliding rows)
@JuanmanDev
JuanmanDev merged commit e5cddc3 into main Oct 15, 2026
12 checks passed
@JuanmanDev
JuanmanDev deleted the feat/ux-wave branch October 15, 2026 17:36
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 0.17.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant