openclaw/extensions/ACTIVITY_ICON_SOURCES.md
Peter Steinberger dab1f08376
feat: give every plugin a compact chat activity icon (#147333)
* feat: give every plugin a compact chat activity icon

Separate package-owned activity SVGs from plugin identity artwork. Ship 154 defaults and seven exact tool overrides, preserving Echo and the progress claw. Include authenticated bounded delivery, safe mask rendering, packaging, and authoring guidance.

* test: declare Vite types for the activity asset browser test

* refactor: keep plugin artwork selection with catalog presentation facts

* test: scope activity browser types and simplify fixture copies
2026-09-13 13:49:51 -07:00

13 KiB
Raw Blame History

Activity icon sources

Each plugin owns assets/activity.svg for compact chat activity. Optional assets/activity/<tool-name>.svg files describe individual actions. Package branding remains in assets/icon.png.

Activity assets use a transparent background and monochrome geometry. They contain no scripts, stylesheets, fonts, external references, or embedded images. Metadata and redundant wrappers are removed; shapes with identical presentation attributes are combined into paths to fit the existing four-element SVG limit. The marks remain the property of their respective owners.

Existing provider marks

The following defaults reuse the corresponding files in ui/public/provider-icons. Original sources and license notices are retained in provider icon attribution. The mappings match the existing compact provider picker. Colors are normalized to currentColor; geometry and view boxes are retained.

Plugin Source file
alibaba ProviderIcon-alibaba.svg
amazon-bedrock ProviderIcon-bedrock.svg
amazon-bedrock-mantle ProviderIcon-bedrock.svg
anthropic ProviderIcon-claude.svg
anthropic-vertex ProviderIcon-claude.svg
arcee ProviderIcon-arcee.svg
azure-speech ProviderIcon-microsoft.svg
baseten ProviderIcon-baseten.svg
byteplus ProviderIcon-byteplus.svg
cerebras ProviderIcon-cerebras.svg
chutes ProviderIcon-chutes.svg
clawrouter ProviderIcon-clawrouter.svg
cloudflare-ai-gateway ProviderIcon-cloudflare.svg
codex ProviderIcon-codex.svg
cohere ProviderIcon-cohere.svg
comfy ProviderIcon-comfy.svg
copilot ProviderIcon-copilot.svg
copilot-proxy ProviderIcon-copilot.svg
deepgram ProviderIcon-deepgram.svg
deepinfra ProviderIcon-deepinfra.svg
deepseek ProviderIcon-deepseek.svg
elevenlabs ProviderIcon-elevenlabs.svg
fal ProviderIcon-fal.svg
featherless ProviderIcon-featherless.svg
fireworks ProviderIcon-fireworks.svg
github-copilot ProviderIcon-copilot.svg
google ProviderIcon-gemini.svg
groq ProviderIcon-groq.svg
huggingface ProviderIcon-huggingface.svg
kilocode ProviderIcon-kilo.svg
kimi-coding ProviderIcon-kimi.svg
litellm ProviderIcon-litellm.svg
llama-cpp ProviderIcon-llamacpp.svg
lmstudio ProviderIcon-lmstudio.svg
longcat ProviderIcon-longcat.svg
meta ProviderIcon-meta.svg
microsoft ProviderIcon-microsoft.svg
microsoft-foundry ProviderIcon-microsoft.svg
minimax ProviderIcon-minimax.svg
mistral ProviderIcon-mistral.svg
moonshot ProviderIcon-kimi.svg
novita ProviderIcon-novita.svg
nvidia ProviderIcon-nvidia.svg
ollama ProviderIcon-ollama.svg
openai ProviderIcon-codex.svg
opencode ProviderIcon-opencode.svg
opencode-go ProviderIcon-opencodego.svg
openrouter ProviderIcon-openrouter.svg
perplexity ProviderIcon-perplexity.svg
pixverse ProviderIcon-pixverse.svg
qianfan ProviderIcon-qianfan.svg
qwen ProviderIcon-alibaba.svg
runway ProviderIcon-runway.svg
stepfun ProviderIcon-stepfun.svg
synthetic ProviderIcon-synthetic.svg
tencent ProviderIcon-tencent.svg
together ProviderIcon-together.svg
venice ProviderIcon-venice.svg
vercel-ai-gateway ProviderIcon-vercel.svg
vllm ProviderIcon-vllm.svg
volcengine ProviderIcon-volcengine.svg
xai ProviderIcon-grok.svg
xiaomi ProviderIcon-mimo.svg
zai ProviderIcon-zai.svg

For LiteLLM, the small source stroke widths are unified at 1.35 source units before combining paths. Stepfun retains its base cutout mark and omits the duplicate gradient overlay. OpenRouter omits the redundant view-box clipping wrapper. Synthetic’s circle rotation around its own center is omitted; its position, radius, and parent transform are unchanged.

Additional service marks

Simple Icons assets are copied from the pinned npm packages below and distributed under CC0 1.0. The original single-path geometry is unchanged except for iMessage: its rounded-square app plate is removed, leaving the original speech-bubble contour. Slack, Microsoft Teams, and Zalo use the most recent pinned package in this table that contains the required mark.

Plugin Source package Icon
brave simple-icons@16.31.0 brave.svg
diagnostics-otel simple-icons@16.31.0 opentelemetry.svg
diagnostics-prometheus simple-icons@16.31.0 prometheus.svg
discord simple-icons@16.31.0 discord.svg
duckduckgo simple-icons@16.31.0 duckduckgo.svg
fish-audio-speech simple-icons@16.31.0 fishaudio.svg
google-meet simple-icons@16.31.0 googlemeet.svg
googlechat simple-icons@16.31.0 googlechat.svg
imessage simple-icons@16.31.0 imessage.svg
line simple-icons@16.31.0 line.svg
matrix simple-icons@16.31.0 matrix.svg
mattermost simple-icons@16.31.0 mattermost.svg
msteams simple-icons@11.15.0 microsoftteams.svg
nextcloud-talk simple-icons@16.31.0 nextcloud.svg
onepassword simple-icons@16.31.0 1password.svg
searxng simple-icons@16.31.0 searxng.svg
signal simple-icons@16.31.0 signal.svg
slack simple-icons@13.21.0 slack.svg
teams-meetings simple-icons@11.15.0 microsoftteams.svg
telegram simple-icons@16.31.0 telegram.svg
twitch simple-icons@16.31.0 twitch.svg
vault simple-icons@16.31.0 vault.svg
whatsapp simple-icons@16.31.0 whatsapp.svg
zalo simple-icons@13.21.0 zalo.svg
zalouser simple-icons@13.21.0 zalo.svg

Exa, Firecrawl, Tavily, and Voyage use the corresponding monochrome exa.svg, firecrawl.svg, tavily.svg, and voyage.svg files from @lobehub/icons-static-svg@1.95.0. Their geometry is unchanged. Source: Lobe Icons, MIT license.

OpenClaw action glyphs

Browser, Canvas, Diffs, and the memory family preserve the approved shapes from icons-tools.ts. The optional overrides preserve Intent, memory store/forget, file fetch/write, and directory list/fetch geometry. Lobster preserves both progress-claw paths, with a solid fill and the jaw’s resting rotate(-10 8.6 11) transform from working-indicator.css. Linux Node reuses the existing platform silhouette from brand-icons.ts.

Other defaults are OpenClaw functional glyphs drawn for the 24-unit activity grid. They indicate the capability rather than reproducing a service’s larger app tile. Related actions deliberately share a visual family:

Capability Plugins
Agent or task flow a2a, acpx, llm-task, raft, reef
Connections and sharing admin-http-rpc, beam, bonjour, device-pair, session-share, webhooks
Chat and meetings buzz, clickclack, feishu, irc, nostr, sms, synology-chat, tlon, zoom-meetings
Files and knowledge document-extract, file-transfer, imap, logbook, memory-wiki, oc-path, web-readability, workboard
Compute and location crabbox, cua-computer, geolocation, gmi, radius, sglang
Security and migration migrate-claude, migrate-hermes, mxc, openshell, policy, visitor-access
Audio and media gradium, inworld, senseaudio, talk-voice, tts-local-cli, voice-call, vydra
Utilities and reports parallel, qa-channel, qa-lab, team-reports, tokenjuice

License notices

Imported SVGs carry their source references and applicable license notices in XML comments, so the notices remain present when a plugin is packaged independently. Existing provider assets carry their source-specific CodexBar, Lobe Icons, llama.cpp, or official-brand notices; Simple Icons assets carry CC0 1.0. These comments do not add SVG elements or alter the rendered geometry. The following MIT notice also applies to the additional Lobe Icons copies.

MIT License

Copyright (c) 2023 LobeHub

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.