Composewebview Documentation
parkwoocheol/compose-webview
Manages MkDocs documentation site and API references for ComposeWebView.
A skill your agent uses when writing or modifying Sake commands, CommandGroups, SakeApp files, or SakeApp/ directory code.
$ npx skills add kattouf/Sake --skill sake-command-patterns -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install kattouf/Sake sake-command-patterns --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/kattouf/Sake.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/sake-command-patterns .claude/skills/sake-command-patterns && 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 "sake-command-patterns" agent skill from https://github.com/kattouf/Sake/tree/main/.claude/skills/sake-command-patterns into .claude/skills/sake-command-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sake-command-patterns", 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/kattouf/Sake/tree/main/.claude/skills/sake-command-patternsType 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 kattouf/Sake --skill sake-command-patterns -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install kattouf/Sake sake-command-patterns --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kattouf/Sake.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/sake-command-patterns .agents/skills/sake-command-patterns && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sake-command-patterns" agent skill from https://github.com/kattouf/Sake/tree/main/.claude/skills/sake-command-patterns into .agents/skills/sake-command-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sake-command-patterns", 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 kattouf/Sake --skill sake-command-patterns -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install kattouf/Sake sake-command-patterns --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kattouf/Sake.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/sake-command-patterns .cursor/skills/sake-command-patterns && 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 "sake-command-patterns" agent skill from https://github.com/kattouf/Sake/tree/main/.claude/skills/sake-command-patterns into .cursor/skills/sake-command-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sake-command-patterns", 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/kattouf/Sake.git --path .claude/skills/sake-command-patterns--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 kattouf/Sake --skill sake-command-patterns -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install kattouf/Sake sake-command-patterns --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kattouf/Sake.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/sake-command-patterns .gemini/skills/sake-command-patterns && 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 "sake-command-patterns" agent skill from https://github.com/kattouf/Sake/tree/main/.claude/skills/sake-command-patterns into .gemini/skills/sake-command-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sake-command-patterns", 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 kattouf/Sake sake-command-patternsInstalls 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 kattouf/Sake --skill sake-command-patterns -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/kattouf/Sake.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/sake-command-patterns .github/skills/sake-command-patterns && 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 "sake-command-patterns" agent skill from https://github.com/kattouf/Sake/tree/main/.claude/skills/sake-command-patterns into .github/skills/sake-command-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sake-command-patterns", 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 kattouf/Sake --skill sake-command-patterns -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install kattouf/Sake sake-command-patterns --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kattouf/Sake.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/sake-command-patterns .opencode/skills/sake-command-patterns && 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 "sake-command-patterns" agent skill from https://github.com/kattouf/Sake/tree/main/.claude/skills/sake-command-patterns into .opencode/skills/sake-command-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sake-command-patterns", 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.
sake-command-patternsA skill your agent uses when writing or modifying Sake commands, CommandGroups, SakeApp files, or SakeApp/ directory code.
Sake Command Patterns is an agent skill from kattouf/Sake. Use when writing or modifying Sake commands, CommandGroups, SakeApp files, or SakeApp/ directory code. Covers Command struct, dependencies, skipIf, context, storage, subprocess patterns, argument parsing.
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. It works with Bash. The repository describes itself as: 🍶 Swift-based utility for managing project commands, inspired by Make. The licence is MIT.
Read from SKILL.md and the folder at commit 80a3e98. 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 (its code samples are swift).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Sake Command Patterns loads about 1.1k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 143 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 kattouf/Sake at commit 80a3e98, republished under its MIT licence (© kattouf). 143 words, ~1,090 tokens.
.claude/skills/sake-command-patterns/SKILL.md (or your agent's skills folder).Reference for writing commands in the Sake framework.
Command is a Sendable struct with async/throws closures:
public struct Command: Sendable {
let description: String?
let dependencies: [Command]
let runDependenciesConcurrently: Bool
let skipIf: @Sendable (Context) async throws -> Bool // default: { _ in false }
let run: @Sendable (Context) async throws -> Void // default: { _ in }
}Only public static var of type Command or Sake.Command are exposed to CLI. Non-public or non-static commands work as internal dependencies but aren't callable from terminal. Typealiases don't work.
public static var build: Command { ... } // visible in CLI
static var cleanIfNeeded: Command { ... } // internal, usable as dependency@CommandGroup
struct BuildCommands {
public static var build: Command { ... }
}Macro generates CommandGroup conformance with commands: [String: Command] dict. Register groups in main struct:
@main @CommandGroup
struct Commands: SakeApp {
static var configuration: SakeAppConfiguration {
SakeAppConfiguration(commandGroups: [BuildCommands.self, TestCommands.self])
}
public static var lint: Command { ... } // root-level commands also work
}// Sequential (default)
Command(dependencies: [clean, fetch], run: { _ in ... })
// Concurrent
Command(dependencies: [a, b, c], runDependenciesConcurrently: true, run: { _ in ... })
// Direct run via CommandRunner
Command(run: { context in
try await CommandRunner(command: otherCommand, context: context).run()
})Command(
skipIf: { context in
let args = try TestArguments.parse(context.arguments)
return args.skipBuild
},
run: { _ in ... }
)When skipIf returns true, the command AND its dependencies are skipped entirely.
Properties: arguments: [String], environment: [String: String], appDirectory: String, runDirectory: String, storage: Storage, interruptionHandler: InterruptionHandler.
extension Command.Context {
var projectRoot: String { "\(appDirectory)/.." }
}Thread-safe key-value store (NSRecursiveLock). Shared across command dependency chain:
// In dependency
context.storage["build-output"] = outputPath
// In main command
let path = context.storage["build-output"] as? Stringdependencies: [
buildTests,
unitTests.mapArguments { $0 + ["--skip-build"] },
deploy.mapEnvironment { env in
var e = env; e["TARGET"] = "prod"; return e
},
]Use ArgumentParser ParsableArguments inside commands:
Command(run: { context in
struct Args: ParsableArguments {
@Flag(name: .long) var clean: Bool = false
@Flag(name: .long) var skipBuild: Bool = false
}
let args = try Args.parse(context.arguments)
...
})Project uses helper functions wrapping swift-subprocess (see SakeApp/SubprocessPresets.swift):
// Print output to stdout/stderr
try await runAndPrint("swift", "build", "--build-tests")
// Capture output
let result = try await run("mise", "which", "swiftformat")
if result.terminationStatus.isSuccess { ... }Command(run: { context in
context.interruptionHandler.register {
print("Cleanup on Ctrl+C...")
}
// long-running work
})static var ensureSwiftFormatInstalled: Command {
Command(
description: "Ensure swiftformat is installed",
skipIf: { _ in
try await run("mise", "which", "swiftformat").terminationStatus.isSuccess
},
run: { _ in
try await runAndPrint("mise", "install", "swiftformat")
},
)
}© kattouf, MIT. 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 .claude/skills/sake-command-patterns of kattouf/Sake.
Open the folder on GitHubat commit 80a3e98
Sake Command Patterns 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 |
|---|---|---|---|---|---|---|
| Sake Command Patterns this skillkattouf/Sake | 116 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Composewebview Documentationparkwoocheol/compose-webview | 103 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Android CLImajiayu000/claude-skill-registry | 666 | 8 repos | ~2.7k | Automated safety check: Pass | MIT | |
| Green GateVeryGoodOpenSource/vgv-ai-flutter-plugin | 169 | — | ~4.7k | Automated safety check: Notes | MIT | |
| Scripting Adb For CIskydoves/android-testing-skills | 333 | — | ~6.4k | Automated safety check: Pass | Apache-2.0 | |
| UI Automation Workflowsconorluddy/xclaude-plugin | 183 | — | ~2.2k | Automated safety check: Pass | MIT |
parkwoocheol/compose-webview
Manages MkDocs documentation site and API references for ComposeWebView.
majiayu000/claude-skill-registry
Orchestrates Android development tasks including project creation, deployment, SDK management, and environment diagnostics using the android command-line tool.
VeryGoodOpenSource/vgv-ai-flutter-plugin
Drives a Dart or Flutter package fully green through a verify-fix-rerun loop across four gates: analyze, format, test, coverage.
skydoves/android-testing-skills
A skill your agent uses to wire adb reliably into CI — bash idioms, exit codes, parallel device fan-out with xargs -P, port forwarding (adb forward LOCAL REMOTE vs adb reverse REMOTE LOCAL —…
conorluddy/xclaude-plugin
Accessibility-first UI automation using IDB. An agent skill from conorluddy/xclaude-plugin.
github/awesome-copilot
This skill should be used when the user asks to "test this website", "run exploratory testing", "check for accessibility issues", "verify the login flow works", "find bugs on this page", or requests…
kattouf/Sake
A skill your agent uses when working on CI workflows, GitHub Actions, release process, changelog generation (git-cliff), or dependabot configuration.
kattouf/Sake
A skill your agent uses when working on SakeCLI or SakeCLILibrary targets — CLI entry point, config resolution, SakeAppManager build/run lifecycle, error handling, shell execution.
kattouf/Sake
A skill your agent uses when working on Sake configuration — .sake.yml, environment variables, CLI options, ConfigManager, ConfigResolver, or adding new config options.
kattouf/Sake
A skill your agent uses when writing or updating Sake documentation — VitePress site structure, existing pages, how to add new docs, documentation conventions.
kattouf/Sake
A skill your agent uses when modifying the @CommandGroup macro in SakeMacros target — SwiftSyntax ExtensionMacro, code generation patterns, testing with assertMacroExpansion.
kattouf/Sake
A skill your agent uses when writing or running tests for the Sake project — unit tests, macro expansion tests, integration tests, test helpers, and CI test commands.
Works with
Categories
A skill your agent uses when writing or modifying Sake commands, CommandGroups, SakeApp files, or SakeApp/ directory code. Sake Command Patterns is an agent skill from kattouf/Sake. Use when writing or modifying Sake commands, CommandGroups, SakeApp files, or SakeApp/ directory code.
Sake Command Patterns fits situations like: modifying Sake commands; sakeApp/ directory code.
Run `npx skills add kattouf/Sake --skill sake-command-patterns -a claude-code`. Or copy the skill folder (.claude/skills/sake-command-patterns in kattouf/Sake) into .claude/skills/sake-command-patterns in your project. Claude Code loads it when a task matches its description.
Run `npx skills add kattouf/Sake --skill sake-command-patterns -a codex`. Or copy the skill folder (.claude/skills/sake-command-patterns in kattouf/Sake) into .agents/skills/sake-command-patterns 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 kattouf/Sake --skill sake-command-patterns -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sake-command-patterns, .gemini/skills/sake-command-patterns, .github/skills/sake-command-patterns and .opencode/skills/sake-command-patterns in your project.
SKILL.md names no scripts, command-line tools or credentials: Sake Command Patterns is instructions for the agent only.
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.
Sake Command Patterns is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
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.
Skills that share tags, products or a category with Sake Command Patterns: Composewebview Documentation (parkwoocheol/compose-webview, 103 stars), Android CLI (majiayu000/claude-skill-registry, 666 stars), Green Gate (VeryGoodOpenSource/vgv-ai-flutter-plugin, 169 stars) and Scripting Adb For CI (skydoves/android-testing-skills, 333 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
kattouf (a GitHub user) maintains it in kattouf/Sake, which has 116 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on April 5, 2026.
Source: kattouf/Sake on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.