UI Styling
Ohh-889/skyroc
Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs.
Conventions for building and styling Textual widgets and TCSS in the Mistral Vibe codebase: selectable lists, tool headers, theme variables and overflow.
$ npx skills add mistralai/mistral-vibe --skill vibe-textual-ui -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mistralai/mistral-vibe vibe-textual-ui --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mistralai/mistral-vibe.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/vibe-textual-ui .claude/skills/vibe-textual-ui && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "vibe-textual-ui" agent skill from https://github.com/mistralai/mistral-vibe/tree/main/.agents/skills/vibe-textual-ui into .claude/skills/vibe-textual-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-textual-ui", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mistralai/mistral-vibe/tree/main/.agents/skills/vibe-textual-uiType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mistralai/mistral-vibe --skill vibe-textual-ui -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mistralai/mistral-vibe vibe-textual-ui --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mistralai/mistral-vibe.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/vibe-textual-ui .agents/skills/vibe-textual-ui && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "vibe-textual-ui" agent skill from https://github.com/mistralai/mistral-vibe/tree/main/.agents/skills/vibe-textual-ui into .agents/skills/vibe-textual-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-textual-ui", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mistralai/mistral-vibe --skill vibe-textual-ui -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mistralai/mistral-vibe vibe-textual-ui --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mistralai/mistral-vibe.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/vibe-textual-ui .cursor/skills/vibe-textual-ui && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "vibe-textual-ui" agent skill from https://github.com/mistralai/mistral-vibe/tree/main/.agents/skills/vibe-textual-ui into .cursor/skills/vibe-textual-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-textual-ui", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mistralai/mistral-vibe.git --path .agents/skills/vibe-textual-ui--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mistralai/mistral-vibe --skill vibe-textual-ui -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mistralai/mistral-vibe vibe-textual-ui --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mistralai/mistral-vibe.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/vibe-textual-ui .gemini/skills/vibe-textual-ui && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "vibe-textual-ui" agent skill from https://github.com/mistralai/mistral-vibe/tree/main/.agents/skills/vibe-textual-ui into .gemini/skills/vibe-textual-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-textual-ui", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mistralai/mistral-vibe vibe-textual-uiInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mistralai/mistral-vibe --skill vibe-textual-ui -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mistralai/mistral-vibe.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/vibe-textual-ui .github/skills/vibe-textual-ui && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "vibe-textual-ui" agent skill from https://github.com/mistralai/mistral-vibe/tree/main/.agents/skills/vibe-textual-ui into .github/skills/vibe-textual-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-textual-ui", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mistralai/mistral-vibe --skill vibe-textual-ui -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mistralai/mistral-vibe vibe-textual-ui --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mistralai/mistral-vibe.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/vibe-textual-ui .opencode/skills/vibe-textual-ui && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "vibe-textual-ui" agent skill from https://github.com/mistralai/mistral-vibe/tree/main/.agents/skills/vibe-textual-ui into .opencode/skills/vibe-textual-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-textual-ui", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
vibe-textual-uiConventions for building and styling Textual widgets and TCSS in the Mistral Vibe codebase: selectable lists, tool headers, theme variables and overflow.
This skill collects the house rules for Textual terminal UI work under `vibe/cli/`. Selectable lists should use the project's `NavigableOptionList` rather than Textual's `OptionList`, because it adds j and k navigation on top of the arrow keys. Feature-specific state and helpers stay with the feature's widget package, so `app.py` only orchestrates mounting and message handling.
Tool headers are rendered as an explicit verb plus message in every state: progressive wording while a call runs and a settled verb once any result arrives, including a failure, with markers like `(truncated)` kept after the message and error details left in the expandable body. For TCSS, a muted text color gets a nested `&:ansi` rule that dims it, `ansi_*` colors are never used in favor of theme variables such as `$primary` and `$error`, and truncation stays declarative instead of relying on resize handlers.
Read from SKILL.md and the folder at commit 4ae5c59. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
textual.textualize.ioFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Vibe Textual UI Conventions loads about 591 tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 258 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from mistralai/mistral-vibe at commit 4ae5c59, republished under its Apache-2.0 licence (© mistralai). 258 words, ~591 tokens.
.claude/skills/vibe-textual-ui/SKILL.md (or your agent's skills folder).Conventions for building and styling Textual TUI widgets in Vibe. Apply when working in vibe/cli/, creating or modifying widgets, or writing TCSS.
The Textual TUI is being deprecated in favor of the Rust TUI (vibe/cli-rust/). Every user-visible change made here must also ship in the Rust TUI in the same PR; see "Terminal UI changes" in the Vibe project AGENTS.md (next to pyproject.toml).
NavigableOptionList from vibe/cli/textual_ui/widgets/navigable_option_list.py instead of Textual's OptionList. It adds j/k cursor navigation on top of the arrow keys; the bare OptionList only handles arrows.app.py should orchestrate mounting and message handling, not accumulate feature-local state models, defaulting helpers, or import factories.(truncated) or (scratchpad) immediately after the message and keep error details in the expandable result body.color: $text-muted;, pair it with a nested &:ansi { text-style: dim; } so the muted intent survives under ANSI themes.ansi_* colors (e.g. ansi_red, ansi_bright_blue). Use Textual theme variables like $primary, $foreground, $surface, $error, etc. — see https://textual.textualize.io/guide/design/. ANSI themes are derived from these variables automatically.© mistralai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/vibe-textual-ui of mistralai/mistral-vibe.
Open the folder on GitHubat commit 4ae5c59
Vibe Textual UI Conventions next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Vibe Textual UI Conventions this skillmistralai/mistral-vibe | 5.1k | — | ~591 | Automated safety check: Pass | Apache-2.0 | |
| UI StylingOhh-889/skyroc | 795 | 13 repos | ~2.5k | Automated safety check: Pass | MIT | |
| UI UX Pro Maxsaoudi-h/solar-icons | 190 | 18 repos | ~11k | Automated safety check: Notes | Custom licence | |
| Liuguang Banlan UIsickn33/agentic-awesome-skills | 47k | 1 repos | ~2.5k | Automated safety check: Pass | MIT | |
| UI UX Pro MaxOhh-889/skyroc | 795 | 26 repos | ~3.6k | Automated safety check: Notes | MIT | |
| UI UX Pro Maxshobcoder/shob | 576 | — | ~3.7k | Automated safety check: Pass | MIT |
Ohh-889/skyroc
Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs.
saoudi-h/solar-icons
UI/UX design intelligence for web and mobile. An agent skill from saoudi-h/solar-icons.
sickn33/agentic-awesome-skills
Implements an interface in one of two named color modes, iridescent white or colorful black, from a parameterized starter that reports measured color intensity.
Ohh-889/skyroc
UI/UX design intelligence. An agent skill from Ohh-889/skyroc.
shobcoder/shob
UI/UX design intelligence expert for web and mobile applications.
ryokun6/ryos
Design and style ryOS UI using the current OS theme token system, Tailwind variants, shared primitives, Aqua Glass, dark mode, and accent conventions.
mistralai/mistral-vibe
Shows how to build a Vibe plugin package in the Agent Plugins 1.0 format, with a plugin.json manifest and optional skills, MCP servers, hooks and other components.
mistralai/mistral-vibe
Guides feature work in the Mistral Vibe Python CLI so each change lands in the right module and matches the project's architecture decision records.
mistralai/mistral-vibe
Plans which analytics events and properties a new feature needs, checks them against the existing event registry, and verifies them per environment.
mistralai/mistral-vibe
Creates, reuses and cleans up git worktrees under a shared vibe home directory, with per-repo buckets, claim records and dirty-state checks before removal.
mistralai/mistral-vibe
Creates or updates concise Architecture Decision Records for the Mistral Vibe CLI and registers each one in the AGENTS.md decisions table.
mistralai/mistral-vibe
Guides writing or refactoring tests for the Mistral Vibe CLI agent so they check behavior through stable boundaries, like tool invocation or saved session shape, instead of internal calls.
Works with
Categories
Conventions for building and styling Textual widgets and TCSS in the Mistral Vibe codebase: selectable lists, tool headers, theme variables and overflow. This skill collects the house rules for Textual terminal UI work under `vibe/cli/`. Selectable lists should use the project's `NavigableOptionList` rather than Textual's `OptionList`, because it adds j and k navigation on top of the arrow keys.
Vibe Textual UI Conventions fits situations like: adding or restyling a Textual widget in Vibe's CLI; writing TCSS rules that must also work under ANSI themes; building a selectable list with keyboard navigation; formatting tool call headers across running, success and failure states.
Run `npx skills add mistralai/mistral-vibe --skill vibe-textual-ui -a claude-code`. Or copy the skill folder (.agents/skills/vibe-textual-ui in mistralai/mistral-vibe) into .claude/skills/vibe-textual-ui in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mistralai/mistral-vibe --skill vibe-textual-ui -a codex`. Or copy the skill folder (.agents/skills/vibe-textual-ui in mistralai/mistral-vibe) into .agents/skills/vibe-textual-ui in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mistralai/mistral-vibe --skill vibe-textual-ui -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vibe-textual-ui, .gemini/skills/vibe-textual-ui, .github/skills/vibe-textual-ui and .opencode/skills/vibe-textual-ui in your project.
SKILL.md names no scripts, command-line tools or credentials: Vibe Textual UI Conventions is instructions for the agent only. Our summary lists: The Mistral Vibe codebase, specifically the vibe/cli package.
SKILL.md names 1 domain. As links in the text: textual.textualize.io. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Vibe Textual UI Conventions is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 591 tokens (SKILL.md is roughly 2.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Vibe Textual UI Conventions: UI Styling (Ohh-889/skyroc, 795 stars), UI UX Pro Max (saoudi-h/solar-icons, 190 stars), Liuguang Banlan UI (sickn33/agentic-awesome-skills, 47k stars) and UI UX Pro Max (Ohh-889/skyroc, 795 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mistralai (a GitHub organization, an official publisher) maintains it in mistralai/mistral-vibe, which has 5,087 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 9, 2026.
Source: mistralai/mistral-vibe on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.