Agent skill

Tm Launcher Design

by Far-Se in Far-Se/tabame

Create or revise Tabame's Flutter launcher designs: frames, search bars, result rows, palettes, typography, and action dialogs.

MITAuto-check passedMobile

Install Tm Launcher Design

skills CLI
$ npx skills add Far-Se/tabame --skill tm-launcher-design -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Far-Se/tabame tm-launcher-design --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Far-Se/tabame.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/tm-launcher-design .claude/skills/tm-launcher-design && rm -rf skills-src

Use ~/.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/

Facts

Skill name
tm-launcher-design
GitHub stars
372
Token cost
~3.1k tokens
SKILL.md length
1,492 words
Files
4 (incl. references)
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Create or revise Tabame's Flutter launcher designs: frames, search bars, result rows, palettes, typography, and action dialogs.

  • Works in 5 steps: Read the repository's AGENTS.md and… → Use the registration map below to… → For a new design, use starter.md if a… → …
  • Adding a LauncherDesign
  • SKILL.md covers Read only what the task needs, Register a new design, Keep the shared widget contracts and Make the visual system coherent, plus 1 more section
  • Calls flutter and rg

What it does

Tm Launcher Design is an agent skill from Far-Se/tabame. Create or revise Tabame's Flutter launcher designs: frames, search bars, result rows, palettes, typography, and action dialogs. Use when adding a LauncherDesign or restyling the launcher, with a compact integration guide instead of reading every existing design. Does not cover launcher script plugins or quick-menu button panels.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `agents/openai.yaml`, `references/material-effects.md` and `references/starter.md`).

It sits in Mobile, covering Cross-platform mobile apps and Typography. It works with Flutter. The repository describes itself as: Tabame is an alternative to Windows Taskbar. It's Raycast and Powertoys combined. The licence is MIT.

When your agent uses it

  • Adding a LauncherDesign
  • Restyling the launcher
  • With a compact integration guide instead of reading every existing design

Example prompts

  • “/tm-launcher-design”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Read the repository's AGENTS.md and inspect the working tree before editing.
  2. Use the registration map below to inspect the specific declarations and switch cases being changed. Use rg -n and bounded reads; avoid…
  3. For a new design, use starter.md if a frame/search/row example would help. It captures the shared contracts without copying a large…
  4. Read material-effects.md only for shaders, animated surfaces, or elaborate painted materials.
  5. If an example is still needed, open one relevant source: classic_launcher_design.dart for a simple frame/search…

What it can do on your machine

Read from SKILL.md and the folder at commit 5b2281a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • flutter
    • rg

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Tm Launcher Design loads about 3.1k tokens when it runs, and up to ~5.7k if it reads all its reference files. Until then it costs about 87 tokens; SKILL.md has 1,492 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~87
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.7k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from Far-Se/tabame at commit 5b2281a, republished under its MIT licence (© Far-Se). 1,492 words, ~3,095 tokens.

Download SKILL.mdSave it as .claude/skills/tm-launcher-design/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
tm-launcher-design
description
Create or revise Tabame's Flutter launcher designs: frames, search bars, result rows, palettes, typography, and action dialogs. Use when adding a LauncherDesign or restyling the launcher, with a compact integration guide instead of reading every existing design. Does not cover launcher script plugins or quick-menu button panels.

Tabame Launcher Design

Build a complete launcher appearance while retaining the shared search, selection, execution, preview, and plugin behavior. The user can choose any visual direction; existing designs establish integration contracts, not one mandatory aesthetic.

Read only what the task needs

  1. Read the repository's AGENTS.md and inspect the working tree before editing.
  2. Use the registration map below to inspect the specific declarations and switch cases being changed. Use rg -n and bounded reads; avoid dumping launcher.dart, the token catalog, or every design.
  3. For a new design, use starter.md if a frame/search/row example would help. It captures the shared contracts without copying a large existing design.
  4. Read material-effects.md only for shaders, animated surfaces, or elaborate painted materials.
  5. If an example is still needed, open one relevant source: classic_launcher_design.dart for a simple frame/search, strata_launcher_design.dart for a results panel/footer, or satin_result_row.dart for a compact row. Resolve their directories from the map. Some older examples hardcode colors or geometry; follow the current shared helpers below.

All paths are relative to the project root. In the table, L/ means lib/pages/launcher/. Use a snake_case file slug, a lowerCamelCase enum value, and PascalCase classes, for example paper_signal, paperSignal, and PaperSignalLauncherFrame.

Register a new design

For a revision, change only the relevant parts of this map. For a new design, account for every row; default branches can silently leave parts of the UI in the wrong style.

FileIntegration
lib/models/design_settings.dartAppend to LauncherDesign; never reorder existing entries, because preferences store design.index. Give multiword names an explicit displayName. Add a LauncherDesignThemeSet to DesignSettings.createDefaultLauncherDesignThemes(), keyed by that display name, with light and dark defaultThemeColors(...) presets. Include intended fonts, weights, radius, and base size. Existing display names are saved theme-map keys; renaming needs a migration.
L/launcher_design.dartPut shared <Name>Tokens here when the design needs them across frame, rows, and dialogs. Use getters for live palette values and wrap custom type styles in launcherTextStyle(...). Add LauncherThemeData.is<Name> only if something actually consumes it.
L/launcher_design_config.dartAdd a LauncherDesignConfig.forDesign case: search icon/size/font/hint, frame/control radii, list padding, and relevant flags (usesDesignFont, outlinedControls). This is a part of launcher_design.dart.
L/launcher_palette.dartAdd a LauncherPalette.resolve case. Supply surface, onSurface, accent, and dim, optionally highlightColor, primary, modalSurface, or modalAccent. This part of launcher_design.dart is the shared palette for the launcher and dialogs.
L/launcher_designs/<slug>_launcher_design.dartStart with part of '../launcher_design_builder.dart';. Define _slugOuterDecoration(...), _<Name>SearchBar, and public <Name>LauncherFrame. Add imports to the owning library, not this part. Keep private visual helpers here.
L/launcher_design_builder.dartAdd the part directive and cases in both LauncherDesignBuilder.outerDecoration and buildSearchBar. The outer decoration is also used by action dialogs.
L/state/launcher_layout_mixin.dartAdd the frame in _buildLauncherFrame, normally <Name>LauncherFrame(child: buildBody()); pass resultCount only if used. Preserve shared content and the resize overlay. Change buildBody only if the new geometry requires it.
L/result/designs/<slug>_result_row.dart and L/result/result_row.dartStart the new file with part of '../result_row.dart';; implement a private extension on LauncherResultRow. Add its part directive and renderer case in LauncherResultRow.build. Reuse an existing renderer only when its appearance actually fits.
L/widgets/launcher_section_header.dartAdd the design's case in _LauncherSectionHeader.build. Use the supplied label and resolved accent; this header is also called from dialogs. An intentionally omitted header must still have an explicit case.
L/state/launcher_theme_mixin.dartSet the design's text theme in _buildDesignTheme when it has a specific font. Keep palette.applyTo(...) and the existing user font override flow.
L/launcher_modal_theme.dartMatch dialog typography in LauncherModalTokens.text. Inspect LauncherModalFrame and its surface/header/footer styling; add only the treatments the design needs. A new enum case can compile while falling back to unrelated modal styling.

The picker in lib/widgets/itzy/quickmenu/button_menu_design.dart and design search in L/state/search_mixin.dart enumerate LauncherDesign.values; they normally need no extra per-design registration. Persistence is already handled by lib/models/classes/boxes/boxes_base.dart and lib/models/settings.dart.

Ordinary designs need no new search logic in lib/pages/launcher.dart. If special preview chrome is required, use L/widgets/launcher_file_preview_panel.dart and L/widgets/launcher_window_preview_panel.dart; their shared behavior and default palette support should remain reusable. Shared material widgets belong in L/widgets/, shaders in resources/shaders/, and registered visual assets in resources/ with the appropriate pubspec.yaml entry.

Keep the shared widget contracts

Search and frame

_LauncherSearchBarContent supplies dragHandle, textField, nullable trailingBadge, and isSearching. Present all four appropriately. Prefer Expanded(child: _LauncherSearchField(content)) for the field plus its badge overlay. If laying out the badge yourself, retain the original content.textField and handle a null badge. Preserve the supplied drag handle, or an equivalent real drag region.

The search controller, focus, keyboard shortcuts, query callbacks, and results belong to the shared launcher. Do not create a replacement TextField, controller, result list, or execution path inside a design. Frames decorate the supplied child; they do not duplicate it. Keep result scrolling, plugin views, preview resizing, and height resizing reachable. For a footer use a bounded flexible body, and hide or wrap low-priority hints at narrow widths.

Result rows

Use the existing LauncherResultRow fields and helpers:

  • Wrap the row in _interactive(...); it supplies tap, selected semantics, cursor, and hover selection only when the pointer moves. An onEnter selection handler makes keyboard navigation jump under a stationary mouse.
  • Render the supplied icon and optional badge. Prefer content when non-null; it is a real custom widget, not a string to discard or reconstruct.
  • Otherwise render _titleText(style) and _subtitleText(style). They retain plugin inline markup, ellipsis, and subtitleMaxLines.
  • Use isSelected for the selection treatment. Keep feedback immediate; if adding transitions, respect isRepeating so held arrow keys do not queue animations.
  • Reserve space for selection glyphs to avoid shifting titles. Let rows grow for wrapping subtitles and larger text; prefer minimum height over a fixed height.
  • Leave onTap/onHover, ranking, launch behavior, and action construction in the shared code.
Show full SKILL.md (581 more words)Show less

Make the visual system coherent

  • Choose a clear material, typography, and selection treatment, then carry them through frame, search, headers, rows, previews, and dialogs. The launcher is a frequently used desktop search tool: keep the query and useful results prominent, with compact secondary labels and chrome.
  • Put default colors in the design presets. For an ordinary customizable design, derive tokens from user.launcherThemeColors.background, .text, and .accent; derive panels, borders, dim text, and selection washes from them. In widgets use the resolved Theme or LauncherTheme.accentOf(context). Avoid scattering unrelated fixed colors or quick-menu palette reads through the implementation.
  • Derive contrast from the resolved surface brightness, which can differ from the app's brightness after user customization. Fixed art palettes in some existing designs are deliberate exceptions, not a default to copy. Use light/dark presets unless the requested art direction calls for a fixed palette.
  • Use launcherTextStyle(...) for explicitly constructed design text styles, and retain launcherTextTheme(...) integration. Apply the same type voice in LauncherModalTokens.text: dialogs may live outside LauncherTheme, so use its fallback palette resolver rather than requiring LauncherTheme.of(context) there.
  • Use LauncherSurface(decoration: boxDecoration, child: ...) for the outer frame. Use .withLauncherCorners() on rectangular BoxDecorations and LauncherClip when descendants need clipping. Keep outerDecoration returning BoxDecoration; consumers apply the shared corner policy. Hardcoded ClipRRect or a separate frame border can bypass the user's round/squircle/bevel and radius settings.
  • Prefer content that can shrink, wrap, or ellipsize at the configured launcher width. A footer or decorative heading must not crowd search, force an oversized minimum window, or steal space from the preview.
  • Keep selection and text readable on the actual surface, including user palettes. Do not delay input or selection for animation. Decorative layers should not capture pointer events or add misleading semantics; use IgnorePointer/ExcludeSemantics where appropriate.
  • Show actual result counts and existing commands. Verify any shortcut text against L/state/keyboard_navigation_mixin.dart; do not invent decorative controls, statuses, or keyboard hints that promise unavailable behavior.
  • Follow local Dart conventions: explicit variable/collection types, relative imports, const constructors where possible, and the shared corner/font helpers. A visual design usually needs no new dependency or native API.

Review and validate

Before running the one allowed analysis pass, review the integration map and search targeted branches for the new enum and any copied design name. Confirm all exhaustive switches are covered and default branches are intentional. Review these acceptance cases against the implementation; use an already available preview only when permitted:

  • Empty query, loading, no matches, and many results; long titles and wrapping subtitles.
  • Mouse movement versus keyboard selection, held arrows, Enter, actions, and dragging/resizing.
  • Custom row content, badges, plugin markup and plugin views; file/window previews and dialogs.
  • Light/dark and edited palettes, custom fonts and corner shapes, narrow windows and larger text.
  • Reduced motion, hidden/inactive windows, and material fallback if effects are present.

Follow the current AGENTS.md. After changing Dart, from the project root use dart resolved from PATH, one command at a time:

text
dart format <only Dart files changed in this task>
dart analyze <only Dart files changed in this task>

Run format once and analyze once. Do not use absolute Dart paths, .bat launchers, PATH changes, Dart MCP formatting, full-project analysis, flutter build, or flutter run. Do not run tests as part of this design workflow; consult AGENTS.md if its narrow existing _test.dart exception is relevant. On failure report the exact command, failure, and output as-is; report any later fixes without claiming an unperformed rerun. Do not build just to obtain a visual preview.

Finish with the design name, integration completed, actual checks and results, and any unverified runtime appearance or shader behavior. Static analysis does not establish visual quality or compile GLSL.

© Far-Se, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (references) in .agents/skills/tm-launcher-design of Far-Se/tabame.

  • SKILL.md
  • agents/openai.yaml
  • references/material-effects.md
  • references/starter.md

Open the folder on GitHubat commit 5b2281a

Compare with similar skills

Tm Launcher Design 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.

Tm Launcher Design compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tm Launcher Design this skillFar-Se/tabame372—~3.1kAutomated safety check: PassMIT
Frontend UI StandardsMaxHan7/frontend-ui-standards-skill106—~2.4kAutomated safety check: PassMIT
Frontend Designavibebuilder/claude-prime120—~2.1kAutomated safety check: PassMIT
Flutter Theming Appsbtwld/superdeck130—~1.9kAutomated safety check: PassBSD-3-Clause
UI UX Pro Maxsaoudi-h/solar-icons19018 repos~11kAutomated safety check: NotesCustom licence
Add Flutter Docusaurus Localematthiasn/lotti1.2k—~1.2kAutomated safety check: PassGPL-3.0

Similar skills

  • Frontend UI Standards

    MaxHan7/frontend-ui-standards-skill

    A skill your agent uses when implementing, refactoring, or reviewing frontend UI across SwiftUI, React, React Native, Flutter, web, or mobile apps.

    106 GitHub stars~2.4k tokensUpdated 3 mo ago
    Frontend & DesignAuto-check passed
  • Frontend Design

    avibebuilder/claude-prime

    Builds distinctive, production-grade UIs that avoid generic AI aesthetics.

    120 GitHub stars~2.1k tokensUpdated 4 mo ago
    Frontend & DesignAuto-check passed
  • Flutter Theming Apps

    btwld/superdeck

    Customizes the visual appearance of a Flutter app using the theming system.

    130 GitHub stars~1.9k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • UI UX Pro Max

    saoudi-h/solar-icons

    UI/UX design intelligence for web and mobile. An agent skill from saoudi-h/solar-icons.

    190 GitHub starsUsed in 18 repos~11k tokens
    Frontend & DesignAuto-check: notes
  • Add, complete, or audit a locale across a Flutter application's ARB catalogs and a localized Docusaurus manual, including generated localization code, locale selectors, native platform declarations…

    1.2k GitHub stars~1.2k tokensUpdated today
    MobileAuto-check passed
  • Flutter Init

    bear2u/my-skills

    A skill your agent uses when user wants to create a new Flutter project (Todo/Habit/Note/Expense/Custom domain) with Clean Architecture, Riverpod 3.0, Drift, and modern Flutter stack

    932 GitHub stars~2.5k tokensUpdated 3 mo ago
    MobileAuto-check passed

More from Far-Se/tabame

  • Tbm Plugin

    Far-Se/tabame

    Author a Tabame launcher plugin – an external Python/Node/Bun script that extends the app launcher, talking newline-delimited JSON over stdin/stdout.

    372 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Tm Quick Action

    Far-Se/tabame

    Build or revise Tabame quick menu top-bar buttons in lib/widgets/itzy/quickmenu/button.dart.

    372 GitHub stars~4.3k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Tm Launcher Design

What does Tm Launcher Design do?

Create or revise Tabame's Flutter launcher designs: frames, search bars, result rows, palettes, typography, and action dialogs. Tm Launcher Design is an agent skill from Far-Se/tabame. Create or revise Tabame's Flutter launcher designs: frames, search bars, result rows, palettes, typography, and action dialogs.

When should I use Tm Launcher Design?

Tm Launcher Design fits situations like: adding a LauncherDesign; restyling the launcher; with a compact integration guide instead of reading every existing design.

How do I install Tm Launcher Design in Claude Code?

Run `npx skills add Far-Se/tabame --skill tm-launcher-design -a claude-code`. Or copy the skill folder (.agents/skills/tm-launcher-design in Far-Se/tabame) into .claude/skills/tm-launcher-design in your project. Claude Code loads it when a task matches its description.

How do I install Tm Launcher Design in Codex?

Run `npx skills add Far-Se/tabame --skill tm-launcher-design -a codex`. Or copy the skill folder (.agents/skills/tm-launcher-design in Far-Se/tabame) into .agents/skills/tm-launcher-design in your project. Codex loads it when a task matches its description.

Can I use Tm Launcher Design in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Far-Se/tabame --skill tm-launcher-design -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tm-launcher-design, .gemini/skills/tm-launcher-design, .github/skills/tm-launcher-design and .opencode/skills/tm-launcher-design in your project.

What does Tm Launcher Design need to run?

Going by SKILL.md and its folder, Tm Launcher Design needs the command-line tools its instructions call (flutter and rg).

Does Tm Launcher Design access the network?

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.

Is Tm Launcher Design safe to install?

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.

What licence does Tm Launcher Design use?

Tm Launcher Design is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Tm Launcher Design use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.6k tokens, read only when the agent opens those files.

What are the alternatives to Tm Launcher Design?

Skills that share tags, products or a category with Tm Launcher Design: Frontend UI Standards (MaxHan7/frontend-ui-standards-skill, 106 stars), Frontend Design (avibebuilder/claude-prime, 120 stars), Flutter Theming Apps (btwld/superdeck, 130 stars) and UI UX Pro Max (saoudi-h/solar-icons, 190 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tm Launcher Design?

Far-Se (a GitHub user) maintains it in Far-Se/tabame, which has 372 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 10, 2026.

Source: Far-Se/tabame on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.