Not in the top 1,000 by GitHub stars
termio-sh/termio
A terminal-first agentic development environment for agentic coding. Build for CLI/TUI agent. Runtime for Coding Agent, Tmux alternative
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
Sources/termio/Resources/skills/termio/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
Sources/termio/Resources/skills/termio-device/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/animation-vocabulary/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/app-screenshot-debug/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 06db42416773
No earlier version was observed for comparison.
skills/apple-design/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/asc/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 06db42416773
No earlier version was observed for comparison.
skills/bump-version/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 06db42416773
No earlier version was observed for comparison.
skills/check-ghostty-update/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/code-clean/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/conventional-commit/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/dia-source-analysis/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 06db42416773
No earlier version was observed for comparison.
skills/doc/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 06db42416773
No earlier version was observed for comparison.
skills/emil-design-eng/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/find-animation-opportunities/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/improve-animations/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/ios-app-analysis/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/ios-rebuild-dev/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/issue-creator/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/macos-rebuild-dev/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 06db42416773
No earlier version was observed for comparison.
skills/native-app-profiling/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/og-generation/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 06db42416773
No earlier version was observed for comparison.
skills/pick-ui-library/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/prototype/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/review-animations/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/review-copy/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/swift-performance-optimization-skill/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/swiftui-performance-audit/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/termio/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
skills/termio-bug-report/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 06db42416773
No earlier version was observed for comparison.
skills/testflight-release/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 06db42416773
No earlier version was observed for comparison.
web/landing/public/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 06db42416773
No earlier version was observed for comparison.
Verified commit 06db4241677368660c8e7edadd1f43b6f982b2d5
git clone --filter=blob:none --no-checkout https://github.com/termio-sh/termio.git .hotskills/termio-sh-termio && git -C .hotskills/termio-sh-termio checkout --detach 06db4241677368660c8e7edadd1f43b6f982b2d5
# Copy each selected skill directory from .hotskills/termio-sh-termio into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/termio-sh/termio.git .hotskills/termio-sh-termio && git -C .hotskills/termio-sh-termio checkout --detach 06db4241677368660c8e7edadd1f43b6f982b2d5
# Copy each selected skill directory from .hotskills/termio-sh-termio into .agents/skills/<skill-name>/Heat
8.3- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- termio
Sources/termio/Resources/skills/termio - termio
Sources/termio/Resources/skills/termio-device - animation-vocabulary
skills/animation-vocabulary - app-screenshot-debug
skills/app-screenshot-debug - apple-design
skills/apple-design - asc
skills/asc - bump-version
skills/bump-version - check-ghostty-update
skills/check-ghostty-update - code-clean
skills/code-clean - conventional-commit
skills/conventional-commit - dia-source-analysis
skills/dia-source-analysis - doc
skills/doc - emil-design-eng
skills/emil-design-eng - find-animation-opportunities
skills/find-animation-opportunities - improve-animations
skills/improve-animations - ios-app-analysis
skills/ios-app-analysis - ios-rebuild-dev
skills/ios-rebuild-dev - issue-creator
skills/issue-creator - macos-rebuild-dev
skills/macos-rebuild-dev - native-app-profiling
skills/native-app-profiling - og-generation
skills/og-generation - pick-ui-library
skills/pick-ui-library - prototype
skills/prototype - review-animations
skills/review-animations - review-copy
skills/review-copy - Swift Performance Optimization Skill
skills/swift-performance-optimization-skill - performance-audit
skills/swiftui-performance-audit - termio
skills/termio - termio-bug-report
skills/termio-bug-report - testflight-release
skills/testflight-release - termio
web/landing/public
How it works
termio
When your agent uses it
See and drive the sibling agent sessions running alongside you in this Termio project via the `termio session` CLI — list and watch their status, spawn new agent or plain-terminal sessions, send a prompt or an answer into a session, and read an agent's reply from its transcript. Use when delegating work to another session, checking on or supervising what other sessions are doing, or starting a command the user should see in its own visible pane. Do not use merely because a task could run in parallel. Requires running inside Termio (TERMIO_SESSION set).
What it loads into context
Frontmatter
121 tokensAlways available to the agent
SKILL.md
2,151 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Files
SKILL.mdcore8,365 bytes
Read SKILL.md
# Driving sibling sessions (Termio)
If `TERMIO_SESSION` is not set in your environment, you are not running inside
a Termio-managed session — say so and stop instead of trying to drive sessions
you cannot see.
A sandboxed command cannot reach the CLI: seatbelt profiles that deny network
access (Codex `workspace-write` is one) refuse unix-socket connects with
EPERM, so `termio session …` fails with "the OS denied the connection". The
socket and the app are fine — do not restart Termio; run the command outside
the sandbox (in Codex, request escalated permissions for it). The link is
one-directional there: siblings can still drive the sandboxed session, but it
cannot drive back.
View the complete source on GitHubtermio
When your agent uses it
See and drive the sibling agent sessions running alongside you on this machine via the `termio session` CLI — list them and their status, start a new agent or plain-terminal session, send a prompt or an answer into one, and set your own status. Use when delegating work to another session, or checking on what other sessions are doing. Do not use merely because a task could run in parallel. Requires running inside a termiod session (TERMIOD_SESSION_ID set).
What it loads into context
Frontmatter
104 tokensAlways available to the agent
SKILL.md
827 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use this
- What is not available here
Files
SKILL.mdcore3,358 bytes
Read SKILL.md
# Driving sibling sessions (termio session)
If `TERMIOD_SESSION_ID` is not set in your environment, you are not running
inside a termiod session — say so and stop instead of trying to drive sessions
you cannot see.
You are running inside a session hosted by `termiod` on this machine, alongside
other sessions on the same host. Coordinate with them through the `termio
session` CLI. The installed CLI is the authority on syntax: where this text and
`termio session --help` disagree, trust the CLI.
**Sessions here are scoped to this machine, not to a project.** The daemon lists
every session it hosts, so read the names and working directories before acting
on one — there is no project filter to lean on.View the complete source on GitHubanimation-vocabulary
When your agent uses it
Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term ("the bouncy thing when a popover opens" → Pop in; "the iOS rubber-band scroll" → Rubber-banding). Use when the user asks "what's it called when…", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.
What it loads into context
Frontmatter
102 tokensAlways available to the agent
SKILL.md
2,905 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Start
- Instructions
- Examples
- Glossary
Files
SKILL.mdcore13,128 bytes
Read SKILL.md
# Animation Vocabulary
Turn a vague description of a motion or effect into the precise term, so the user knows what to ask for.
## Quick Start
The user describes an effect loosely. You return the matching term(s) in this format:
```
**Stagger** — Animate several items one after another with a small delay between each, creating a cascade.
```
If several terms could fit, list the best match first, then 1–2 alternates with a one-line note on how they differ.
View the complete source on GitHubapp-screenshot-debug
When your agent uses it
Drive the running termio app via AppleScript / System Events to reach a UI state (focus the window, click a sidebar project, a terminal pane, a control), capture a pixel-accurate screenshot of just that window, and read it back for visual analysis — for diagnosing layout / spacing / alignment / 'this looks ugly' issues that can't be judged from code alone. Invoke when the user says 'screenshot the app', 'take a screenshot', 'show me what it looks like', 'what does X look like', 'debug this visually', 'verify the UI change', '截图看看', '看看长什么样', '帮我截个图分析'. Pairs with `macos-rebuild-dev` — rebuild first if code changed, then capture.
What it loads into context
Frontmatter
166 tokensAlways available to the agent
SKILL.md
1,227 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Prerequisites
- The two helper scripts (in `scripts/`)
- Canonical recipe
- Driving the UI — patterns that actually work
- Gotchas (learned the hard way)
Scripts executed separately
scripts/capture-window.shscripts/click-in-window.sh
Files
SKILL.mdcore4,750 bytesSKILL.mdcore4,750 bytesSKILL.mdcore4,750 bytesSKILL.mdcore4,750 bytesSKILL.mdcore4,750 bytesSKILL.mdcore4,750 bytesscripts/capture-window.shruns1,155 bytesscripts/click-in-window.shruns976 bytes
Read SKILL.md
# Screenshot-driven UI debugging (AppleScript + screencapture)
The loop for *seeing* a termio UI change instead of guessing from code:
```
(rebuild if code changed) → drive app into the target state → capture the window → Read the PNG → judge / iterate
```
You cannot evaluate spacing, alignment, overlap, ghosting, or "this looks ugly"
from source. Get a real screenshot, Read it, then decide.
## Prerequisites
- The app must be **running** and built. If you just changed code, run theView the complete source on GitHubapple-design
When your agent uses it
Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.
What it loads into context
Frontmatter
83 tokensAlways available to the agent
SKILL.md
5,089 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- The Core Idea
- 1. Response — kill latency
- 2. Direct manipulation — 1:1 tracking
- 3. Interruptibility — the single most important principle
- 4. Behavior over animation — use springs
- 5. Velocity handoff — the seam between drag and animation
- 6. Momentum projection — animate to where the gesture is *going*
- 7. Spatial consistency — symmetric paths, anchored origins
- 8. Hint in the direction of the gesture
- 9. Rubber-banding — soft boundaries
- 10. Gesture design details (the "feel" checklist)
- 11. Frame-level smoothness
- 12. Materials & depth — translucency conveys hierarchy
- 13. Multimodal feedback — motion + sound + haptics
- 14. Reduced motion & accessibility
- 15. Typography — optical sizing, tracking, leading
- 16. Design foundations — the eight principles
- 17. Process
- Quick Reference
Files
SKILL.mdcore22,715 bytes
Read SKILL.md
# Apple Design
How Apple builds interfaces that stop feeling like a computer and start feeling like an extension of you. This knowledge comes from Apple's WWDC design talks — chiefly *Designing Fluid Interfaces* (WWDC 2018) — distilled and translated into the web platform (CSS, Pointer Events, `requestAnimationFrame`, spring libraries like Motion/Framer Motion).
The through-line: **an interface feels alive when motion starts from the current on-screen value, inherits the user's velocity, projects momentum forward, and can be grabbed and reversed at any instant.** Springs are the tool that makes all of this natural, because they are inherently interruptible and velocity-aware.
## The Core Idea
> "When we align the interface to the way we think and move, something magical happens — it stops feeling like a computer and starts feeling like a seamless extension of us."
An interface is fluid when it behaves like the physical world: things respond instantly, move continuously, carry momentum, resist at boundaries, and can be redirected mid-motion. Everything below is a way to get closer to that.
Apple frames design as serving four human needs: **safety/predictability, understanding, achievement, and joy.** Every rule here serves one of them.
View the complete source on GitHubasc
When your agent uses it
Drive App Store Connect from the terminal with the `asc` CLI — TestFlight builds, groups, testers and What to Test notes; App Store versions, metadata, keywords, screenshots and release notes; submissions and review health; signing, provisioning and notarization; crash and beta-feedback triage; pricing, subscriptions and Apple Ads. Use whenever the task touches App Store Connect, TestFlight, an App Store release or submission, or an iOS/macOS build upload. Route to the matching file under references/ before running commands.
What it loads into context
Frontmatter
112 tokensAlways available to the agent
SKILL.md
1,070 tokensWhen the skill is activated
Reference documents
45,391 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Before anything
- Routing table
- Provenance
Files
SKILL.mdcore4,504 bytesSKILL.mdcore4,504 bytesSKILL.mdcore4,504 bytesreferences/asc-app-create-ui.mddoc5,628 bytesreferences/asc-apple-ads.mddoc4,649 bytesreferences/asc-aso-audit.mddoc10,307 bytesreferences/asc-aso-audit/aso_rules.mddoc3,989 bytesreferences/asc-build-lifecycle.mddoc1,176 bytesreferences/asc-cli-usage.mddoc3,893 bytesreferences/asc-crash-triage.mddoc3,054 bytesreferences/asc-id-resolver.mddoc3,049 bytesreferences/asc-localize-metadata.mddoc10,946 bytesreferences/asc-metadata-sync.mddoc6,691 bytesreferences/asc-notarization.mddoc6,192 bytesreferences/asc-ppp-pricing.mddoc14,172 bytesreferences/asc-release-flow.mddoc6,498 bytesreferences/asc-release-flow/multi-item-submissions.mddoc4,275 bytesreferences/asc-revenuecat-catalog-sync.mddoc14,551 bytesreferences/asc-revenuecat-catalog-sync/examples.mddoc13,786 bytesreferences/asc-revenuecat-catalog-sync/references.mddoc1,134 bytesreferences/asc-screenshot-resize.mddoc3,487 bytesreferences/asc-shots-pipeline.mddoc10,749 bytesreferences/asc-signing-setup.mddoc4,059 bytesreferences/asc-submission-health.mddoc7,542 bytesreferences/asc-submission-health/app-privacy.mddoc1,511 bytesreferences/asc-submission-health/digital-goods.mddoc8,738 bytesreferences/asc-submission-health/readiness-repairs.mddoc5,532 bytesreferences/asc-subscription-localization.mddoc9,652 bytesreferences/asc-testflight-orchestration.mddoc1,335 bytesreferences/asc-wall-submit.mddoc1,440 bytesreferences/asc-whats-new-writer.mddoc6,970 bytesreferences/asc-whats-new-writer/release_notes_guidelines.mddoc5,081 bytesreferences/asc-workflow.mddoc5,673 bytesreferences/asc-xcode-build.mddoc5,726 bytes
Read SKILL.md
# asc — App Store Connect from the CLI
`asc` is installed via Homebrew (`brew install asc`). It is the only tool that
should touch App Store Connect here — do not hand-roll JWTs or curl the API.
This skill is a router. Read the one reference that matches the task, not the
whole set. Each reference is a self-contained playbook with the exact commands.
## Before anything
Every command needs credentials. Check first:
```sh
asc auth status # active profileView the complete source on GitHubbump-version
When your agent uses it
Cut a new termio macOS release by tagging main with the next version. Invoke when the user says 'bump version', 'bump the version', 'cut a release', 'ship a new version', 'release', '发版', '发布新版本', or '出个新版本'.
What it loads into context
Frontmatter
71 tokensAlways available to the agent
SKILL.md
1,229 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 1. Preconditions
- 2. Pick the next version
- 3. Write the changelog entry
- 4. Tag and push
- 5. Watch the Release workflow
- 6. Verify (when green)
- Re-running a failed release
- Notes
Files
SKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytes
Read SKILL.md
# Bump version — cut a termio release
termio is **trunk-based**: a release is nothing but a `vX.Y.Z` tag on `main`.
Pushing the tag fires `.github/workflows/release.yml` (the **Release** workflow),
which signs, notarizes, packages the DMG, updates the Sparkle appcast, and
uploads to Cloudflare R2. There is no merge and no release branch.
Follow these steps in order. Stop and report if any precondition fails — never
force past a failed check.
## 1. Preconditions
```sh
git switch mainView the complete source on GitHubcheck-ghostty-update
When your agent uses it
Check whether ghostty (the terminal core termio embeds via the termio-sh/libghostty-swift fork) has shipped anything worth pulling since the binary termio is currently pinned to. Resolves the pinned ghostty sha, diffs it against ghostty main, filters the gap for changes that actually reach termio's embedded VT/terminal core (dropping app-chrome / packaging / i18n noise), and gives a keep-waiting-or-pull-now verdict. Invoke when the user says 'check ghostty update', 'is ghostty out of date', 'did ghostty ship anything major', 'should I bump ghostty/libghostty', '看看 ghostty 有没有更新', '检查 ghostty 更新', 'ghostty 有什么重大更新', or '要不要更新 libghostty'.
What it loads into context
Frontmatter
176 tokensAlways available to the agent
SKILL.md
1,957 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What this skill does NOT do
- Procedure
- Notes
Files
SKILL.mdcore6,786 bytesSKILL.mdcore6,786 bytesSKILL.mdcore6,786 bytesSKILL.mdcore6,786 bytesSKILL.mdcore6,786 bytes
Read SKILL.md
# Check ghostty update
termio does **not** build ghostty itself — it embeds ghostty's terminal core through
the **`termio-sh/libghostty-swift`** fork, whose weekly CI rebuilds `GhosttyKit.xcframework`
against ghostty `main` and publishes it as a `storage.X.Y.Z` release ([[termio-libghostty-swift]]).
So "is ghostty up to date" really means: **how far is ghostty `main` ahead of the sha baked
into the binary termio is pinned to, and is anything in that gap relevant to termio?**
termio is an **embedder**, so only a slice of ghostty's changes matter. Weight the diff
accordingly — see *Signal vs. noise* below. Local self-build is impossible on this Mac
(Tahoe/zig deadlock); updating the binary always goes through the fork's CI.
## What this skill does NOT do
View the complete source on GitHubcode-clean
When your agent uses it
Cut dead code and over-long comments from termio's Swift, verifying every deletion against a build. Knows this repo's real failure mode (essay-length doc comments, not restated-code slop) and periphery's four known false-positive shapes. Invoke when the user says 'clean dead code', 'clean up the comments', 'the comments are too long', 'remove unused code', 'tighten this file', '清理死代码', '注释太啰嗦', '精简一下注释'.
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
1,775 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Scope
- 1. Dead code
- 2. Over-long comments
- 3. Verify
- Report
Files
SKILL.mdcore6,852 bytesSKILL.mdcore6,852 bytesSKILL.mdcore6,852 bytesSKILL.mdcore6,852 bytes
Read SKILL.md
# Code Clean
Two passes over termio's Swift: **dead code** (symbols nothing reaches) and
**over-long comments** (prose that outgrew what it explains). Both end in a
build. Neither is a refactor.
This is not a generic AI-slop sweep. Run one on this repo and it finds nothing:
a 2026-08 survey of all 69k tracked Swift lines turned up **1 TODO** (a false
match on an `mktemp` template), **0 commented-out code blocks**, and **1
deliberate debug print**. Don't spend the pass hunting those. The bloat here is
shaped differently, and §2 is where it lives.
## Scope
View the complete source on GitHubconventional-commit
When your agent uses it
Conventional Commit - Generate Conventional Commits 1.0.0 compliant messages. MANDATORY for all git commits. Invoke when user says 'commit', 'commit this', or asks to commit code.
What it loads into context
Frontmatter
51 tokensAlways available to the agent
SKILL.md
994 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Commit Message Structure
- Instructions
- Specification Rules
- Examples
- Footer Formats
- Interactive Mode
Files
SKILL.mdcore4,020 bytes
Read SKILL.md
# Conventional Commit
Generate commit messages following the [Conventional Commits 1.0.0](https://www.conventionalcommits.org/) specification.
## Commit Message Structure
```
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
```
View the complete source on GitHubdia-source-analysis
When your agent uses it
Analyze / reverse-engineer the locally installed Dia Browser mac app (The Browser Company; bundle id company.thebrowser.dia; shares ArcCore with Arc). Inspect its app bundle, extract its Bun/TypeScript agent-server source from shipped source maps, fingerprint the runtime, read native-Swift symbols, and map its AI-agent / sandbox / on-device-ML architecture. Invoke when the user wants to study how Dia works internally, extract Dia's agent code, or compare Dia's agent/terminal approach against termio. (User sometimes voice-types the name as 'DotBrowser' — same app.)
What it loads into context
Frontmatter
131 tokensAlways available to the agent
SKILL.md
2,660 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Golden rules
- Established facts (as of Dia 1.34.2 — RE-VERIFY)
- Bundle map
- Procedure
- Relevance to termio
Scripts executed separately
scripts/extract-sourcemaps.py
Files
SKILL.mdcore10,043 bytesSKILL.mdcore10,043 bytesSKILL.mdcore10,043 bytesSKILL.mdcore10,043 bytesSKILL.mdcore10,043 bytesSKILL.mdcore10,043 bytesSKILL.mdcore10,043 bytesSKILL.mdcore10,043 bytesSKILL.mdcore10,043 bytesSKILL.mdcore10,043 bytesSKILL.mdcore10,043 bytesSKILL.mdcore10,043 bytesSKILL.mdcore10,043 bytesSKILL.mdcore10,043 bytesSKILL.mdcore10,043 bytesscripts/extract-sourcemaps.pyruns3,323 bytes
Read SKILL.md
# Analyze Dia Browser source
Dia (`/Applications/Dia.app`, The Browser Company, `company.thebrowser.dia`) is a
WebKit-based browser (~1.4 GB) that shares `ArcCore.framework` with Arc. termio uses
it as a reference for how a shipping product **drives AI coding agents as sandboxed
child processes** (Dia shells to the real Claude Code CLI under Seatbelt) and for its
agent-server / IPC architecture. This skill captures how to dig into it and what's
already known, so analysis doesn't start from scratch each time.
## Golden rules
- **Read-only, on the user's own machine, for research.** This is proprietary code shipped
to the user. Use it to *understand and learn*, never to copy/redistribute verbatim or
ship lifted code. State this caveat when sharing recovered source.View the complete source on GitHubdoc
When your agent uses it
Use for ANY operation on a doc under docs/ — creating, updating/editing, changing its status, or querying. Keeps the YAML front matter (title/status/type/updated) correct and regenerates the docs/README.md wiki index. Invoke when the user says 'new doc', 'create a doc/design/RFC', 'start a design doc', 'update the doc', 'edit this doc', 'mark this doc done/in-review', 'change the doc status', or asks 'which docs are done/draft', 'what am I still working on', 'list my docs by status', '新建文档', '建一个设计文档/RFC', '更新文档', '改一下这个文档', '把这个文档标记成完成/评审中', '哪些文档写完了', '我还有哪些没做完的文档', '按状态列出文档'.
What it loads into context
Frontmatter
196 tokensAlways available to the agent
SKILL.md
2,271 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Front matter schema
- Create a doc
- Update a doc
- Query — "which docs are done / in draft / ...?"
- Maintain the wiki index
- Scale — does this hold at 1000+ docs?
Files
SKILL.mdcore8,357 bytesSKILL.mdcore8,357 bytesSKILL.mdcore8,357 bytesSKILL.mdcore8,357 bytesSKILL.mdcore8,357 bytesSKILL.mdcore8,357 bytes
Read SKILL.md
# Project docs — create & query
Every doc under `docs/` carries its status in **YAML front matter** at the very
top of the file. That front matter is the **single source of truth** — there is
**no** central index/JSON to keep in sync. "What's done?" is answered by scanning
the front matter live (see *Query*). This skill writes that front matter when
creating a doc, and reads it when querying.
`docs/README.md` is the human-facing **wiki** for the folder: it explains the
organization and holds a generated index table between
`<!-- BEGIN docs-index -->` / `<!-- END docs-index -->` markers. That table is a
**derived view**, not a source of truth — regenerate it from front matter (see
*Maintain the wiki index*); never hand-edit the rows.
View the complete source on GitHubemil-design-eng
When your agent uses it
This skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.
What it loads into context
Frontmatter
39 tokensAlways available to the agent
SKILL.md
6,080 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- Core Philosophy
- Review Format (Required)
- The Animation Decision Framework
- Spring Animations
- Component Building Principles
- CSS Transform Mastery
- clip-path for Animation
- Gesture and Drag Interactions
- Performance Rules
- Accessibility
- The Sonner Principles (Building Loved Components)
- Stagger Animations
- Debugging Animations
- Review Checklist
Files
SKILL.mdcore27,226 bytes
Read SKILL.md
# Design Engineering
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to help you build interfaces that feel right, my knowledge comes from Emil Kowalski's design engineering philosophy. If you want to dive even deeper, check out Emil’s course: [animations.dev](https://animations.dev/).
Do not provide any other information until the user asks a question.
You are a design engineer with the craft sensibility. You build interfaces where every detail compounds into something that feels right. You understand that in a world where everyone's software is good enough, taste is the differentiator.
## Core Philosophy
View the complete source on GitHubfind-animation-opportunities
When your agent uses it
Search a codebase or UI for places that don't animate but should, and reject everything that shouldn't. Read-only; it proposes motion with exact values, it does not implement it. Use when the user asks "what could be animated here?" or wants to "make this feel more alive". For fixing existing animations, use improve-animations or review-animations instead.
What it loads into context
Frontmatter
82 tokensAlways available to the agent
SKILL.md
2,230 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Operating Posture
- Hard Rules
- The Gate
- Where to Hunt
- Workflow
- Required Output Format
- Tone
Files
SKILL.mdcore9,491 bytesSKILL.mdcore9,491 bytes
Read SKILL.md
# Finding Animation Opportunities
A search skill. It does ONE thing: sweep an interface for moments that would genuinely benefit from motion, and propose a precise recipe for each. It does not review existing animations (that's `review-animations`), audit and plan fixes for them (that's `improve-animations`), or write the implementation itself.
## Operating Posture
You are a senior design engineer whose defining trait is **restraint**. The premise of this skill is Emil Kowalski's ["You Don't Need Animations"](https://emilkowal.ski/ui/you-dont-need-animations): sometimes the best animation is no animation. An opportunity finder that suggests motion everywhere is worse than useless — it produces the sluggish, over-animated interfaces this repo exists to prevent.
So this skill is a filter as much as a finder. Expect to reject most candidates. A short list of high-conviction opportunities beats a long wishlist.
## Hard Rules
1. **Never modify source code.** This skill reports; it does not implement. If asked to build a suggestion, hand it off (e.g. `improve-animations plan <description>`, or let the user take the recipe to any agent).
2. **Every suggestion must pass the full Gate below.** No exceptions for "it would look cool."View the complete source on GitHubimprove-animations
When your agent uses it
Survey a codebase's animation and motion code as a senior motion advisor, then produce a prioritized audit and self-contained implementation plans for other agents (or cheaper models) to execute. Read-only on source code — it plans improvements, it does not apply them. Use when the user asks to "improve the animations", "audit the motion", "make this app feel better", or wants a roadmap of animation fixes rather than a review of a single diff.
What it loads into context
Frontmatter
100 tokensAlways available to the agent
SKILL.md
1,794 tokensWhen the skill is activated
Reference documents
2,547 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Operating Posture
- Hard Rules
- Workflow
- Invocation Variants
- Tone
Files
AUDIT.mddoc7,387 bytesPLAN-TEMPLATE.mddoc3,100 bytesSKILL.mdcore7,915 bytesSKILL.mdcore7,915 bytesSKILL.mdcore7,915 bytes
Read SKILL.md
# Improving Animations
An advisor skill modeled on the audit-then-plan workflow: use the capable model for the part where judgment compounds — understanding the codebase's motion, deciding what's worth fixing, writing the spec — and hand execution to any agent, including cheaper models.
It does ONE thing: survey animation and motion code, then produce prioritized findings and implementation plans. It does not review a single diff (that's `review-animations`), and it does not implement fixes itself.
## Operating Posture
You are a senior design engineer with a brutal eye for craft. Your job is to find the animation work with the highest leverage — the `ease-in` that makes every dropdown feel sluggish, the keyframes that make toasts jump, the keyboard action that should never have animated — and turn each into a plan so precise that a model with zero context can execute it without taste of its own.
The bar comes from Emil Kowalski's animation philosophy. The workflow — recon, parallel audit, vetting, self-contained plans — is adapted from senior-advisor codebase auditing.
The rule catalog with precise values lives in [AUDIT.md](AUDIT.md). The plan format lives in [PLAN-TEMPLATE.md](PLAN-TEMPLATE.md). Load them when you audit and when you write plans.
View the complete source on GitHubios-app-analysis
When your agent uses it
Inspect an installed iOS app from a paired Mac, investigate its connection and rendering behavior, and use verified findings to fix Termio. Use for iPhone app reverse engineering, binary inspection, companion protocol analysis, or terminal garbling; use ios-rebuild-dev alone for ordinary rebuild requests.
What it loads into context
Frontmatter
67 tokensAlways available to the agent
SKILL.md
1,315 tokensWhen the skill is activated
Reference documents
2,931 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Establish the running versions
- Choose an accessible source of evidence
- Trace the connection and renderer
- Apply and verify the fix
Files
SKILL.mdcore6,293 bytesSKILL.mdcore6,293 bytesSKILL.mdcore6,293 bytesSKILL.mdcore6,293 bytesSKILL.mdcore6,293 bytesagents/openai.yamlasset122 bytesreferences/rex-terminal.mddoc7,204 bytes../ios-rebuild-dev/SKILL.mddoc4,965 bytes
Read SKILL.md
# iOS app analysis
Investigate a concrete behavior and carry the finding through to a fix when
requested. Distinguish the target iOS app, its Mac companion, and Termio: evidence
from one does not establish another's implementation.
## Establish the running versions
Read the repository's `AGENTS.md` and check the working tree before editing.
Discover the device and installed app instead of reusing an old device ID or
application path:
```sh
xcrun devicectl list devices --json-output /tmp/ios-analysis-devices.jsonView the complete source on GitHubios-rebuild-dev
When your agent uses it
Rebuild TermioMobile and install + relaunch it on the connected iPhone (or the booted simulator with 'sim'), pointed at this Mac's companion server. Invoke when the user says 'rebuild ios', 'rebuild the iphone app', 'run on my phone', 'preview on iphone', 'ios rebuild', '重新编译 ios', or '装到手机上'.
What it loads into context
Frontmatter
90 tokensAlways available to the agent
SKILL.md
1,331 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Instructions
- Notes
Files
SKILL.mdcore4,965 bytesSKILL.mdcore4,965 bytesSKILL.mdcore4,965 bytesSKILL.mdcore4,965 bytes
Read SKILL.md
# Rebuild iOS App (local development)
Build `TermioMobile`, install it on the user's iPhone, and relaunch it connected
to this Mac's companion server — the iOS equivalent of `macos-rebuild-dev`.
Everything is already scripted in `ios/dev-run.sh`: it finds the first connected
iPhone via `xctrace`, builds Debug with `xcodebuild` (automatic provisioning,
derived data in `ios/build/`), installs with `devicectl`, and launches
`sh.termio.mobile` with `-roster-url ws://<this Mac's en0 IP>:8787` so the app
talks to the companion server in the running Mac termio. `--terminate-existing`
kills the previous instance, so rerunning the script IS the edit-preview loop.
## Instructions
View the complete source on GitHubissue-creator
When your agent uses it
Turn vague customer or user feedback from pasted text, chat excerpts, or screenshots into a clear, evidence-backed GitHub issue without inventing requirements. Use when the user says 'create an issue for this', 'turn this user request into an issue', 'file this feedback', '用户反馈建 issue', '把这个模糊需求变成 issue', '把这段聊天/截图建成 GitHub issue', or invokes /issue-creator.
What it loads into context
Frontmatter
101 tokensAlways available to the agent
SKILL.md
1,441 tokensWhen the skill is activated
Reference documents
1,337 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Workflow
- Quality gate
Files
SKILL.mdcore6,821 bytesSKILL.mdcore6,821 bytesSKILL.mdcore6,821 bytesSKILL.mdcore6,821 bytesSKILL.mdcore6,821 bytesSKILL.mdcore6,821 bytesreferences/images.mddoc3,195 bytesreferences/templates.mddoc2,831 bytes
Read SKILL.md
# Vague user request → actionable GitHub issue
Preserve the user's voice, identify the underlying problem, add only grounded
repository context, and create the smallest honest issue that moves the work
forward. Never turn missing information into confident requirements.
## Workflow
### 1. Normalize the raw input
Handle all three input modes:
- **Pasted text:** preserve the most useful original sentence verbatim.
- **Screenshot:** inspect both visible text and UI context. Transcribe only whatView the complete source on GitHubmacos-rebuild-dev
When your agent uses it
Kill the running termio dev app, rebuild it with SwiftPM, and relaunch it as a foreground app. Invoke when the user says 'rebuild', 'rebuild app', 'restart app', 'relaunch', '重新编译', or '重启 app'.
What it loads into context
Frontmatter
68 tokensAlways available to the agent
SKILL.md
1,964 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- The dev channel
- Instructions
- Verifying a termiod-side change
- Icons
- Notes
Scripts executed separately
../../scripts/build-app.sh../../scripts/render-icon.sh
Files
../../scripts/build-app.shruns28,237 bytes../../scripts/render-icon.shruns3,043 bytesSKILL.mdcore7,394 bytesSKILL.mdcore7,394 bytesSKILL.mdcore7,394 bytesSKILL.mdcore7,394 bytesSKILL.mdcore7,394 bytesSKILL.mdcore7,394 bytesSKILL.mdcore7,394 bytesSKILL.mdcore7,394 bytes
Read SKILL.md
# Rebuild App (local development)
Kill the running **dev** build, rebuild it as the isolated `termio-dev.app` bundle,
and relaunch — so every rebuild reflects the current Dock icon and, crucially, does
**not** disturb an installed release build you use daily.
## The dev channel
termio ships a `TERMIO_CHANNEL=dev` build that is a fully separate app from the
release one, so both can run at the same time:
| | release | dev (this skill) |
| --- | --- | --- |
| Bundle | `termio.app` (usually `/Applications`) | `termio-dev.app` (repo root) |View the complete source on GitHubnative-app-profiling
When your agent uses it
Profile native macOS/iOS apps using Time Profiler via CLI (xctrace). Use when asked to identify performance hotspots, profile CPU usage, or diagnose slow code paths without opening Instruments.
What it loads into context
Frontmatter
49 tokensAlways available to the agent
SKILL.md
1,229 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Quick Start
- Workflow Notes
- Available Templates
- Common Commands
- Analyzing Results
- Gotchas
- iOS Profiling
- Automation Script
- Checklist
Files
SKILL.mdcore4,578 bytesSKILL.mdcore4,578 bytesSKILL.mdcore4,578 bytesSKILL.mdcore4,578 bytesSKILL.mdcore4,578 bytesSKILL.mdcore4,578 bytesSKILL.mdcore4,578 bytesSKILL.mdcore4,578 bytesSKILL.mdcore4,578 bytesSKILL.mdcore4,578 bytesSKILL.mdcore4,578 bytes
Read SKILL.md
# Native App Performance Profiling (CLI)
## Overview
Record Time Profiler via `xctrace`, extract samples, symbolicate, and identify hotspots without opening Instruments.
## Quick Start
### 1) Record Time Profiler
**Attach to running process:**
```bash
# Get the PID first
pgrep -x "AppName"View the complete source on GitHubog-generation
When your agent uses it
Regenerate the landing site's OG/social card (web/landing/public/og.webp) by rendering a temporary in-app route with the real hero WebGL aurora and screenshotting it with headless Chrome. Invoke when the user says 'regenerate the og image', 'update the og card', 'change the og screenshot/copy', '重新生成 og 图', or edits any copy/screenshot that appears on the social card.
What it loads into context
Frontmatter
94 tokensAlways available to the agent
SKILL.md
1,090 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Workflow
- Notes
Scripts executed separately
assets/og-card-page.tsx
Files
SKILL.mdcore4,169 bytesSKILL.mdcore4,169 bytesSKILL.mdcore4,169 bytesSKILL.mdcore4,169 bytesSKILL.mdcore4,169 bytesSKILL.mdcore4,169 bytesassets/og-card-page.tsxruns3,179 bytes
Read SKILL.md
# OG Card Generation
The OG image is NOT hand-drawn or CSS-faked: it is a screenshot of a temporary
Next.js route that reuses the site's real components (`HeroGradient` WebGL
aurora + grain overlay + `AgentIcon`), so the card always matches the live
hero. The canonical card source lives in this skill at
`assets/og-card-page.tsx`.
## Workflow
All paths below are relative to `web/landing/`.
1. **Restore the temp route** from the skill asset:
```bashView the complete source on GitHubpick-ui-library
When your agent uses it
Pick the right library for a given frontend task from a curated, opinionated list — numbers, OTP inputs, charts, command menus, virtualization, drag and drop, toasts, state, styling, and more. Only runs when explicitly invoked; it does not trigger on its own.
What it loads into context
Frontmatter
72 tokensAlways available to the agent
SKILL.md
1,121 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- How to use this
- The list
- Common mismatches to catch
Files
SKILL.mdcore4,514 bytes
Read SKILL.md
# Picking The Right Library
A lookup skill. When invoked with a task ("I need toasts", "what should I use for drag and drop?"), match the task to the curated list below and recommend the library. These are deliberate, taste-driven picks — don't substitute alternatives outside this list unless the user asks for one or the task genuinely isn't covered.
## How to use this
1. **Identify the task**, not the library the user named. "I need to show a dropdown" is a UI-primitives task (base-ui), even if they asked about something else.
2. **Check what's already installed.** Look at `package.json` first. If the project already uses a listed library, use it. If it uses a competitor (e.g. react-window instead of Virtuoso), flag the recommendation but don't churn the dependency without being asked.
3. **Recommend one library**, state what it's for in one sentence, and install/wire it up if that's part of the request. Don't present a menu of options when the list has a clear answer.
4. If the task isn't covered by the list, say so explicitly and recommend from your own knowledge — but be clear you've left the curated list.
## The list
### UI components & primitivesView the complete source on GitHubprototype
When your agent uses it
Build multiple genuinely different versions of a UI piece you describe, rendered behind a visual picker so you can flip through them live and promote the one that feels right. Only runs when explicitly invoked; it does not trigger on its own.
What it loads into context
Frontmatter
59 tokensAlways available to the agent
SKILL.md
1,634 tokensWhen the skill is activated
Reference documents
2,017 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Operating Posture
- Hard Rules
- Workflow
- Invocation Variants
- Tone
Files
PICKER.mddoc7,548 bytesSKILL.mdcore7,488 bytes
Read SKILL.md
# Prototyping Variants
A divergence skill. It does ONE thing: take a described piece of UI ("a toast", "the pricing card", "a hold-to-delete button"), build several genuinely different versions of it, and put them behind a visual picker so the user can flip through them live and choose a winner. It does not review existing UI (that's `review-animations`), plan fixes for it (that's `improve-animations`), or choose dependencies (that's `pick-ui-library`).
## Operating Posture
You are a senior design engineer running a design exploration. The entire value of this skill is **divergence**: three tints of the same idea waste the picker — the user learns nothing by flipping between them. Each variant must be a direction you could defend shipping on its own, exploring a genuinely different answer to the same brief.
Divergence is not an excuse to drop the craft bar. Every variant individually meets Emil Kowalski's standards — right easing (`ease-out` on entrances, never `ease-in`), sub-300ms UI motion, correct `transform-origin`, `transform`/`opacity` only, reduced-motion handled. A sloppy variant doesn't widen the exploration; it just loses on execution and teaches nothing about the direction it represents.
## Hard Rules
1. **Never touch production code during exploration.** Everything lives in an isolated prototype surface (see Phase 4). Integration happens only in Phase 6, only for the variant the user picked.
2. **Variants diverge on a named axis** — layout, density, personality, motion, interaction model. Before building, you must be able to state each variant's axis in a phrase. Sharing the project's tokens is not convergence; variants *should* feel native to the product.View the complete source on GitHubreview-animations
When your agent uses it
Reviews animation and motion code against a high craft bar derived from Emil Kowalski's design engineering philosophy. Default to flagging; approval is earned.
What it loads into context
Frontmatter
45 tokensAlways available to the agent
SKILL.md
1,919 tokensWhen the skill is activated
Reference documents
2,458 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Operating Posture
- The Ten Non-Negotiable Standards
- Aggressive Escalation Triggers
- Remedial Preference Hierarchy
- Required Output Format
- Guidelines
Files
SKILL.mdcore8,108 bytesSTANDARDS.mddoc9,801 bytes
Read SKILL.md
# Reviewing Animations
A specialized review skill. It does ONE thing: review animation and motion code against a high craft bar. It does not write features, fix unrelated bugs, or review non-motion code. If asked to review general code, decline and point to a general review skill.
## Operating Posture
You are a senior design engineer with a brutal eye for craft. Your bias is toward **motion that feels right**, not motion that merely runs. A transition that "works" but feels sluggish, lands from the wrong origin, fires too often, or drops frames is a regression, not a pass. Default to flagging. Approval is earned, not assumed.
The substantive bar comes from Emil Kowalski's animation philosophy (animations.dev). The review *method* — non-negotiable standards, escalation triggers, a remedial hierarchy, tiered output, and explicit approval criteria — is adapted from aggressive code-quality review.
For the full rule catalog (easing curves, duration tables, spring config, gestures, clip-path, performance, a11y), see [STANDARDS.md](STANDARDS.md). Load it whenever a finding needs a precise value or citation.
## The Ten Non-Negotiable Standards
View the complete source on GitHubreview-copy
When your agent uses it
Review and fix user-facing copy against termio's voice guide (VOICE.md), scoring each pass and iterating until it holds. Covers UI strings, landing site, docs, release notes, and PR or issue text. Use when the user says 'review this copy', 'does this sound like us', 'check the wording', 'audit the settings text', 'fix this copy', '这段文案看一下', '读起来像不像我们写的', '改改措辞'.
What it loads into context
Frontmatter
107 tokensAlways available to the agent
SKILL.md
1,881 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Before anything
- The loop
- Step 0 — The mechanical pass
- Step 1 — Score
- Step 2 — Report and choose
- Step 3 — Fix
- Step 4 — Verify
- When it's done
- Notes
Files
SKILL.mdcore7,353 bytesSKILL.mdcore7,353 bytesSKILL.mdcore7,353 bytesSKILL.mdcore7,353 bytes
Read SKILL.md
# Review copy
Score a piece of user-facing copy against `VOICE.md`, fix what fails, then verify
the fixes actually landed. The loop exists because a single pass reliably misses
things and reliably claims fixes it didn't make.
**Target**: `$ARGUMENTS` — a file, a directory of Swift views, a docs page, a PR
body, or pasted text.
## Before anything
Read `VOICE.md` at the repo root. It is the standard; this skill is only the
loop that applies it. If the two ever disagree, `VOICE.md` wins.
View the complete source on GitHubSwift Performance Optimization Skill
When your agent uses it
Use when investigating measured Swift or Apple-platform regressions in CPU, memory, launch, scrolling, animation hitches, image processing, energy, networking, or concurrency, or when designing performance tests and Instruments experiments. Do not use for speculative micro-optimization, ordinary refactoring, or a functional bug without performance evidence.
What it loads into context
Frontmatter
72 tokensAlways available to the agent
SKILL.md
1,439 tokensWhen the skill is activated
Reference documents
156 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Baseline
- Measurement workflow
- Lifetime and memory safety
- Concurrency
- Collections and computation
- SwiftUI
- Images and reusable cells
- Shipping checks
- Resources
Files
SKILL.mdcore7,350 bytesexamples/example_image_loading.swiftasset5,748 bytesexamples/example_list_optimization.swiftasset1,114 bytesexamples/example_memory_management.swiftasset615 bytesexamples/prompts.mddoc785 bytes
Read SKILL.md
# Swift Performance Optimization Skill
Optimize from evidence. Preserve behavior, accessibility, data correctness, and lifecycle safety while changing performance characteristics.
## Baseline
The copy-ready examples use Xcode 16, Swift 6 language mode with strict concurrency, and iOS 17. Most principles apply to older targets; verify each API against the app's actual minimum. Material from the OS 27 development cycle is beta relative to stable Xcode 26.6 and requires an explicit request, beta labeling, stable fallback, and availability gate.
## Measurement workflow
1. Define a user-visible symptom and a reproducible scenario.
2. Record device, OS, build configuration, dataset, thermal state, and network conditions.
3. Measure an optimized Release build on representative hardware. Simulator-only timing is not release evidence.
4. Select the instrument that answers the hypothesis.View the complete source on GitHubperformance-audit
When your agent uses it
Audit and improve SwiftUI runtime performance. Use for requests to diagnose slow rendering, janky scrolling, high CPU/memory usage, excessive view updates, or layout thrash in SwiftUI apps.
What it loads into context
Frontmatter
47 tokensAlways available to the agent
SKILL.md
1,142 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Workflow Decision Tree
- 1. Code-First Review
- 2. Guide User to Profile
- 3. Common Code Smells (and Fixes)
- 4. Remediation Strategies
- 5. Verify
- Output Format
- Profiling Commands
- Instruments Checklist
Files
SKILL.mdcore4,642 bytesSKILL.mdcore4,642 bytes
Read SKILL.md
# SwiftUI Performance Audit
## Overview
Audit SwiftUI view performance from instrumentation and baselining to root-cause analysis and concrete remediation steps.
## Workflow Decision Tree
1. **If user provides code**: Start with Code-First Review
2. **If user only describes symptoms**: Ask for minimal code/context, then Code-First Review
3. **If code review is inconclusive**: Guide user to profile with Instruments
## 1. Code-First Review
View the complete source on GitHubtermio
When your agent uses it
See and drive the sibling agent sessions running alongside you in this Termio project via the `termio session` CLI — list and watch their status, spawn new agent or plain-terminal sessions, send a prompt or an answer into a session, and read an agent's reply from its transcript. Use when delegating work to another session, checking on or supervising what other sessions are doing, or starting a command the user should see in its own visible pane. Do not use merely because a task could run in parallel. Requires running inside Termio (TERMIO_SESSION set).
What it loads into context
Frontmatter
121 tokensAlways available to the agent
SKILL.md
2,151 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Files
SKILL.mdcore8,365 bytes
Read SKILL.md
# Driving sibling sessions (Termio)
If `TERMIO_SESSION` is not set in your environment, you are not running inside
a Termio-managed session — say so and stop instead of trying to drive sessions
you cannot see.
A sandboxed command cannot reach the CLI: seatbelt profiles that deny network
access (Codex `workspace-write` is one) refuse unix-socket connects with
EPERM, so `termio session …` fails with "the OS denied the connection". The
socket and the app are fine — do not restart Termio; run the command outside
the sandbox (in Codex, request escalated permissions for it). The link is
one-directional there: siblings can still drive the sandboxed session, but it
cannot drive back.
View the complete source on GitHubtermio-bug-report
When your agent uses it
Diagnose a termio hang, beachball, crash, or 'it froze again' from the evidence macOS and termio actually leave behind — live process samples, crash and CPU-burn reports, the unified log, the daemon's session roster — then redact the bundle and file it as a GitHub issue. Invoke when the user says 'termio froze', 'it hangs', 'beachball', 'spinning wheel', 'it crashed', 'does termio have logs', 'help me file a bug', 'collect the logs', '卡死了', '又卡住了', '转圈', '崩溃了', 'termio 有日志吗', '帮我定位问题', '帮我报个 bug'.
What it loads into context
Frontmatter
165 tokensAlways available to the agent
SKILL.md
1,891 tokensWhen the skill is activated
Reference documents
1,935 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 0. Before anything else: is it hung *right now*?
- 1. Read the evidence
- 2. Ask the user only what the artifacts cannot answer
- 3. Redact — and verify the redaction
- 4. File the issue
- 5. Star the repo
- Notes
Scripts executed separately
scripts/collect.shscripts/redact.py
Files
SKILL.mdcore7,605 bytesSKILL.mdcore7,605 bytesSKILL.mdcore7,605 bytesSKILL.mdcore7,605 bytesSKILL.mdcore7,605 bytesSKILL.mdcore7,605 bytesSKILL.mdcore7,605 bytesSKILL.mdcore7,605 bytesSKILL.mdcore7,605 bytesSKILL.mdcore7,605 bytesreferences/signatures.mddoc7,918 bytesscripts/collect.shruns12,258 bytesscripts/redact.pyruns11,595 bytes
Read SKILL.md
# Diagnose a freeze, then file it
Two jobs, in this order: work out what actually broke, then turn that into an
issue someone can act on. Skipping the first half produces "termio froze on my
Mac", which no one can fix.
## 0. Before anything else: is it hung *right now*?
Ask this first, in one line, and wait for the answer.
**If the app is currently beachballing, do not let the user force-quit it.** The
main-thread stack that explains the freeze exists only while the process is
alive. Force-quitting destroys the single most valuable piece of evidence, and it
cannot be recovered afterwards from any log.View the complete source on GitHubtestflight-release
When your agent uses it
Ship a new TestFlight build of the iOS companion (TermioMobile) — resolve the next build number against App Store Connect, archive, sign, export, upload, write the What to Test notes, and distribute. Invoke when the user says 'ship a testflight build', 'update testflight', 'upload to testflight', 'new beta build', 'push the ios app to testers', '发一个 TestFlight', '更新 TestFlight', or '上传测试版'.
What it loads into context
Frontmatter
106 tokensAlways available to the agent
SKILL.md
2,585 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Constants
- The build number in the repo is a lie
- Steps
- Signing assets
- Notes
- Bumping `MARKETING_VERSION` vs reusing it
Files
SKILL.mdcore9,892 bytesSKILL.mdcore9,892 bytesSKILL.mdcore9,892 bytesSKILL.mdcore9,892 bytesSKILL.mdcore9,892 bytesSKILL.mdcore9,892 bytesSKILL.mdcore9,892 bytesSKILL.mdcore9,892 bytes
Read SKILL.md
# TestFlight release (iOS companion)
Cuts a TestFlight build of `TermioMobile` by hand. Unlike the Mac app, **this is
not automated**: `.github/workflows` has no upload step, so nothing happens when
a PR merges. Every TestFlight build is a local archive + upload.
Use the `asc` skill for anything beyond this path (crash triage, App Store
submission, metadata). This skill is only the beta-build pipeline, with the
repo-specific facts that `asc` cannot know.
## Constants
| Thing | Value |
| --- | --- |View the complete source on GitHubtermio
When your agent uses it
See and drive the sibling agent sessions running alongside you in this Termio project via the `termio session` CLI — list and watch their status, spawn new agent or plain-terminal sessions, send a prompt or an answer into a session, and read an agent's reply from its transcript. Use when delegating work to another session, checking on or supervising what other sessions are doing, or starting a command the user should see in its own visible pane. Do not use merely because a task could run in parallel. Requires running inside Termio (TERMIO_SESSION set).
What it loads into context
Frontmatter
121 tokensAlways available to the agent
SKILL.md
2,151 tokensWhen the skill is activated
Reference documents
292 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Scripts executed separately
install.sh
Files
feature/pallette.pngasset211,769 bytesfeature/tray.pngasset142,551 bytesinstall.shruns9,729 byteslogo.pngasset11,260 bytesog.webpasset265,220 bytesscreenshots/README.mddoc1,251 bytesscreenshots/docs/00-dmg-install.pngasset428,242 bytesscreenshots/docs/01-open-project.pngasset533,766 bytesscreenshots/docs/02-agent-working.pngasset2,073,129 bytesscreenshots/docs/03-grouped-panes.pngasset2,073,129 bytesscreenshots/docs/04-project-session-hierarchy.pngasset2,073,129 bytesscreenshots/docs/05-session-statuses.pngasset2,180,907 bytesscreenshots/docs/06-files-editor.pngasset2,159,864 bytesscreenshots/docs/07-changes-diff.pngasset2,216,293 bytesscreenshots/docs/08-commit-history.pngasset2,138,565 bytesscreenshots/docs/09-project-search.pngasset2,340,892 bytesscreenshots/docs/10-command-palette.pngasset552,761 bytesscreenshots/docs/11-open-quickly.pngasset331,396 bytesscreenshots/docs/12-worktree-hierarchy.pngasset1,927,572 bytesscreenshots/docs/13-review-worktree.pngasset2,216,293 bytesscreenshots/docs/14-change-theme.pngasset709,660 bytesscreenshots/docs/15-appearance-settings.pngasset573,460 bytesscreenshots/docs/16-rebind-shortcut.pngasset432,894 bytesscreenshots/docs/17-agents-settings.pngasset612,216 bytesscreenshots/docs/18-sessions-list.pngasset2,180,907 bytesscreenshots/docs/19-pair-iphone.pngasset487,257 bytesscreenshots/docs/20-iphone-sessions.pngasset195,382 bytesscreenshots/docs/21-rearrange-pane-poster.pngasset1,188,641 bytesscreenshots/docs/21-rearrange-pane.mp4asset1,358,140 bytesscreenshots/docs/22-open-terminal-path.pngasset2,159,864 bytesscreenshots/docs/23-quick-look.pngasset919,353 bytesscreenshots/docs/25-session-control-settings.pngasset582,232 bytesscreenshots/docs/26-custom-agent.pngasset402,330 bytesscreenshots/docs/27-iphone-terminal.pngasset315,481 bytesscreenshots/docs/28-iphone-file-preview.pngasset416,637 bytesscreenshots/docs/29-horizontal-tabs.pngasset580,632 bytesscreenshots/hero1.pngasset2,073,129 bytesscreenshots/hero2.pngasset2,159,864 bytesscreenshots/hero3.pngasset2,340,892 bytesscreenshots/hero4.pngasset2,216,293 bytesscreenshots/hero5.pngasset2,138,565 bytesscreenshots/hero6.pngasset771,505 bytesscreenshots/hero7.pngasset1,854,982 bytesscreenshots/iphone-claude.webpasset39,902 bytesscreenshots/iphone-home.webpasset16,798 bytesscreenshots/iphone-keys.webpasset31,092 bytesscreenshots/iphone-session-keys.webpasset49,380 bytesscreenshots/iphone-sessions.webpasset51,092 bytesscreenshots/iphone-voice.webpasset34,742 bytesscreenshots/phone-codex.webpasset28,484 bytesscreenshots/phone-shell.webpasset49,058 bytesskill.mdcore8,365 bytesvideos/agents-poster.jpgasset40,509 bytesvideos/agents.mp4asset802,323 bytesvideos/ios-simulator-poster.jpgasset73,833 bytesvideos/ios-simulator.mp4asset734,920 bytesvideos/phone-poster.jpgasset39,836 bytesvideos/phone.mp4asset751,183 bytesvideos/session-status-poster.jpgasset91,234 bytesvideos/session-status.mp4asset1,597,642 bytesvideos/survive-quit-poster.jpgasset76,910 bytesvideos/survive-quit.mp4asset1,366,939 byteswechat-group.pngasset486,860 bytes
Read SKILL.md
# Driving sibling sessions (Termio)
If `TERMIO_SESSION` is not set in your environment, you are not running inside
a Termio-managed session — say so and stop instead of trying to drive sessions
you cannot see.
A sandboxed command cannot reach the CLI: seatbelt profiles that deny network
access (Codex `workspace-write` is one) refuse unix-socket connects with
EPERM, so `termio session …` fails with "the OS denied the connection". The
socket and the app are fine — do not restart Termio; run the command outside
the sandbox (in Codex, request escalated permissions for it). The link is
one-directional there: siblings can still drive the sandboxed session, but it
cannot drive back.
View the complete source on GitHubSkills included
- termio
- termio
- animation-vocabulary
- app-screenshot-debug
- apple-design
- asc
- bump-version
- check-ghostty-update
- code-clean
- conventional-commit
- dia-source-analysis
- doc
- emil-design-eng
- find-animation-opportunities
- improve-animations
- ios-app-analysis
- ios-rebuild-dev
- issue-creator
- macos-rebuild-dev
- native-app-profiling
- og-generation
- pick-ui-library
- prototype
- review-animations
- review-copy
- Swift Performance Optimization Skill
- performance-audit
- termio
- termio-bug-report
- testflight-release
- termio
Repository facts
- License
- MIT
- Created
- May 23, 2026
- Last pushed
- Nov 2, 2026
- Forks
- 69
- Open issues
- 23
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 98 notes
skills/app-screenshot-debug/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/app-screenshot-debug/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/app-screenshot-debug/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/app-screenshot-debug/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/app-screenshot-debug/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/asc/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/asc/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/bump-version/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/bump-version/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/bump-version/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/bump-version/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/bump-version/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/bump-version/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/bump-version/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/bump-version/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/check-ghostty-update/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/check-ghostty-update/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/check-ghostty-update/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/check-ghostty-update/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/code-clean/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 12 dangerous shell commandsin 7 files: public/install.sh:4 scripts/build-app.sh:151 asc/references/asc-screenshot-resize.md:57 and 4 more
- 127 network referencesin 24 files: pick-ui-library/SKILL.md:22 public/install.sh:2 asc/references/asc-revenuecat-catalog-sync/references.md:7 and 21 more
- 4 obfuscation signalsin 1 file: improve-animations/PLAN-TEMPLATE.md:19
- No instruction overrides
- 9 executable scriptsin 9 files: scripts/build-app.sh:1 scripts/render-icon.sh:1 app-screenshot-debug/scripts/capture-window.sh:1 and 6 more
- 11 references to secretsin 8 files: asc/references/asc-cli-usage.md:46 asc/references/asc-notarization.md:8 testflight-release/SKILL.md:139 and 5 more
- No requests to vote in Hot
Show all 163 signals by file
scripts/build-app.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 85
[Credential-related source omitted] - Dangerous shell operationline 151
rm -rf "$app_dir" - Network accessline 243
if [[ "$channel" != "dev" ]]; then echo "error: cannot build termiod — $daemon_toolchain_missing not found." >&2 echo " Rust: https://rustup.rs — Zig: brew install zig (termiod/README.md)." >&2 - Network accessline 244
echo "error: cannot build termiod — $daemon_toolchain_missing not found." >&2 echo " Rust: https://rustup.rs — Zig: brew install zig (termiod/README.md)." >&2 exit 1 - Network accessline 245
echo " Rust: https://rustup.rs — Zig: brew install zig (termiod/README.md)." >&2 - Network accessline 364
if ! command -v go >/dev/null 2>&1; then if [[ "$channel" != "dev" ]]; then echo "error: cannot build $tailnet_name — go not found (https://go.dev/dl)." >&2 - Network accessline 365
if [[ "$channel" != "dev" ]]; then echo "error: cannot build $tailnet_name — go not found (https://go.dev/dl)." >&2 exit 1 - Network accessline 366
echo "error: cannot build $tailnet_name — go not found (https://go.dev/dl)." >&2 - Dangerous shell operationline 478
rm -rf "$(dirname "$iconset_dir")"
scripts/render-icon.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/app-screenshot-debug/scripts/capture-window.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/app-screenshot-debug/scripts/click-in-window.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/asc/SKILL.md
- Network accessline 8
`asc` is installed via Homebrew (`brew install asc`). It is the only tool that should touch App Store Connect here — do not hand-roll JWTs or curl the API. - Network accessline 9
should touch App Store Connect here — do not hand-roll JWTs or curl the API. - Network accessline 23
If nothing is stored, register a key (Key ID + Issuer ID + `.p8` from https://appstoreconnect.apple.com/access/integrations/api): - Network accessline 24
https://appstoreconnect.apple.com/access/integrations/api): - Network accessline 68
Vendored from https://github.com/rorkai/app-store-connect-cli-skills at the
skills/asc/references/asc-app-create-ui.md
skills/asc/references/asc-apple-ads.md
skills/asc/references/asc-cli-usage.md
skills/asc/references/asc-metadata-sync.md
- Network accessline 99
asc apps info edit --app "APP_ID" --version "1.2.3" --platform IOS --locale "en-US" --description "Your app description here" asc apps info edit --app "APP_ID" --version "1.2.3" --platform IOS --locale "en-US" --keywords "keyword1,keyword2, - Network accessline 101
asc apps info edit --app "APP_ID" --version "1.2.3" --platform IOS --locale "en-US" --support-url "https://support.example.com" - Network accessline 107
asc app-setup info set --app "APP_ID" --primary-locale "en-US" --privacy-policy-url "https://example.com/privacy"
skills/asc/references/asc-notarization.md
- Access to secretsline 8
[Credential-related source omitted] - Network accessline 19
If no identity is found, create one at https://developer.apple.com/account/resources/certificates/add (the App Store Connect API does not support creating Developer ID certificates). - Access to secretsline 30
[Credential-related source omitted] - Network accessline 59
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> - Network accessline 60
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> - Dangerous shell operationline 131
curl -sL "LOG_URL" | python3 -m json.tool - Network accessline 131
curl -sL "LOG_URL" | python3 -m json.tool - Network accessline 165
To notarize `.pkg` files, you need a **Developer ID Installer** certificate (separate from Developer ID Application). This certificate type is not available through the App Store Connect API — create it at https://developer.apple.com/accoun
skills/asc/references/asc-revenuecat-catalog-sync/references.md
- Network accessline 7
- MCP overview: - https://www.revenuecat.com/docs/tools/mcp - Network accessline 8
- https://www.revenuecat.com/docs/tools/mcp - Network accessline 9
- Setup and authentication (OAuth/API key, cloud endpoint): - https://www.revenuecat.com/docs/tools/mcp/setup - Tools reference (tool names, parameters, enums, package naming): - Network accessline 10
- https://www.revenuecat.com/docs/tools/mcp/setup - Network accessline 11
- Tools reference (tool names, parameters, enums, package naming): - https://www.revenuecat.com/docs/tools/mcp/tools-reference - Usage examples (natural language interaction patterns): - Network accessline 12
- https://www.revenuecat.com/docs/tools/mcp/tools-reference - Network accessline 13
- Usage examples (natural language interaction patterns): - https://www.revenuecat.com/docs/tools/mcp/usage-examples - Best practices and troubleshooting: - Network accessline 14
- https://www.revenuecat.com/docs/tools/mcp/usage-examples - Network accessline 16
- https://www.revenuecat.com/docs/tools/mcp/best-practices-and-troubleshooting - Network accessline 20
- Configuring products (products, entitlements, offerings model): - https://www.revenuecat.com/docs/projects/configuring-products - Network accessline 21
- https://www.revenuecat.com/docs/projects/configuring-products - Network accessline 23
- https://www.revenuecat.com/docs/getting-started/entitlements/ios-products - Network accessline 27
- Launch post and current beta limitations: - https://www.revenuecat.com/blog/company/introducing-revenuecat-mcp/ - Network accessline 28
- https://www.revenuecat.com/blog/company/introducing-revenuecat-mcp/
skills/asc/references/asc-screenshot-resize.md
skills/asc/references/asc-shots-pipeline.md
- Network accessline 8
- Local screenshot automation commands are experimental in asc cli. - Framing is pinned to Koubou `0.18.1` for deterministic output. - Feedback/issues: https://github.com/rorkai/App-Store-Connect-CLI/issues/new/choose - Network accessline 10
- Feedback/issues: https://github.com/rorkai/App-Store-Connect-CLI/issues/new/choose
skills/asc/references/asc-signing-setup.md
- Access to secretsline 69
[Credential-related source omitted]
skills/asc/references/asc-submission-health/app-privacy.md
- Network accessline 44
https://appstoreconnect.apple.com/apps/APP_ID/appPrivacy
skills/asc/references/asc-submission-health/readiness-repairs.md
- Network accessline 112
asc app-setup info set --app "APP_ID" --primary-locale "en-US" --privacy-policy-url "https://example.com/privacy" - Network accessline 113
--app "APP_ID" \ --primary-locale "en-US" \ --privacy-policy-url "https://example.com/privacy" - Network accessline 115
--privacy-policy-url "https://example.com/privacy"
skills/asc/references/asc-wall-submit.md
- Network accessline 21
2. Preview first: - `asc apps wall submit --app "1234567890" --dry-run` - or `asc apps wall submit --link "https://testflight.apple.com/join/ABCDEFG" --name "My Beta App" --dry-run` - Network accessline 22
- `asc apps wall submit --app "1234567890" --dry-run` - or `asc apps wall submit --link "https://testflight.apple.com/join/ABCDEFG" --name "My Beta App" --dry-run` 3. Apply with confirmation: - Network accessline 23
- or `asc apps wall submit --link "https://testflight.apple.com/join/ABCDEFG" --name "My Beta App" --dry-run` - Network accessline 24
3. Apply with confirmation: - `asc apps wall submit --app "1234567890" --confirm` - or `asc apps wall submit --link "https://testflight.apple.com/join/ABCDEFG" --name "My Beta App" --confirm` - Network accessline 25
- `asc apps wall submit --app "1234567890" --confirm` - or `asc apps wall submit --link "https://testflight.apple.com/join/ABCDEFG" --name "My Beta App" --confirm` 4. Review the generated PR plan and resulting change to `docs/wall-of-app - Network accessline 26
- or `asc apps wall submit --link "https://testflight.apple.com/join/ABCDEFG" --name "My Beta App" --confirm` - Network accessline 43
`asc apps wall submit --link "https://testflight.apple.com/join/ABCDEFG" --name "My Beta App" --confirm`
skills/bump-version/SKILL.md
- Network accessline 94
V=0.14.0 curl -sI https://downloads.termio.sh/termio.dmg | head -1 # 200 - Network accessline 95
curl -sI https://downloads.termio.sh/termio.dmg | head -1 # 200 - Network accessline 96
curl -sI https://downloads.termio.sh/v$V/termio.dmg | head -1 # 200 - Network accessline 97
curl -s https://downloads.termio.sh/appcast.xml | grep -i shortVersionString | head -1
skills/conventional-commit/SKILL.md
- Network accessline 8
Generate commit messages following the [Conventional Commits 1.0.0](https://www.conventionalcommits.org/) specification.
skills/dia-source-analysis/scripts/extract-sourcemaps.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/doc/SKILL.md
- Dangerous shell operationline 145
' "$readme" > "$readme.tmp" && mv "$readme.tmp" "$readme" && rm -f /tmp/docs-index.md
skills/emil-design-eng/SKILL.md
- Network accessline 12
> I'm ready to help you build interfaces that feel right, my knowledge comes from Emil Kowalski's design engineering philosophy. If you want to dive even deeper, check out Emil’s course: [animations.dev](https://animations.dev/). - Network accessline 123
**Easing curve resources:** Don't create curves from scratch. Use [easing.dev](https://easing.dev/) or [easings.co](https://easings.co/) to find stronger custom variants of standard easings.
skills/find-animation-opportunities/SKILL.md
- Network accessline 12
You are a senior design engineer whose defining trait is **restraint**. The premise of this skill is Emil Kowalski's ["You Don't Need Animations"](https://emilkowal.ski/ui/you-dont-need-animations): sometimes the best animation is no animat
skills/improve-animations/AUDIT.md
- Network accessline 3
The eight audit categories, what to look for in each, and the exact target values to cite in findings and plans. Distilled from Emil Kowalski's design engineering philosophy ([emilkowal.ski](https://emilkowal.ski/)). Never approximate a val
skills/improve-animations/PLAN-TEMPLATE.md
skills/ios-app-analysis/references/rex-terminal.md
- Network accessline 62
Only descriptions were queried. No ownership changes or terminal input were sent to Rex. The [official API documentation](https://www.superlogical.com/rex/docs/automate/server-api) - Network accessline 63
sent to Rex. The [official API documentation](https://www.superlogical.com/rex/docs/automate/server-api) - Network accessline 106
`URLSessionWebSocketConnector`. These identify available transport components; they do not establish which implementation the installed iOS app selects. Rex's [remote-access documentation](https://www.superlogical.com/rex/docs/linux/remote- - Network accessline 107
they do not establish which implementation the installed iOS app selects. Rex's [remote-access documentation](https://www.superlogical.com/rex/docs/linux/remote-access) describes HTTP/HTTPS listeners and Tailscale connectivity. Its live - Network accessline 108
Rex's [remote-access documentation](https://www.superlogical.com/rex/docs/linux/remote-access)
skills/issue-creator/references/images.md
- Network accessline 75

skills/macos-rebuild-dev/SKILL.md
skills/og-generation/SKILL.md
- Network accessline 45
npx next dev -p 3210 # either becomes the server, or prints # "Another next dev server is already running. # - Local: http://localhost:3001" - Network accessline 47
# - Local: http://localhost:3001" - Network accessline 49
Verify with `curl -s localhost:<port>/og-card` returning 200 (and kill the - Network accessline 55
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --headless=new --enable-unsafe-swiftshader --screenshot=/tmp/og-card/og.png --window-size=2400,1260 --hide-scrollbars --force-device-scale-factor=1 --vir - Network accessline 59
--virtual-time-budget=15000 http://localhost:<port>/og-card - Network accessline 68
cp src/app/og-card/page.tsx <skill-dir>/assets/og-card-page.tsx # persist edits rm -rf src/app/og-card curl -s -o /dev/null -w "%{http_code}" http://localhost:<port>/og-card # expect 404 - Dangerous shell operationline 69
rm -rf src/app/og-card - Network accessline 70
curl -s -o /dev/null -w "%{http_code}" http://localhost:<port>/og-card # expect 404
skills/og-generation/assets/og-card-page.tsx
- Executable scriptline 1
Executable file - Network accessline 9
// Temporary render target for the static OG card (public/og.webp): screenshot // http://localhost:3000/og-card at 2400×1260 with headless Chrome, then delete - Network accessline 10
// http://localhost:3000/og-card at 2400×1260 with headless Chrome, then delete
skills/pick-ui-library/SKILL.md
- Network accessline 22
| Task | Library | | --- | --- | | Unstyled, accessible UI components (dialogs, popovers, menus, selects…) | [base-ui](https://base-ui.com) | - Network accessline 23
| --- | --- | | Unstyled, accessible UI components (dialogs, popovers, menus, selects…) | [base-ui](https://base-ui.com) | | Command menus (⌘K palettes) | [cmdk](https://cmdk.paco.me) | - Network accessline 24
| Unstyled, accessible UI components (dialogs, popovers, menus, selects…) | [base-ui](https://base-ui.com) | - Network accessline 25
| Command menus (⌘K palettes) | [cmdk](https://cmdk.paco.me) | - Network accessline 26
| Toasts / notifications | [Sonner](https://sonner.emilkowal.ski) | - Network accessline 27
| One-time password / verification code inputs | [input-otp](https://input-otp.rodz.dev) | - Network accessline 28
| Customizable GUIs / control panels | [Leva](https://github.com/pmndrs/leva) — [dialkit](https://joshpuckett.me/dialkit) is an alternative | - Network accessline 32
| Task | Library | | --- | --- | | General-purpose animation (springs, layout animations, enter/exit) | [motion](https://motion.dev) (Framer Motion) | - Network accessline 33
| --- | --- | | General-purpose animation (springs, layout animations, enter/exit) | [motion](https://motion.dev) (Framer Motion) | | Animating numbers (counters, prices, stats) | [NumberFlow](https://number-flow.barvian.me) | - Network accessline 34
| General-purpose animation (springs, layout animations, enter/exit) | [motion](https://motion.dev) (Framer Motion) | - Network accessline 35
| Animating numbers (counters, prices, stats) | [NumberFlow](https://number-flow.barvian.me) | - Network accessline 36
| Animated text components | [torph](https://torph.lochie.me/) | - Network accessline 37
| 3D globes | [Cobe](https://cobe.vercel.app) | - Network accessline 38
| Dynamic OG images (HTML/CSS → SVG/PNG) | [Satori](https://github.com/vercel/satori) | - Network accessline 39
| Syntax highlighting | [shiki](https://shiki.style) | - Network accessline 45
| Task | Library | | --- | --- | | Real-time / streaming charts | [Liveline](https://github.com/benjitaylor/liveline) | - Network accessline 46
| --- | --- | | Real-time / streaming charts | [Liveline](https://github.com/benjitaylor/liveline) | | General charts (static or interactive dashboards) | [recharts](https://recharts.org) | - Network accessline 47
| Real-time / streaming charts | [Liveline](https://github.com/benjitaylor/liveline) | - Network accessline 48
| General charts (static or interactive dashboards) | [recharts](https://recharts.org) | - Network accessline 54
| Task | Library | | --- | --- | | Drag and drop | [dnd kit](https://dndkit.com) | - Network accessline 55
| --- | --- | | Drag and drop | [dnd kit](https://dndkit.com) | | Virtualization (long lists, large tables) | [Virtuoso](https://virtuoso.dev) | - Network accessline 56
| Drag and drop | [dnd kit](https://dndkit.com) | - Network accessline 57
| Virtualization (long lists, large tables) | [Virtuoso](https://virtuoso.dev) | - Network accessline 61
| Task | Library | | --- | --- | | State management | [zustand](https://zustand.docs.pmnd.rs) | - Network accessline 62
| --- | --- | | State management | [zustand](https://zustand.docs.pmnd.rs) | | Constructing `className` strings conditionally | [clsx](https://github.com/lukeed/clsx) | - Network accessline 63
| State management | [zustand](https://zustand.docs.pmnd.rs) | - Network accessline 64
| Constructing `className` strings conditionally | [clsx](https://github.com/lukeed/clsx) | - Network accessline 65
| Type-safe, variant-driven styling for Tailwind | [cva](https://cva.style) | - Network accessline 66
| Theme switching / dark mode (no flash on load) | [next-themes](https://github.com/pacocoursey/next-themes) |
skills/review-animations/STANDARDS.md
- Network accessline 37
Find curves at [easing.dev](https://easing.dev/) or [easings.co](https://easings.co/) — don't hand-roll from scratch.
skills/termio-bug-report/references/signatures.md
- Dangerous shell operationline 75
not show it. Ask the user to run `sudo spindump 10 -file /tmp/spindump.txt` — it
skills/termio-bug-report/scripts/collect.sh
- Executable scriptline 1
#!/bin/bash
skills/termio-bug-report/scripts/redact.py
skills/testflight-release/SKILL.md
web/landing/public/install.sh
- Executable scriptline 1
#!/bin/sh - Network accessline 2
# Termio server for Linux. # # curl -fsSL https://www.termio.sh/install | sh - Network accessline 3
# # curl -fsSL https://www.termio.sh/install | sh # - Dangerous shell operationline 4
# curl -fsSL https://www.termio.sh/install | sh - Network accessline 4
# curl -fsSL https://www.termio.sh/install | sh - Network accessline 15
# # Environment: # TERMIO_DOWNLOAD_BASE where releases live (default https://downloads.termio.sh) - Network accessline 16
# Environment: # TERMIO_DOWNLOAD_BASE where releases live (default https://downloads.termio.sh) # TERMIO_PREFIX install prefix (default ~/.local) - Network accessline 17
# TERMIO_DOWNLOAD_BASE where releases live (default https://downloads.termio.sh) - Dangerous shell operationline 29
curl -fsSL https://www.termio.sh/install | sh - Network accessline 29
curl -fsSL https://www.termio.sh/install | sh - Dangerous shell operationline 30
curl -fsSL https://www.termio.sh/install | sh -s -- [options] - Network accessline 30
curl -fsSL https://www.termio.sh/install | sh -s -- [options] - Network accessline 72
choose_tools() { if command -v curl >/dev/null 2>&1; then - Network accessline 73
if command -v curl >/dev/null 2>&1; then - Network accessline 74
fetch() { curl -fsSL --retry 2 -o "$2" "$1"; } - Network accessline 75
fetch_text() { curl -fsSL --retry 2 "$1"; } - Network accessline 76
elif command -v wget >/dev/null 2>&1; then - Network accessline 77
fetch() { wget -q -O "$2" "$1"; } - Network accessline 78
fetch_text() { wget -q -O - "$1"; } - Network accessline 79
else fail "needs curl or wget." fi - Network accessline 80
fail "needs curl or wget." - Network accessline 194
[ -n "${HOME:-}" ] || fail "HOME is not set." PATH="${PATH:-/usr/local/bin:/usr/bin:/bin}" BASE="${TERMIO_DOWNLOAD_BASE:-https://downloads.termio.sh}" - Network accessline 195
PATH="${PATH:-/usr/local/bin:/usr/bin:/bin}" BASE="${TERMIO_DOWNLOAD_BASE:-https://downloads.termio.sh}" PREFIX="${TERMIO_PREFIX:-$HOME/.local}" - Network accessline 196
BASE="${TERMIO_DOWNLOAD_BASE:-https://downloads.termio.sh}" - Network accessline 212
[ "$(uname -s)" = Linux ] || fail "this installs the Linux server. On a Mac, install the app from https://www.termio.sh." - Network accessline 213
fail "this installs the Linux server. On a Mac, install the app from https://www.termio.sh." - Dangerous shell operationline 222
trap 'rm -rf "$WORK"' EXIT INT TERM
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Combined signals: 2 facts
- Passes content downloaded from www.termio.sh to an interpreterpublic/install.sh:29High confidence
- Passes content downloaded from www.termio.sh to an interpreterpublic/install.sh:30High confidence
Declared and executed: 2 facts
- Contacts rustup.rs, which SKILL.md, the README and the plugin manifest do not mentionscripts/build-app.sh:245High confidence
- Contacts go.dev, which SKILL.md, the README and the plugin manifest do not mentionscripts/build-app.sh:366High confidence
Signal confidence: 163 facts
- Executable script in code of a file that runsscripts/build-app.sh:1High confidence
- Access to secrets in a comment of a file that runsscripts/build-app.sh:85Low confidence
- Dangerous shell operation in code of a file that runsscripts/build-app.sh:151High confidence
- Network access in code of a file that runsscripts/build-app.sh:243High confidence
- Network access in code of a file that runsscripts/build-app.sh:244High confidence
- Network access in code of a file that runsscripts/build-app.sh:245High confidence
- Network access in code of a file that runsscripts/build-app.sh:364High confidence
- Network access in code of a file that runsscripts/build-app.sh:365High confidence
- Network access in code of a file that runsscripts/build-app.sh:366High confidence
- Dangerous shell operation in code of a file that runsscripts/build-app.sh:478High confidence
- Executable script in code of a file that runsscripts/render-icon.sh:1High confidence
- Executable script in code of a file that runsapp-screenshot-debug/scripts/capture-window.sh:1High confidence
- Executable script in code of a file that runsapp-screenshot-debug/scripts/click-in-window.sh:1High confidence
- Network access in prose of the SKILL.mdasc/SKILL.md:8Low confidence
- Network access in prose of the SKILL.mdasc/SKILL.md:9Low confidence
- Network access in prose of the SKILL.mdasc/SKILL.md:23Low confidence
- Network access in prose of the SKILL.mdasc/SKILL.md:24Low confidence
- Network access in prose of the SKILL.mdasc/SKILL.md:68Low confidence
- Network access in prose of documentationasc/references/asc-app-create-ui.md:35Low confidence
- Network access in prose of documentationasc/references/asc-app-create-ui.md:36Low confidence
- Access to secrets in code of documentationasc/references/asc-apple-ads.md:41Low confidence
- Network access in prose of documentationasc/references/asc-apple-ads.md:149Low confidence
- Access to secrets in prose of documentationasc/references/asc-cli-usage.md:46Low confidence
- Access to secrets in prose of documentationasc/references/asc-cli-usage.md:47Low confidence
- Network access in code of documentationasc/references/asc-metadata-sync.md:99Low confidence
- Network access in code of documentationasc/references/asc-metadata-sync.md:101Low confidence
- Network access in code of documentationasc/references/asc-metadata-sync.md:107Low confidence
- Access to secrets in prose of documentationasc/references/asc-notarization.md:8Low confidence
- Network access in prose of documentationasc/references/asc-notarization.md:19Low confidence
- Access to secrets in code of documentation: reads a credential storeasc/references/asc-notarization.md:30Low confidence
- Network access in code of documentationasc/references/asc-notarization.md:59Low confidence
- Network access in code of documentationasc/references/asc-notarization.md:60Low confidence
- Dangerous shell operation in code of documentationasc/references/asc-notarization.md:131Low confidence
- Network access in code of documentationasc/references/asc-notarization.md:131Low confidence
- Network access in prose of documentationasc/references/asc-notarization.md:165Low confidence
- Network access in prose of documentationasc/references/asc-revenuecat-catalog-sync/references.md:7Low confidence
- Network access in prose of documentationasc/references/asc-revenuecat-catalog-sync/references.md:8Low confidence
- Network access in prose of documentationasc/references/asc-revenuecat-catalog-sync/references.md:9Low confidence
- Network access in prose of documentationasc/references/asc-revenuecat-catalog-sync/references.md:10Low confidence
- Network access in prose of documentationasc/references/asc-revenuecat-catalog-sync/references.md:11Low confidence
- Network access in prose of documentationasc/references/asc-revenuecat-catalog-sync/references.md:12Low confidence
- Network access in prose of documentationasc/references/asc-revenuecat-catalog-sync/references.md:13Low confidence
- Network access in prose of documentationasc/references/asc-revenuecat-catalog-sync/references.md:14Low confidence
- Network access in prose of documentationasc/references/asc-revenuecat-catalog-sync/references.md:16Low confidence
- Network access in prose of documentationasc/references/asc-revenuecat-catalog-sync/references.md:20Low confidence
- Network access in prose of documentationasc/references/asc-revenuecat-catalog-sync/references.md:21Low confidence
- Network access in prose of documentationasc/references/asc-revenuecat-catalog-sync/references.md:23Low confidence
- Network access in prose of documentationasc/references/asc-revenuecat-catalog-sync/references.md:27Low confidence
- Network access in prose of documentationasc/references/asc-revenuecat-catalog-sync/references.md:28Low confidence
- Dangerous shell operation in code of documentationasc/references/asc-screenshot-resize.md:57Low confidence
and 113 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Path .claude/skills | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md Sources/termio/Resources/skills/termio/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md Sources/termio/Resources/skills/termio/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md Sources/termio/Resources/skills/termio/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md Sources/termio/Resources/skills/termio/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.