360 Secure SkillHub
360 安全技能中心

SwiftButler

这是一款Swift代码处理CLI工具,核心功能包括生成多格式API概览、快速语法验证、统一代码缩进(支持空格/制表符)、拆分大Swift文件为声明级小文件。典型场景:需API结构而非实现细节时用analyze,编译前快速校验语法用check,规范缩进用reindent,拆分大文件简化编辑用distribute。可通过Homebrew安装,输出支持JSON/YAML等可解析格式。

odrobnik
odrobnik
热度 41.73
最近更新 2026-05-11 17:38:03
分类:开发依赖:代码执行 / 读写文件应用场景:代码审查 / 调试排错 / 研究

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add swiftbutler
Metadata
name
swiftbutler
version
1.0.0
description
Analyze, syntax-check, reindent, and distribute Swift source code with the SwiftButler CLI. Use when working with Swift files or packages and you need a compact API overview (`analyze` in interface/json/yaml/markdown), fast syntax validation (`check`), indentation cleanup with spaces or tabs (`reindent`), or to split large Swift files into declaration-based output files (`distribute`). Also use when setting up SwiftButler from Homebrew or verifying the installed CLI version.
homepage
https://github.com/Cocoanetics/SwiftButler
metadata
{"openclaw":{"emoji":"🧹","requires":{"bins":["butler"]},"install":[{"id":"brew","kind":"brew","formula":"cocoanetics/tap/swiftbutler","bins":["butler"],"label":"Install SwiftButler via Homebrew"}]}}

SwiftButler

Use butler to reduce Swift source into a more manageable working surface.

Setup

Install via Homebrew:

brew install cocoanetics/tap/swiftbutler

Verify:

butler --version

For local development from a checkout:

swift build
.build/debug/butler --version

Core Rules

  • Prefer analyze when an agent needs API shape, not full implementation details.
  • Prefer --format yaml or --format json when the result will be parsed or reused.
  • Prefer check for fast validation loops before swift build.
  • Use reindent to normalize indentation in place; choose exactly one of --spaces <n> or --tabs.
  • Use distribute before targeted edits when a generated file has become too large or noisy.

Fast Command Map

Analyze Swift APIs

# Default interface-style output
butler analyze Sources/MyModule

# Public API only
butler analyze Sources/MyModule --visibility public

# Recursive YAML output for tooling
butler analyze Sources --recursive --format yaml

# Write structured output to a file
butler analyze Sources --recursive --format yaml --output api.yaml

Supported formats:

  • interface
  • json
  • yaml
  • markdown

Syntax-check Swift quickly

butler check Sources --recursive
butler check Sources --recursive --json
butler check Sources --recursive --json --pretty
butler check Sources --recursive --format markdown --show-fixits

Reindent with spaces or tabs

# Default: 3 spaces
butler reindent Sources --recursive

# Explicit spaces
butler reindent Sources --recursive --spaces 2
butler reindent Sources --recursive --spaces 4

# Tabs instead of spaces
butler reindent Sources --recursive --tabs

# Preview without modifying files
butler reindent Sources --recursive --tabs --dry-run

Notes:

  • --spaces <n> accepts values from 1 to 16.
  • --tabs and --spaces <n> are mutually exclusive.
  • Without --tabs, the default is --spaces 3.

Distribute large files into smaller ones

# Split one large generated file
butler distribute Generated.swift

# Preview recursive distribution
butler distribute Sources/Generated --recursive --dry-run

# Write distributed files to a separate directory
butler distribute Sources/Generated --recursive --output SplitSources

When to Use Which Command

  • Use analyze to hand an LLM a compact view of types, functions, properties, and docs.
  • Use check inside generation or repair loops for immediate syntax feedback.
  • Use reindent after generated or patched code has inconsistent indentation.
  • Use distribute when one large Swift file should become declaration-sized files that are easier to inspect and edit.