Agent skill

Summon

by codeyousef in codeyousef/summon

A skill your agent uses when developing applications with the Summon Kotlin Multiplatform UI framework.

Apache-2.0Auto-check passedMobile

Install Summon

skills CLI
$ npx skills add codeyousef/summon --skill summon -a claude-code

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

GitHub CLI
$ gh skill install codeyousef/summon summon --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/codeyousef/summon.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/summon .claude/skills/summon && 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
summon
GitHub stars
167
Token cost
~1.1k tokens
SKILL.md length
249 words
Files
1
Skills in repo
1
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when developing applications with the Summon Kotlin Multiplatform UI framework.

  • Works in 6 steps: Use type-safe Modifiers - Never use raw… → Don't manipulate DOM directly - Use… → Add @JsName annotations - Required for… → …
  • Developing applications with the Summon Kotlin Multiplatform UI framework
  • SKILL.md covers Quick Reference, Core Patterns, Key Guidelines and Source Set Hierarchy, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Summon is an agent skill from codeyousef/summon. Use when developing applications with the Summon Kotlin Multiplatform UI framework. Provides patterns, conventions, and guidance for components, state management, modifiers, routing, SSR, and cross-platform code.

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile, covering Cross-platform mobile apps, State management and Android development. It works with Kotlin and WebAssembly. The repository describes itself as: A Kotlin Multiplatform frontend library to create standalone websites or frontends with your favorite JVM backend framework. The licence is Apache-2.0.

When your agent uses it

  • Developing applications with the Summon Kotlin Multiplatform UI framework
  • Tasks that involve Cross-platform mobile apps
  • Tasks that involve State management

Example prompts

  • “/summon”

Workflow steps

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

  1. Use type-safe Modifiers - Never use raw CSS strings; use the Modifier API with type-safe enums
  2. Don't manipulate DOM directly - Use renderer methods and composable functions
  3. Add @JsName annotations - Required for public APIs to ensure consistent naming in minified JS
  4. Don't capture mutable state in lambdas - Use wrapper functions when passing callbacks to renderers
  5. Use getPlatformRenderer() - For reliable renderer access in JS contexts
  6. Platform-specific code - Keep in appropriate source sets (commonMain, jvmMain, jsMain, wasmJsMain)

What it can do on your machine

Read from SKILL.md and the folder at commit c66968f. 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 kotlin and bash).

    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

Summon loads about 1.1k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 249 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~55
When it runs · the whole SKILL.md, loaded when a task matches
~1.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 codeyousef/summon at commit c66968f, republished under its Apache-2.0 licence (© codeyousef). 249 words, ~1,100 tokens.

Download SKILL.mdSave it as .claude/skills/summon/SKILL.md (or your agent's skills folder).
name
summon
description
Use when developing applications with the Summon Kotlin Multiplatform UI framework. Provides patterns, conventions, and guidance for components, state management, modifiers, routing, SSR, and cross-platform code.

Summon Framework Development Skill

You are assisting with development using Summon, a Kotlin Multiplatform UI framework for building web applications with Jetpack Compose-like declarative syntax.

Quick Reference

Package namespace: codes.yousef.summon Current version: 0.6.3.0 Targets: Browser (JS/WASM) and JVM (SSR)

Core Patterns

Component Pattern
kotlin
@Composable
fun MyComponent(
    value: String,
    onValueChange: (String) -> Unit,
    modifier: Modifier = Modifier()
) {
    val renderer = LocalPlatformRenderer.current
    // Use renderer methods, not direct DOM manipulation
}
State Management
kotlin
// Direct access
val counter = remember { mutableStateOf(0) }
counter.value = counter.value + 1

// Property delegation (preferred)
var counter by remember { mutableStateOf(0) }
counter++

// Destructuring
val (count, setCount) = remember { mutableStateOf(0) }
setCount(count + 1)
Modifier Pattern (Type-safe CSS)
kotlin
Modifier()
    .padding(16.px)
    .backgroundColor(Color.Blue)
    .borderRadius(8.px)
    .display(Display.Flex)
    .alignItems(AlignItems.Center)
    .onClick { /* handler */ }
Routing
kotlin
// Static route
route("/about") { AboutPage() }

// Dynamic parameter
route("/users/[id]") { params ->
    val userId = params.getInt("id")
    UserPage(userId)
}

// Catch-all
route("/docs/[...slug]") { params ->
    DocsPage(params["slug"])
}
Effects and Lifecycle
kotlin
@Composable
fun MyComponent() {
    onMount { println("Component mounted") }
    onDispose { println("Component disposed") }

    effectWithDeps(dependency) {
        // Runs when dependency changes
    }
}
SSR with Hydration
kotlin
val renderer = PlatformRenderer()
val html = renderer.renderComposableRoot(hydrate = true) { MyApp() }

Key Guidelines

  1. Use type-safe Modifiers - Never use raw CSS strings; use the Modifier API with type-safe enums
  2. Don't manipulate DOM directly - Use renderer methods and composable functions
  3. Add @JsName annotations - Required for public APIs to ensure consistent naming in minified JS
  4. Don't capture mutable state in lambdas - Use wrapper functions when passing callbacks to renderers
  5. Use getPlatformRenderer() - For reliable renderer access in JS contexts
  6. Platform-specific code - Keep in appropriate source sets (commonMain, jvmMain, jsMain, wasmJsMain)

Source Set Hierarchy

commonMain
    └── webMain (shared JS + WASM code)
            ├── jsMain (browser JS)
            └── wasmJsMain (WebAssembly)

Common Build Commands

bash
# Build all
./gradlew build

# Run JVM tests (excludes slow tests)
./gradlew :summon-core:jvmTest

# Run JS tests
./gradlew :summon-core:jsNodeTest

# Development run (JS with hot reload)
./gradlew jsBrowserDevelopmentRun

# Publish locally
./gradlew publishLocal

Component Categories

CategoryLocationExamples
Displaycomponents.displayText, Image, Icon, Badge
Inputcomponents.inputTextField, Button, Checkbox, Select
Layoutcomponents.layoutRow, Column, Box, Grid, Card, LazyColumn
Feedbackcomponents.feedbackAlert, Modal, Toast, Loading, Progress
Navigationcomponents.navigationLink, TabLayout, Dropdown
Formscomponents.formsForm, FormField, validation

Common Pitfalls

  1. WASM cache staleness - Run ./gradlew clean if WASM builds behave unexpectedly
  2. JS minification issues - Always add @JsName to public functions
  3. State in lambdas - Don't capture mutable state directly in renderer callbacks
  4. Missing hydration - SSR requires proper hydration setup for interactivity

Documentation References

  • llms.txt - Condensed LLM documentation
  • llms-full.txt - Full API documentation
  • CLAUDE.md - Detailed AI assistant guidance
  • docs/ - User documentation

© codeyousef, 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

Files

Just SKILL.md in .claude/skills/summon of codeyousef/summon.

Open the folder on GitHubat commit c66968f

Compare with similar skills

Summon 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.

Summon compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Summon this skillcodeyousef/summon167—~1.1kAutomated safety check: PassApache-2.0
Compose Multiplatform Patternsmonta-app/ocpp-emulator1795 repos~2kAutomated safety check: PassApache-2.0
Jetpack Compose and Multiplatform Expertrcosteira79/android-skills150—~2.6kAutomated safety check: PassMIT
Ksafeioannisa/KSafe332—~17kAutomated safety check: PassApache-2.0
KtormonitorCosminMihuMDC/KtorMonitor254—~2.5kAutomated safety check: PassApache-2.0
Kotlin Patternsvibeeval/vibecosystem531—~2.2kAutomated safety check: PassMIT

Similar skills

  • Compose Multiplatform Patterns

    monta-app/ocpp-emulator

    Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.

    179 GitHub starsUsed in 5 repos~2k tokens
    MobileAuto-check passed
  • Guides writing correct, performant Compose and Compose Multiplatform UI across Android, desktop, iOS and web, from state and animation to design-to-code and crash fixes.

    150 GitHub stars~2.6k tokensUpdated 18 days ago
    MobileAuto-check passed
  • Ksafe

    ioannisa/KSafe

    Required before any reply that touches KSafe (by ksafe(...), ksafe.get/put, :ksafe-compose, :ksafe-biometrics), even a 'can KSafe do X?' question or a one-line change that looks like plain Kotlin.

    332 GitHub stars~17k tokensUpdated 4 days ago
    MobileAuto-check passed
  • Ktormonitor

    CosminMihuMDC/KtorMonitor

    KtorMonitor is a Kotlin Multiplatform library for real-time HTTP traffic monitoring.

    254 GitHub stars~2.5k tokensUpdated 24 days ago
    MobileAuto-check passed
  • Kotlin Patterns

    vibeeval/vibecosystem

    Coroutine patterns, Flow operators, Jetpack Compose state management, Ktor routing, and Kotlin Multiplatform shared code.

    531 GitHub stars~2.2k tokensUpdated 2 mo ago
    MobileAuto-check passed
  • Jetpack Compose Expert

    aldefy/compose-skill

    Guides Jetpack Compose and Compose Multiplatform work across Android, Desktop, iOS and web, plus Android TV, Material 3 motion, paging, navigation and design-to-code.

    596 GitHub stars~4.8k tokensUpdated 2 mo ago
    MobileAuto-check passed

Questions about Summon

What does Summon do?

A skill your agent uses when developing applications with the Summon Kotlin Multiplatform UI framework. Summon is an agent skill from codeyousef/summon. Use when developing applications with the Summon Kotlin Multiplatform UI framework.

When should I use Summon?

Summon fits situations like: developing applications with the Summon Kotlin Multiplatform UI framework; tasks that involve Cross-platform mobile apps; tasks that involve State management.

How do I install Summon in Claude Code?

Run `npx skills add codeyousef/summon --skill summon -a claude-code`. Or copy the skill folder (.claude/skills/summon in codeyousef/summon) into .claude/skills/summon in your project. Claude Code loads it when a task matches its description.

How do I install Summon in Codex?

Run `npx skills add codeyousef/summon --skill summon -a codex`. Or copy the skill folder (.claude/skills/summon in codeyousef/summon) into .agents/skills/summon in your project. Codex loads it when a task matches its description.

Can I use Summon 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 codeyousef/summon --skill summon -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/summon, .gemini/skills/summon, .github/skills/summon and .opencode/skills/summon in your project.

What does Summon need to run?

SKILL.md names no scripts, command-line tools or credentials: Summon is instructions for the agent only.

Does Summon 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 Summon 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 Summon use?

Summon 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.

How many tokens does Summon use?

About 1.1k tokens (SKILL.md is roughly 4.4k 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 Summon?

Skills that share tags, products or a category with Summon: Compose Multiplatform Patterns (monta-app/ocpp-emulator, 179 stars), Jetpack Compose and Multiplatform Expert (rcosteira79/android-skills, 150 stars), Ksafe (ioannisa/KSafe, 332 stars) and Ktormonitor (CosminMihuMDC/KtorMonitor, 254 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Summon?

codeyousef (a GitHub user) maintains it in codeyousef/summon, which has 167 GitHub stars. The repository was last updated on August 20, 2026.

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