Agent skill

Warp One-Time Launch Modal

by warpdotdev in warpdotdev/warp

Steps for adding a one-time launch or announcement modal to the Warp desktop GUI, gated by a feature flag and tracked by a settings field.

AGPL-3.0Auto-check passedFrontend & Design

Install Warp One-Time Launch Modal

skills CLI
$ npx skills add warpdotdev/warp --skill gui-create-launch-modal -a claude-code

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

GitHub CLI
$ gh skill install warpdotdev/warp gui-create-launch-modal --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/warpdotdev/warp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/gui-create-launch-modal .claude/skills/gui-create-launch-modal && 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
gui-create-launch-modal
GitHub stars
65k
Used in
1 other repo
Token cost
~3.1k tokens
SKILL.md length
502 words
Files
1
Skills in repo
46
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Steps for adding a one-time launch or announcement modal to the Warp desktop GUI, gated by a feature flag and tracked by a settings field.

  • Works in 7 steps: Custom icons (if needed) → Feature flag → Settings field → …
  • Adding a feature announcement or onboarding modal to the Warp desktop app
  • SKILL.md covers Reference implementation, Checklist, Step 0 – Custom icons (if… and Step 1 – Feature flag, plus 6 more sections
  • Reaches warp.dev

What it does

This skill applies only to Warp's GUI desktop front-end, not its headless TUI, and treats the orchestration launch modal as the reference implementation. It lays out a checklist spanning eight places: a feature flag, a settings field, trigger logic in the one-time modal model, the view files, workspace wiring, debug actions, a hero image and any new icons.

The steps then go in order. Custom icons are added to the icon enum with an SVG in the same format as existing ones, a new variant is added to the feature flag list and enabled for dogfood builds, and one private boolean settings field per modal, synced globally, records whether the user has already seen it. The excerpt cuts off at the model step, and the description adds that colors must come from Warp theme tokens and terminal theme colors.

When your agent uses it

  • Adding a feature announcement or onboarding modal to the Warp desktop app
  • Showing a modal exactly once per user on startup
  • Wiring a new launch modal behind a feature flag

Example prompts

  • “Add a one-time launch modal announcing the new agent feature, gated by a feature flag.”
  • “Create a launch modal with a hero image and a custom icon, using Warp theme tokens for colors.”
  • “Show me the files I need to touch to add a startup modal like the orchestration one.”

Requirements

  • A checkout of the Warp repository

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Custom icons (if needed)
  2. Feature flag
  3. Settings field
  4. OneTimeModalModel
  5. View
  6. Workspace wiring
  7. Debug actions

What it can do on your machine

Read from SKILL.md and the folder at commit f571865. 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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are rust).

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • warp.dev

    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

Warp One-Time Launch Modal loads about 3.1k tokens when it runs. Until then it costs about 78 tokens; SKILL.md has 502 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~78
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

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 warpdotdev/warp at commit f571865, republished under its AGPL-3.0 licence (© warpdotdev). 502 words, ~3,117 tokens.

Download SKILL.mdSave it as .claude/skills/gui-create-launch-modal/SKILL.md (or your agent's skills folder).
name
gui-create-launch-modal
description
GUI desktop app only. Create a one-time launch modal in the Warp client (feature announcement, onboarding, etc.). Use when adding a new modal that should appear exactly once per user on startup, gated by a feature flag, with colors sourced from Warp theme tokens and terminal theme colors.

gui-create-launch-modal

Scope — GUI desktop app only. This skill applies to Warp's GUI desktop front-end (the app/ crate on the WarpUI pixel/GPU framework). It does not apply to the headless TUI front-end (crates/warp_tui; cell-grid TuiElement library under crates/warpui_core/src/elements/tui), which has its own components, tests, and change-verification workflow. For TUI work, see the tui-ui-guidelines, tui-testing, and tui-verify-change skills instead.

Create a one-time launch modal — the feature-announcement design used for launches like "Orchestrate any agent, anywhere" or "Warp is now open-source."

Reference implementation

app/src/workspace/view/orchestration_launch_modal/ — the canonical, most up-to-date example of this pattern.

Checklist

  • Feature flag in warp_features/src/lib.rs
  • Settings field in app/src/settings/ai.rs
  • Trigger logic in app/src/workspace/one_time_modal_model.rs
  • View files under app/src/workspace/view/<name>_launch_modal/
  • Workspace wiring in app/src/workspace/view.rs and app/src/workspace/mod.rs
  • Debug actions in app/src/workspace/action.rs
  • Hero image at app/assets/async/png/onboarding/<name>_launch_banner.png
  • Any custom icons added to crates/warp_core/src/ui/icons.rs + SVG in app/assets/bundled/svg/

Step 0 – Custom icons (if needed)

If the modal uses icons not yet in the Icon enum, add them before writing the view.

In crates/warp_core/src/ui/icons.rs:

rust
// Add to enum
YourIconName,

// Add to From<Icon> for &'static str match
Icon::YourIconName => "bundled/svg/your-icon-name.svg",

Drop the SVG file at app/assets/bundled/svg/your-icon-name.svg. Use the same 24×24 viewBox format as existing icons.


Step 1 – Feature flag

Add to crates/warp_features/src/lib.rs:

rust
/// Enables the <name> launch modal.
<YourModalName>LaunchModal,

Enable for dogfood:

rust
pub const DOGFOOD_FLAGS: &[FeatureFlag] = &[
    FeatureFlag::<YourModalName>LaunchModal,
    // ...
];

Step 2 – Settings field

Add to app/src/settings/ai.rs inside define_settings_group!(AISettings, ...). Pattern: one boolean field per modal, globally synced (not respecting user sync), private.

rust
// This is not a user-visible setting - it's merely a one-time flag to track if the
// <name> launch modal has been shown to the user.
//
// We model it as a setting so it's only shown once to a given user regardless of the number of
// devices they use.
did_check_to_trigger_<name>_launch_modal: DidShow<Name>LaunchModal {
    type: bool,
    default: false,
    supported_platforms: SupportedPlatforms::ALL,
    sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::No),
    private: true,
}

Step 3 – OneTimeModalModel

File: app/src/workspace/one_time_modal_model.rs

3a. Add field to struct
rust
is_<name>_launch_modal_open: bool,
3b. Initialize to false in new()
rust
is_<name>_launch_modal_open: false,
3c. Pre-dismiss for new users (critical)

In the AuthComplete → !is_existing_user branch, add to the AISettings::handle update block alongside the other pre-dismissals. Without this, new users see the modal on their second startup after onboarding.

rust
if let Err(e) = settings
    .did_check_to_trigger_<name>_launch_modal
    .set_value(true, ctx)
{
    log::warn!("Failed to mark <name> launch modal as dismissed: {e}");
}
3d. Public API methods
rust
pub fn is_<name>_launch_modal_open(&self) -> bool {
    self.is_<name>_launch_modal_open && self.target_window_id.is_some()
}

pub fn mark_<name>_launch_modal_dismissed(&mut self, ctx: &mut ModelContext<Self>) {
    self.set_<name>_launch_modal_open(false, ctx);
}

#[cfg(debug_assertions)]
pub fn force_open_<name>_launch_modal(&mut self, ctx: &mut ModelContext<Self>) {
    self.set_<name>_launch_modal_open(true, ctx);
}
3e. Private setter
rust
fn set_<name>_launch_modal_open(&mut self, is_open: bool, ctx: &mut ModelContext<Self>) -> bool {
    if self.is_<name>_launch_modal_open != is_open {
        self.is_<name>_launch_modal_open = is_open;
        ctx.emit(OneTimeModalEvent::VisibilityChanged { is_open });
        return true;
    }
    false
}
3f. Add to is_any_modal_open
rust
|| self.is_<name>_launch_modal_open
3g. Trigger function
rust
fn check_and_trigger_<name>_launch_modal(&mut self, ctx: &mut ModelContext<Self>) -> bool {
    if !FeatureFlag::<Name>LaunchModal.is_enabled() {
        return false;
    }

    let ai_settings = AISettings::as_ref(ctx);
    if *ai_settings.did_check_to_trigger_<name>_launch_modal {
        return false;
    }

    AISettings::handle(ctx).update(ctx, |settings, ctx| {
        if let Err(e) = settings
            .did_check_to_trigger_<name>_launch_modal
            .set_value(true, ctx)
        {
            log::warn!("Failed to mark <name> launch modal as dismissed: {e}");
        }
    });

    let should_show = !matches!(ChannelState::channel(), Channel::Integration);
    self.set_<name>_launch_modal_open(should_show, ctx);
    should_show
}
3h. Call from check_and_trigger_all_modals

Insert before check_and_trigger_hoa_onboarding:

rust
if self.check_and_trigger_<name>_launch_modal(ctx) {
    return;
}

Step 4 – View

Create app/src/workspace/view/<name>_launch_modal/mod.rs:

rust
mod view;
pub use view::{init, <Name>LaunchModal, <Name>LaunchModalEvent};

Create app/src/workspace/view/<name>_launch_modal/view.rs. Copy from orchestration_launch_modal/view.rs and adapt. Key details:

Show full SKILL.md (216 more words)Show less
Color sources (important)
  • Prefer Warp theme tokens for modal backgrounds, text, overlays, and borders:
    • background surfaces: appearance.theme().surface_3() (or another surface_* token when needed)
    • primary/subtext: appearance.theme().main_text_color(...) and appearance.theme().sub_text_color(...)
    • overlays/hover fills: appearance.theme().surface_overlay_1() / surface_overlay_2()
    • subtle borders: appearance.theme().outline()
  • Use terminal theme colors for terminal-color accents (for example, magenta launch badge accents):
    • appearance.theme().terminal_colors().normal.magenta
    • appearance.theme().ansi_overlay_1(magenta) for low-alpha backgrounds
  • Avoid hardcoded hex colors.
Hero image
  • Store at app/assets/async/png/onboarding/<name>_launch_banner.png
  • Aspect ratio matters: if the image is wider than MODAL_WIDTH/HERO_HEIGHT (420/92 ≈ 4.57), wrap the hero ConstrainedBox in Clipped::new(...) to prevent horizontal bleed when cover() scales it
  • Images pre-sized to exactly 420×92 need no Clipped; images only taller (aspect ratio < 4.57) are fine without it
rust
const MODAL_WIDTH: f32 = 420.;
const HERO_HEIGHT: f32 = 92.;
const HERO_IMAGE_PATH: &str = "async/png/onboarding/<name>_launch_banner.png";

fn render_hero(&self) -> Box<dyn Element> {
    let hero = Clipped::new(          // only needed if image ratio > 4.57
        ConstrainedBox::new(
            Image::new(AssetSource::Bundled { path: HERO_IMAGE_PATH }, CacheOption::Original)
                .with_corner_radius(CornerRadius::with_top(Radius::Pixels(8.)))
                .cover()
                .top_aligned()
                .finish(),
        )
        .with_width(MODAL_WIDTH)
        .with_height(HERO_HEIGHT)
        .finish(),
    )
    .finish();
    // ... close button overlay via Stack + add_positioned_child
}
"New" badge

Use the standard badge — 24 px tall, 8 px horizontal padding, 14 px font, pill corners, with magenta sourced from terminal theme colors:

rust
fn render_badge(appearance: &Appearance) -> Box<dyn Element> {
    let magenta = appearance.theme().terminal_colors().normal.magenta;
    let text = Text::new_inline("New".to_string(), appearance.ui_font_family(), 14.)
        .with_color(magenta.into())
        .finish();
    ConstrainedBox::new(
        Container::new(
            Flex::row()
                .with_cross_axis_alignment(CrossAxisAlignment::Center)
                .with_main_axis_size(MainAxisSize::Min)
                .with_child(text)
                .finish(),
        )
        .with_horizontal_padding(8.)
        .with_background(Fill::Solid(appearance.theme().ansi_overlay_1(magenta)))
        .with_corner_radius(CornerRadius::with_all(Radius::Percentage(50.)))
        .finish(),
    )
    .with_height(24.)
    .finish()
}
URLs

Always use https://, not http://:

rust
const LEARN_MORE_URL: &str = "https://warp.dev/your-blog-link";

Step 5 – Workspace wiring

app/src/workspace/view.rs
rust
// Module declaration (top)
pub(crate) mod <name>_launch_modal;

// Import
use crate::workspace::view::<name>_launch_modal::{<Name>LaunchModal, <Name>LaunchModalEvent};

// Struct field
<name>_launch_modal: ViewHandle<<Name>LaunchModal>,

// In Workspace::new()
let <name>_launch_view = ctx.add_typed_action_view(<Name>LaunchModal::new);
ctx.subscribe_to_view(&<name>_launch_view, |me, _, event, ctx| {
    me.handle_<name>_launch_modal_event(event, ctx);
});

// In struct initialization
<name>_launch_modal: <name>_launch_view,

// In OneTimeModalModel subscription handler
} else if model_ref.is_<name>_launch_modal_open() {
    me.focus_<name>_launch_modal(ctx);

// In View::render (inside the should_show_modal block)
if should_show_modal && one_time_modal_model.is_<name>_launch_modal_open() {
    stack.add_child(ChildView::new(&self.<name>_launch_modal).finish());
}

Add event handler and focus helper:

rust
fn handle_<name>_launch_modal_event(&mut self, event: &<Name>LaunchModalEvent, ctx: &mut ViewContext<Self>) {
    match event {
        <Name>LaunchModalEvent::Close => {
            OneTimeModalModel::handle(ctx).update(ctx, |model, ctx| {
                model.mark_<name>_launch_modal_dismissed(ctx);
            });
            self.focus_active_tab(ctx);
            ctx.notify();
        }
    }
}

fn focus_<name>_launch_modal(&mut self, ctx: &mut ViewContext<Self>) {
    ctx.focus(&self.<name>_launch_modal);
}
app/src/workspace/mod.rs
rust
// In pub fn init()
view::<name>_launch_modal::init(app);

// In debug bindings block
EditableBinding::new(
    "workspace:open_<name>_launch_modal",
    "[Debug] Open <Name> Launch Modal",
    WorkspaceAction::Open<Name>LaunchModal,
)
.with_context_predicate(id!("Workspace")),
EditableBinding::new(
    "workspace:reset_<name>_launch_modal_state",
    "[Debug] Reset <Name> Launch Modal State",
    WorkspaceAction::Reset<Name>LaunchModalState,
)
.with_context_predicate(id!("Workspace")),

Step 6 – Debug actions

In app/src/workspace/action.rs:

rust
/// Open the <Name> Launch Modal (for debugging)
#[cfg(debug_assertions)]
Open<Name>LaunchModal,
/// Reset the <name> launch modal dismissed state (for debugging)
#[cfg(debug_assertions)]
Reset<Name>LaunchModalState,

Add both variants to the is_visible_in_command_palette false arm.

In app/src/workspace/view.rs TypedActionView::handle_action:

rust
#[cfg(debug_assertions)]
Open<Name>LaunchModal => {
    OneTimeModalModel::handle(ctx).update(ctx, |model, ctx| {
        model.force_open_<name>_launch_modal(ctx);
    });
    ctx.notify();
}
#[cfg(debug_assertions)]
Reset<Name>LaunchModalState => {
    AISettings::handle(ctx).update(ctx, |settings, ctx| {
        if let Err(e) = settings
            .did_check_to_trigger_<name>_launch_modal
            .set_value(false, ctx)
        {
            log::warn!("Failed to reset <name> launch modal state: {e}");
        }
    });
}

Behavior summary

User typeSees modal?
New signupNo — pre-dismissed in AuthComplete new-user branch
Not signed inNo — trigger never fires without AuthComplete
Existing user, flag enabledYes — on first startup after cloud prefs load
Integration channelNo — suppressed by Channel::Integration check
Already seen itNo — setting persists globally across devices

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

Files

Just SKILL.md in .agents/skills/gui-create-launch-modal of warpdotdev/warp.

Open the folder on GitHubat commit f571865

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in warpdotdev/warp, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Warp One-Time Launch Modal 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.

Warp One-Time Launch Modal compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Warp One-Time Launch Modal this skillwarpdotdev/warp65k1 repos~3.1kAutomated safety check: PassAGPL-3.0
Yoga Go Desktop UIchapar-rest/chapar714—~2.8kAutomated safety check: PassBSD-3-Clause
Design Dnazanwei/design-dna1.9k1 repos~2.1kAutomated safety check: PassMIT
Design Guidepaperclipai/paperclip98k1 repos~3.1kAutomated safety check: PassMIT
Web Designxiaopu-ai/web-design783—~3kAutomated safety check: PassMIT
Liuguang Banlan UIsickn33/agentic-awesome-skills47k1 repos~2.5kAutomated safety check: PassMIT

Similar skills

  • Yoga Go Desktop UI

    chapar-rest/chapar

    Guides building desktop interfaces with the Yoga Go framework: Body views, layout nodes, widgets, dialogs and headless builds.

    714 GitHub stars~2.8k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Design Dna

    zanwei/design-dna

    Extract, define, and apply design DNA across three dimensions: design system (tokens), design style (qualitative feel), and visual effects (Canvas, WebGL, 3D, particles, shaders, scroll effects…

    1.9k GitHub starsUsed in 1 repo~2.1k tokens
    Frontend & DesignAuto-check passed
  • Design Guide

    paperclipai/paperclip

    Paperclip UI design system guide for building consistent, reusable frontend components.

    98k GitHub starsUsed in 1 repo~3.1k tokens
    Frontend & DesignAuto-check passed
  • Web Design

    xiaopu-ai/web-design

    Web 视觉设计 SKILL。输入 PRD / 参考 URL / 截图 / 关键词(任意组合),先产出一份标准化 DESIGN.md 设计规范,用户确认后据此生成 UI/UX、视觉、动效、响应式全部达标的 web 代码。专攻 web 端:Landing Page、Portfolio、产品页、博客、个人站、SaaS 介绍页等。当用户说"帮我做个网站""设计一个页面""参考 XX…

    783 GitHub stars~3k tokensUpdated 3 mo ago
    Frontend & DesignAuto-check passed
  • Liuguang Banlan UI

    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.

    47k GitHub starsUsed in 1 repo~2.5k tokens
    Frontend & DesignAuto-check passed
  • Website Design Taste Extractor

    senlindesign/taste-skill

    Reverse-engineers a website's design from its URL into a Markdown and JSON pair holding concrete tokens and the trade-offs behind the look.

    381 GitHub stars~5.3k tokensUpdated 3 mo ago
    Frontend & DesignAuto-check passed

More from warpdotdev/warp

All 46 skills in this repo
  • Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.

    65k GitHub starsUsed in 2 repos~4.4k tokens
    Auto-check passed
  • Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.

    65k GitHub starsUsed in 4 repos~4.4k tokens
    Auto-check passed
  • Warp Factory Files

    warpdotdev/warp

    Authors and edits file-based Warp software factory definitions rooted at factory.yaml, covering agents, automations, scorers and webhooks, and validates them before a pull request.

    65k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • Figma Design to Code

    warpdotdev/warp

    Turns a Figma frame or component into production code that matches the design, using the Figma MCP server and the project's own design system.

    65k GitHub starsUsed in 4 repos~2.9k tokens
    Auto-check passed
  • Migrates the compatible subset of settings and global file-based MCP servers from the Warp desktop app into Warp Agent CLI without exposing credentials or state.

    65k GitHub starsUsed in 1 repo~2.1k tokens
    Auto-check passed
  • Creates project-specific design system rules from your codebase so coding agents implement Figma designs with your components, naming and tokens.

    65k GitHub starsUsed in 3 repos~4.6k tokens
    Auto-check passed

Works with

Questions about Warp One-Time Launch Modal

What does Warp One-Time Launch Modal do?

Steps for adding a one-time launch or announcement modal to the Warp desktop GUI, gated by a feature flag and tracked by a settings field. This skill applies only to Warp's GUI desktop front-end, not its headless TUI, and treats the orchestration launch modal as the reference implementation. It lays out a checklist spanning eight places: a feature flag, a settings field, trigger logic in the one-time modal model, the view files, workspace wiring, debug actions, a hero image and any new icons.

When should I use Warp One-Time Launch Modal?

Warp One-Time Launch Modal fits situations like: adding a feature announcement or onboarding modal to the Warp desktop app; showing a modal exactly once per user on startup; wiring a new launch modal behind a feature flag.

How do I install Warp One-Time Launch Modal in Claude Code?

Run `npx skills add warpdotdev/warp --skill gui-create-launch-modal -a claude-code`. Or copy the skill folder (.agents/skills/gui-create-launch-modal in warpdotdev/warp) into .claude/skills/gui-create-launch-modal in your project. Claude Code loads it when a task matches its description.

How do I install Warp One-Time Launch Modal in Codex?

Run `npx skills add warpdotdev/warp --skill gui-create-launch-modal -a codex`. Or copy the skill folder (.agents/skills/gui-create-launch-modal in warpdotdev/warp) into .agents/skills/gui-create-launch-modal in your project. Codex loads it when a task matches its description.

Can I use Warp One-Time Launch Modal 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 warpdotdev/warp --skill gui-create-launch-modal -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gui-create-launch-modal, .gemini/skills/gui-create-launch-modal, .github/skills/gui-create-launch-modal and .opencode/skills/gui-create-launch-modal in your project.

What does Warp One-Time Launch Modal need to run?

SKILL.md names no scripts, command-line tools or credentials: Warp One-Time Launch Modal is instructions for the agent only. Our summary lists: A checkout of the Warp repository.

Does Warp One-Time Launch Modal access the network?

SKILL.md names 1 domain. In commands or code: warp.dev; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Warp One-Time Launch Modal 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 Warp One-Time Launch Modal use?

Warp One-Time Launch Modal is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Warp One-Time Launch Modal 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.

What are the alternatives to Warp One-Time Launch Modal?

Skills that share tags, products or a category with Warp One-Time Launch Modal: Yoga Go Desktop UI (chapar-rest/chapar, 714 stars), Design Dna (zanwei/design-dna, 1.9k stars), Design Guide (paperclipai/paperclip, 98k stars) and Web Design (xiaopu-ai/web-design, 783 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Warp One-Time Launch Modal?

warpdotdev (a GitHub organization) maintains it in warpdotdev/warp, which has 65,380 GitHub stars. The repository holds 46 skills in this directory. The repository was last updated on October 7, 2026.

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