Databricks App Design
databricks/databricks-agent-skills
Design the UX of custom-code Databricks Apps (AppKit/React) data screens — KPI/overview pages, reports, charts, tables, and Genie/chat data assistants — mapped to concrete AppKit components.
Builds a piece of UI in multiple variants, lets the developer pick one live in the browser, then finalizes the chosen variant into source
$ npx skills add databricks/appkit --skill appkit-ui-variants -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install databricks/appkit appkit-ui-variants --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/databricks/appkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/appkit/skills/appkit-ui-variants .claude/skills/appkit-ui-variants && 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 "appkit-ui-variants" agent skill from https://github.com/databricks/appkit/tree/main/packages/appkit/skills/appkit-ui-variants into .claude/skills/appkit-ui-variants/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "appkit-ui-variants", 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/databricks/appkit/tree/main/packages/appkit/skills/appkit-ui-variantsType 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 databricks/appkit --skill appkit-ui-variants -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install databricks/appkit appkit-ui-variants --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/databricks/appkit.git skills-src && mkdir -p .agents/skills && cp -r skills-src/packages/appkit/skills/appkit-ui-variants .agents/skills/appkit-ui-variants && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "appkit-ui-variants" agent skill from https://github.com/databricks/appkit/tree/main/packages/appkit/skills/appkit-ui-variants into .agents/skills/appkit-ui-variants/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "appkit-ui-variants", 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 databricks/appkit --skill appkit-ui-variants -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install databricks/appkit appkit-ui-variants --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/databricks/appkit.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/packages/appkit/skills/appkit-ui-variants .cursor/skills/appkit-ui-variants && 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 "appkit-ui-variants" agent skill from https://github.com/databricks/appkit/tree/main/packages/appkit/skills/appkit-ui-variants into .cursor/skills/appkit-ui-variants/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "appkit-ui-variants", 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/databricks/appkit.git --path packages/appkit/skills/appkit-ui-variants--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 databricks/appkit --skill appkit-ui-variants -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install databricks/appkit appkit-ui-variants --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/databricks/appkit.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/packages/appkit/skills/appkit-ui-variants .gemini/skills/appkit-ui-variants && 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 "appkit-ui-variants" agent skill from https://github.com/databricks/appkit/tree/main/packages/appkit/skills/appkit-ui-variants into .gemini/skills/appkit-ui-variants/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "appkit-ui-variants", 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 databricks/appkit appkit-ui-variantsInstalls 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 databricks/appkit --skill appkit-ui-variants -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/databricks/appkit.git skills-src && mkdir -p .github/skills && cp -r skills-src/packages/appkit/skills/appkit-ui-variants .github/skills/appkit-ui-variants && 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 "appkit-ui-variants" agent skill from https://github.com/databricks/appkit/tree/main/packages/appkit/skills/appkit-ui-variants into .github/skills/appkit-ui-variants/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "appkit-ui-variants", 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 databricks/appkit --skill appkit-ui-variants -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install databricks/appkit appkit-ui-variants --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/databricks/appkit.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/packages/appkit/skills/appkit-ui-variants .opencode/skills/appkit-ui-variants && 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 "appkit-ui-variants" agent skill from https://github.com/databricks/appkit/tree/main/packages/appkit/skills/appkit-ui-variants into .opencode/skills/appkit-ui-variants/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "appkit-ui-variants", 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.
appkit-ui-variantsBuilds a piece of UI in multiple variants, lets the developer pick one live in the browser, then finalizes the chosen variant into source
Appkit UI Variants is an agent skill from databricks/appkit, published by the product's own GitHub organization. Builds a piece of UI in multiple variants, lets the developer pick one live in the browser, then finalizes the chosen variant into source
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with macOS and Databricks. The repository describes itself as: Build Databricks Apps faster with our brand-new Node.js + React SDK. Built for humans and AI. The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 97e00e9. 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.
Shell commands in SKILL.md call:
pnpmjqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.
From 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.
Appkit UI Variants loads about 2.3k tokens when it runs. Until then it costs about 39 tokens; SKILL.md has 1,209 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 databricks/appkit at commit 97e00e9, republished under its Apache-2.0 licence (© databricks). 1,209 words, ~2,286 tokens.
.claude/skills/appkit-ui-variants/SKILL.md (or your agent's skills folder).User input: $ARGUMENTS
Build the requested UI in several variants wrapped in the <Variants> picker,
let the developer choose one live in the browser, and then finalize the
chosen variant into source (removing the wrapper).
The picker lets a developer choose between several candidate UIs live in the browser during local dev; you then finalize the chosen one into source.
These rules govern your behavior, not your narration. Apply every rule silently. To the developer, speak only about what you're building and what they need to do — never about the mechanism (the choices file, how a choice is stored, "I read it next turn", or whether you decided to ask).
<Variants> / <Variant> — @databricks/appkit-ui/react. A dev-time
wrapper that renders one candidate at a time with a hover-revealed switcher
(prev/next, an index pill + label) and a Confirm tick.@databricks/appkit. Records the confirmed
choice: Confirm POSTs { blockId, chosenIndex, label } to
POST /api/ui-variants/confirm, upserted into a JSONL file keyed by blockId.
It runs automatically in dev and drops out of production on its own — there's
nothing to set up.node_modules/.databricks/appkit/.appkit-ui-choices.jsonl,
gitignored. A keyed store: one line per <Variants> blockId (not an append
log) — re-confirming a variant replaces that block's line, so the file always
reflects the current choice:
{ "ts": "...", "blockId": "hero-cta", "chosenIndex": 1, "label": "Solid" }.
Its path is relative to the dev server's cwd, not the repo root, so
discover it (finalize step 4) rather than assuming a fixed location.Work out what to build (a component, a section, a page) and where it lives, then
pick the natural target file (e.g. a *.route.tsx or a component under
src/components/…), and decide the block breakdown before authoring. Two rules
shape this step:
<Variants> block = one independent decision — default to one block
per distinct section the user names (a hero + about page → two blocks), and
default 3 meaningfully different variants per block.Wrap each section's candidates in its own <Variants> block, following the
authoring rules below. Note the file path + every blockId — you need them
to finalize.
<Variants> block as one independent decision and
default to one block per distinct section/region the user names. A page
with a hero and an about-us section is two blocks (blockId="hero",
blockId="about"), so the developer chooses each section independently. Use a
single whole-page block only when the user asks for whole-page options or
the sections must move together as one unit.<Variants> block a stable, unique blockId within its
file. Duplicate ids are ambiguous — refuse and disambiguate.<Variant label="…"> with a short, distinct
label. The label is shown in the switcher and recorded on confirm.<Variants> defaults to block layout (full-width, stacking) —
correct for sections, heroes, and pages. Pass layout="inline" only when
wrapping a small inline element such as a single button.One block per section, each candidate a labelled <Variant>:
import { Variants, Variant } from "@databricks/appkit-ui/react";
// "page with a hero and an about-us section" → one block per section
<Variants blockId="hero">
<Variant label="Centered">…hero A…</Variant>
<Variant label="Split with stats">…hero B…</Variant>
<Variant label="Minimal">…hero C…</Variant>
</Variants>
<Variants blockId="about">
<Variant label="Two column">…about A…</Variant>
<Variant label="Timeline">…about B…</Variant>
<Variant label="Team grid">…about C…</Variant>
</Variants>Tell the developer to make the choice in the browser:
Flip through the variants in the browser (hover the block to reveal the switcher) and click Confirm on the one you want.
Then get the "I've chosen" signal — the developer's next message.
The signal is turn-based. Do not start a background watcher. The confirm is recorded to the file; read it on your next turn. How to prompt for it:
Two hard rules: the question must carry a "still deciding / later" option so it never blocks the developer; and only ask when someone is there to answer — if unsure, use plain text. If the developer says "done" but no line exists for the block yet, they haven't clicked Confirm — ask them to, don't finalize nothing.
f=$(find . -path '*/node_modules/.databricks/appkit/.appkit-ui-choices.jsonl' 2>/dev/null | head -1)
cat "$f" # find the line for your block's blockIdblockId, reconcile chosenIndex against
label: check the <Variant> at chosenIndex (zero-based) still has the
recorded label. If they don't match, the file was edited after confirm —
prefer the <Variant> whose label matches; if none matches, stop and ask
the developer to re-confirm.<Variants blockId="<that id>"> block and replace the whole block with
the chosen <Variant>'s inner JSX — remove the <Variants>/<Variant>
wrapper, drop the now-unused import if nothing else uses it, reconcile
surrounding code, then format/lint the file
(pnpm check:fix, or pnpm exec oxlint --fix <file> && pnpm exec oxfmt --write <file>).blockId from the choices file. Match the
blockId structurally (not a loose substring) so a label containing the text
can't delete the wrong line:
tmp=$(mktemp); jq -Rc 'fromjson? | select(.blockId != "<that id>")' "$f" > "$tmp" && mv "$tmp" "$f".Offer to iterate (new variants, tweaks) if the developer wants another round.
blockId, so
re-confirming overwrites the previous line. Read whatever line is there now.blockId in a file. Ambiguous — refuse to finalize automatically;
ask which block, or re-author with unique ids.<Variants> is dev-time scaffolding. Always finalize (or remove) every block
before a production build — a leftover block ships the dev-only picker to
production.
<Variants> block (forces whole-page combos,
hides most combinations) — one block per section instead.<Variants> wrapper in source after a choice — always finalize
(or remove) it; a leftover block ships the dev-only picker to production.© databricks, 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 packages/appkit/skills/appkit-ui-variants of databricks/appkit.
Open the folder on GitHubat commit 97e00e9
Appkit UI Variants 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 |
|---|---|---|---|---|---|---|
| Appkit UI Variants this skilldatabricks/appkit | 105 | — | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Databricks App Designdatabricks/databricks-agent-skills | 345 | — | ~1.7k | Automated safety check: Pass | Custom licence | |
| Build Appdatabricks-solutions/databricks-apps-cookbook | 183 | — | ~3.4k | Automated safety check: Pass | Custom licence | |
| Databricks Appsdatabricks/databricks-agent-skills | 345 | — | ~5.4k | Automated safety check: Pass | Custom licence | |
| Site ArchitectureAvdLee/RocketSimApp | 803 | 11 repos | ~3.3k | Automated safety check: Pass | Custom licence | |
| Engine Whats Newflutter/flutter | 179k | — | ~978 | Automated safety check: Pass | BSD-3-Clause |
databricks/databricks-agent-skills
Design the UX of custom-code Databricks Apps (AppKit/React) data screens — KPI/overview pages, reports, charts, tables, and Genie/chat data assistants — mapped to concrete AppKit components.
databricks-solutions/databricks-apps-cookbook
Build Databricks Apps from this cookbook: minimum folder layout and app.yaml per framework (Dash, Streamlit, Reflex, FastAPI), multi-page wiring, docs category-first workflow then README recipes…
databricks/databricks-agent-skills
Build apps on Databricks Apps platform. An agent skill from databricks/databricks-agent-skills.
AvdLee/RocketSimApp
When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking.
flutter/flutter
Generates the "what's new" release summary and diff file for changes in the Flutter engine (//engine/src/flutter) between two releases (e.g., 3.47 vs 3.44).
Dimillian/Skills
Scaffold, build, and package SwiftPM-based macOS apps without an Xcode project.
databricks/appkit
Format the final answer as a tight markdown bullet list — one idea per bullet, no preamble.
databricks/appkit
Format the final answer as a traditional 5-7-5 haiku. An agent skill from databricks/appkit.
databricks/appkit
How the dispatcher writes a one-line handoff and merges specialist replies.
Works with
Builds a piece of UI in multiple variants, lets the developer pick one live in the browser, then finalizes the chosen variant into source. Appkit UI Variants is an agent skill from databricks/appkit, published by the product's own GitHub organization.
Run `npx skills add databricks/appkit --skill appkit-ui-variants -a claude-code`. Or copy the skill folder (packages/appkit/skills/appkit-ui-variants in databricks/appkit) into .claude/skills/appkit-ui-variants in your project. Claude Code loads it when a task matches its description.
Run `npx skills add databricks/appkit --skill appkit-ui-variants -a codex`. Or copy the skill folder (packages/appkit/skills/appkit-ui-variants in databricks/appkit) into .agents/skills/appkit-ui-variants 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 databricks/appkit --skill appkit-ui-variants -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/appkit-ui-variants, .gemini/skills/appkit-ui-variants, .github/skills/appkit-ui-variants and .opencode/skills/appkit-ui-variants in your project.
Going by SKILL.md and its folder, Appkit UI Variants needs the command-line tools its instructions call (pnpm and jq).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Appkit UI Variants 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 2.3k tokens (SKILL.md is roughly 9.1k 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 Appkit UI Variants: Databricks App Design (databricks/databricks-agent-skills, 345 stars), Build App (databricks-solutions/databricks-apps-cookbook, 183 stars), Databricks Apps (databricks/databricks-agent-skills, 345 stars) and Site Architecture (AvdLee/RocketSimApp, 803 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
databricks (a GitHub organization, an official publisher) maintains it in databricks/appkit, which has 105 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 7, 2026.
Source: databricks/appkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.